标题:Newton插值多项式求差商表
只看楼主
hehuihh2004
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2006-11-3
 问题点数:0 回复次数:0 
Newton插值多项式求差商表

#include <stdio.h>

int k,a;
float x1,x2;
float m[10],n[10],w1[10],w2[10],f[10][10];

void freturn(float m[],float n[]){//求F的函数;,利用2位数组来做
int i;
for(i=0;i<k;i++){
f[0][i]=n[i];
}
for(i=1;i<k;i++){
f[1][i]=(n[i]-n[0])/(m[i]-m[0]);
}
for(i=2;i<k;i++){//a=1;b=1
for(a=2;a<=i;a++){
f[a][i]=(f[a-1][i]-f[a-1][a-1])/(m[i]-m[a-1]);
}
}
for(i=0;i<k;i++){//a=1;b=1
for(a=0;a<=i;a++){
printf("%f ",f[a][i]);
}printf("\n");
}
}

void main()
{
float m[10],n[10];
printf("请输入已知值的个数:\n");
scanf("%d",&k);
for(a=0;a<k;a++){
printf("请输入X%d ",a);
scanf("%f",&m[a]);
printf("请输入Y%d ",a);
scanf("%f",&n[a]);
}
printf("输入两个x的值\n");
scanf("%f %f",&x1,&x2);
for(a=1;a<k;a++){
w1[0]=1;
w1[a]=w1[a-1]*(x1-m[a-1]);
}
for(a=1;a<k;a++){
w2[0]=1;
w2[a]=w2[a-1]*(x2-m[a-1]);
}
float N1=0,N2=0;
freturn(m,n);
for(a=0;a<=k;a++){
N1=N1+w1[a]*f[a][a];
N2=N2+w2[a]*f[a][a];
}
printf("N1=%f\nN2=%f\n",N1,N2);
}


搜索更多相关主题的帖子: Newton 多项式 插值 差商 float 
2006-11-04 19:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-100757-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.269979 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved