随笔-48  评论-259  文章-1  trackbacks-0

#define N 100
#include"iostream.h"
 float Y[N],X[N];
 int n,k=1;
 float x;
 float sum,s;
float f(int i,int j)
{
  float sum1=0;
  if(j-i==1) sum1=(Y[j]-Y[i])/(X[j]-X[i]);
  else sum1=(f(i+1,j)-f(i,j-1))/(X[j]-X[i]);
  if(i==0&&j==k)
  {
    sum+=sum1*s;
 s*=(x-X[k]);
 k++;
  }
  return sum1;
}

 void main()
{
  cout<<"输入你想进行的X次多项试计算:";
  cin>>n;
  for(int i=0;i<=n;i++)
  {
    cout<<"输入第"<<i+1<<"个点的坐标:";
 cin>>X[i]>>Y[i];
  }
  sum=Y[0];
  cout<<"输入你想进行计算的x值:";
  cin>>x;
  s=(x-X[0]);
  f(0,n);
  cout<<sum;
}

posted on 2007-06-09 12:15 星梦情缘 阅读(1490) 评论(5)  编辑 收藏 引用 所属分类: 数据结构的所有实现程序

评论:
# re: 数值分析--速度最快的牛顿插值 2007-06-10 17:52 | oyjpart
为什么是速度最快呢?  回复  更多评论
  
# re: 数值分析--速度最快的牛顿插值 2007-06-10 22:10 | 星梦情缘
因为没有进行递归,每个均差只进行过一次计算,
用普通的程序递归的话,越低的均差就要计算很多次  回复  更多评论
  
# re: 数值分析--速度最快的牛顿插值 2007-10-10 22:34 | 007
好像是错的哦
  回复  更多评论
  
# re: 数值分析--速度最快的牛顿插值 2007-11-02 15:06 | cutler
真的是错误的!  回复  更多评论
  
# re: 数值分析--速度最快的牛顿插值 2008-06-30 17:01 | trt
错老!不知道改吗!  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理