计算机二级C 辅导:牛顿和拉格朗日插值算法计算机二级考试

文章作者 100test 发表时间 2009:06:15 10:08:15
来源 100Test.Com百考试题网


  2009年下半年全国计算机等级考试你准备好了没?考计算机等级考试的朋友,2009年下半年全国计算机等级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库
  #include<.stdio.h>.
  #include<.stdlib.h>.
  #include<.iostream.h>.
  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<.<.f(0,j)<.<.endl.
  y=y yt.
  }
  return y.
  }
  float lagrange(float x,int count)
  {
  float y=0.0.
  for(int k=0.k<.count.k )//这儿默认为count-1次插值
  {
  float p=1.0.//初始化p
  for(int j=0.j<.count.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的值
  }

相关文章


C 实例:求2至N(2≤N≤500)之间的素数计算机二级考试
计算机二级C 辅导:牛顿和拉格朗日插值算法计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛