/*****************************************************************************/ /* page.24 /* ラグランジュ補間のプログラム /*****************************************************************************/ #include #include #define N 4 // 補間点の個数 /* double func_lagの説明 double x ==> 得られた補間式を用いて描画する時のx座標 duuble xx ==> 補間点のx座標 double yy ==> 補間点のy座標 int m ==> 補間点の個数 */ double func_lag(double x,double xx[],double yy[],int m); int main(void){ double x,y,xx[N],yy[N]; int i,m,n; FILE *fp; yy[0]=2.712; yy[1]=2.714; yy[2]=2.716; yy[3]=2.718; xx[0]=pow(yy[0],3); xx[1]=pow(yy[1],3); xx[2]=pow(yy[2],3); xx[3]=pow(yy[3],3); x=20.0; y=func_lag(x,xx,yy,N); printf("%lf,%9.7lf\n",x,y); return 0; } double func_lag(double x, double xx[], double yy[], int m){ double y,term; int k,k2; y = 0.0; for(k=0; k