插值法程序

时间:2015-12-12 13:13:51
【文件属性】:

文件名称:插值法程序

文件大小:2KB

文件格式:TXT

更新时间:2015-12-12 13:13:51

差值法程序

#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<>count; if(count<=20) break;//检查输入的是否合法 system("cls"); } //获得各组数据 for(int i=0;i>d[i].x; cout<<"请输入第"<>d[i].y; system("cls"); } cout<<"请输入x的值:";//获得变量x的值 cin>>x; while(1) { int choice=3; cout<<"请您选择使用哪种插值法计算:"<>choice;//取得用户的选择项 if(choice==2) { cout<<"你选择了牛顿插值计算方法,其结果为:"; y=Newton(x,count);break;//调用相应的处理函数 } if(choice==1) { cout<<"你选择了拉格朗日插值计算方法,其结果为:"; y=lagrange(x,count);break;//调用相应的处理函数 } if(choice==0) break; system("cls"); cout<<"输入错误!!!!"<


网友评论

  • 不错,借鉴了,谢谢!
  • 很好的插值方法,很值得借鉴。
  • 还可以!真的还可以~用了发现很好!