ネビルのアルゴリズムを実装しようとしています。
sin(x) 関数を表す 32 個のポイントがあります。
int N=32,Nx=10000;
step = 1.0 / (N-1);
for (ii = 0; ii < N; ii++){
px[ii] = ii*step*PI;
py[ii] = sin(px[ii]);}
多項式を評価するための入力ベクトルがあります。
for (ii = 0; ii < Nx; ii++)
x[ii] = 2.0 * rand() / (double) RAND_MAX; // 0 < x[ii] <= 2
これは私のネビルのブロックです:
double y[Nx];
for (kk=0;kk<Nx;kk++){// for each x[]'s element
for (jj=1;jj<N-1;jj++){
for (ii=0;ii<N-1-jj;ii++)
s[ii]=(((px[jj]-x[kk])*py[ii])+((x[kk]-px[ii])*py[ii]))/(px[jj]-px[ii]);
}
y[kk]=s[0];//insert in the output array the value just calculated
}
問題はs[ii]
、このカウントが正しいかどうかわからないことです。