数值分析 各个算法的C语言程序
void main() {
int N=7,R=2,i,k; double p1,p2,p3,p4;
double x[8]={0.5,0.7,0.9,1.1,1.3,1.5,1.7,1.9};
double y[8]={0.4794,0.6442,0.7833,0.8912,0.9636,0.9975,0.9917,0.9463}; double P0=-0.4794,Pn=-0.9463,u[3]={0.6,0.8,1.2},s[3]; double h[7],a[8],c[7], g[8],af[8],ba[7],m[8]; for(k=0;k <N;k++) h[k]=x[k+1]-x[k];
for(k=1;k <N;k++) a[k]=h[k]/(h[k]+h[k-1]); for(k=1;k <N;k++) c[k]=1-a[k];
for(k=1;k <N;k++) g[k]=3*(c[k]*(y[k+1]-y[k])/h[k]+a[k]*(y[k]-y[k-1])/h[k-1]); c[0]=a[N]=1;
g[0]=3*(y[1]-y[0])/h[0]-P0*h[0]/2;
g[N]=3*(y[N]-y[N-1])/h[N-1]+Pn*h[N-1]/2; ba[0]=c[0]/2; g[0]=g[0]/2; for(i=1;i <N;i++)
{ af[i]=2-a[i]*ba[i-1]; g[i]=(g[i]-a[i]*g[i-1])/af[i]; ba[i]=c[i]/af[i]; } af[N]=2-a[N]*ba[N-1];
g[N]=(g[N]-a[N]*g[N-1])/af[N]; m[N]=g[N];
for(i=N-1;i>=0;i--) m[i]=g[i]-ba[i]*m[i+1]; for(i=0;i <=R;i++) { k=0;
while(u[i]> x[k+1])
k++;
p1=(h[k]+2*(u[i]-x[k])*pow((u[i]-x[k+1]),2)*y[k])/pow(h[k],3); p2=(h[k]-2*(u[i]-x[k+1])*pow((u[i]-x[k]),2)*y[k+1])/pow(h[k],3); p3=(u[i]-x[k])*pow((u[i]-x[k+1]),2)*m[k]/pow(h[k],2); p4=(u[i]-x[k+1])*pow((u[i]-x[k]),2)*m[k+1]/pow(h[k],2); s[i]=p1+p2+p3+p4; }
printf( "\nx= "); for(i=0;i <=N;i++) printf( "%8.1f ",x[i]); printf( "\ny= "); for(i=0;i <=N;i++) printf( "%8.4f ",y[i]); printf( "\n\nu= "); for(i=0;i <=R;i++) printf( "%9.2f ",u[i]);
printf( "\n插值点:s= "); for(i=0;i <=R;i++)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库数值分析 算法C语言程序(3)在线全文阅读。
相关推荐: