设为首页 加入收藏

TOP

牛顿和拉格朗日插值算法
2014-11-23 21:36:46 】 浏览:424
Tags:牛顿和 拉格朗 算法

  /*近日浏览文章时发现在这个网站上有好几篇问关于牛顿插值和拉格朗日插值的文章。本人正好写了这个代码,将它公布,希望对一些朋友有帮助。如程序中有什么问题请与我联系。QQ:421404493 E-mail:wbaobao#zj.com*/


  //编译平台:2000+VC6.0


  //实验一
  //作者:计算机科学与技术02级2班 宝宝 421404493
  #include
  #include
  #include
  typedef struct data
  {
  float x;
  float y;
  }Data;//变量x和函数值y的结构
  Data d[20];//最多二十组数据
  float f(int s,int t)//牛顿插值法,用以返回插商
  {
  if(t==s+1)
  return (d[t].y-d[s].y)/(d[t].x-d[s].x);
  else
  return (f(s+1,t)-f(s,t-1))/(d[t].x-d[s].x);
  }
  float Newton(float x,int count)
  {
  int n;
  while(1)
  {
  cout<<"请输入n值(即n次插值):";//获得插值次数
  cin>>n;
  if(n<=count-1)// 插值次数不得大于count-1次
  break;
  else
  system("cls");
  }
  //初始化t,y,yt。
  float t=1.0;
  float y=d[0].y;
  float yt=0.0;
  //计算y值
  for(int j=1;j<=n;j++)
  {
  t=(x-d[j-1].x)*t;
  yt=f(0,j)*t;
  //cout<   y=y+yt;
  }
  return y;
  }
  float lagrange(float x,int count)
  {
  float y=0.0;
  for(int k=0;k   {
  float p=1.0;//初始化p
  for(int j=0;j   {//计算p的值
  if(k==j)continue;//判断是否为同一个数
  p=p*(x-d[j].x)/(d[k].x-d[j].x);
  }
  y=y+p*d[k].y;//求和
  }
  return y;//返回y的值
  }


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Bresenham高效画线算法 下一篇HANOI塔问题的递归解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目