8. 練習問題の答え・2

練習問題⑤





#include <stdio.h>
#define N 101
int main(void){
  double a[N],b[N],c[N],d[N],x[N],e[N],f[N];
  int i,j,k,n;
  n=N-1;
  for (i=1; i<=n; i++){
    a[i]=-2;b[i]=-3;c[i]=-2;d[i]=i;
  }
  d[n]=-N-1;
  e[0]=0.;f[0]=0.;
  for (k=1; k<=n; k++){
    e[k]=c[k]/(b[k]-a[k]*e[k-1]);
    f[k]=(d[k]+a[k]*f[k-1])/(b[k]-a[k]*e[k-1]);
  }
  x[n]=f[n];
  for (k=n-1;k>=1;k--){
    x[k]=e[k]*x[k+1]+f[k];
  }
  for (i=1; i<=n; i++)
    printf("%d, %e\n",i,x[i]);
}