首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

IsaacNewton插商法

2013-09-05 
牛顿插商法#include stdio.hvoid fuzhi(double *a,double *b,int n){for(int i0ini++){printf(请输

牛顿插商法
#include <stdio.h>
void fuzhi(double *a,double *b,int n)
{
for(int i=0;i<n;i++)
{
printf("请输入第%d个结点和节点值:",i+1);
scanf("%lf%lf",&a[i],&b[i]);
printf("\n");
}
}

//牛顿插商
double newton(double x[],double y[],int n,double t)
{
double  sum=y[0];
int k=1;
    int m=n;
double p;
double c[10];

for(int i=0;i<n;i++)
c[i]=y[i];

   for(i=0;i<n-1;i++){
  p=1;//初始化
for(int j=0;j<i;j++)//求(X-X0)*(X-X1)*...(X-Xn-2)
p=(t-x[j])*p;printf("%lf",p);
//求出并存放插商值
for(j=0;j<m-1;j++){
c[j]=(c[j+1]-c[j])/(x[j+k]-x[j]);
printf("%lf",c[0]);}
sum=sum+c[0]*p;
k++;
m--;
   }
   return sum;
}

void main()
{   int n;
    double p;
double q;
printf("请输入要插入结点的个数:");
scanf("%d",&n);
printf("\n");
double x[10],y[10];
fuzhi(x,y,n);
printf("请输入所要求的数:");
scanf("%lf",&p);
q=newton(x,y,n,p);
printf("所求结果为:%lf",q);[img=http://][/img]
printf("\n");
}输出结果老是不对 主要是p=(t-x[j])*p;printf("%lf",p);
printf("%lf",c[0]);}
好像不对 又不知怎么改 纠结啊  求各位好汉帮忙

热点排行