#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;
}
最終更新:2007年01月23日 12:00