「補間法」の編集履歴(バックアップ)一覧はこちら
「補間法」(2007/01/23 (火) 12:00:50) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
-ラグランジュの補間法
#include <stdio.h>
#include <math.h>
#define N 6
double x[N] = {0.0,1.0,2.0,3.0,3.1,5.0};
double y[N] = {0.0,1.1,2.5,4.0,4.1,5.0};
double lagrange( double );
void main(){
double xx , yy;
printf("XX\t\tYY\n");
for( xx = 0.0 ; xx <= 5.0 ; xx += 0.25){
yy = lagrange(xx);
printf("%8.2lf\t%8.2lf\n",xx,yy);
}
return;
}
double lagrange(double xx){
double z[N];
double yy = 0.0;
int i , j ;
for( i = 0 ; i < N ; i++ ){
z[i] = 1.0;
for(j = 0 ; j < N ; j++ )
if(i != j){
z[i] *= (xx - x[j]);
z[i] /= (x[i] - x[j]);
}
yy += z[i] * y[i];
}
return yy;
}