(精选)《计算方法》实验报告_第1页
(精选)《计算方法》实验报告_第2页
(精选)《计算方法》实验报告_第3页
(精选)《计算方法》实验报告_第4页
(精选)《计算方法》实验报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算方法实验报告姓名|班级实验项目名称计算方法实验一、实验名称实验一插值与拟合二、实验目的:(i)明确插值多项式和分段插值多项式各自的优缺点;(2)编程实现拉格朗日插值算法,分析实验结果体会高次插值产生的龙格现象;(3)运用牛顿插值方法解决数学问题。三、实验内容及要求一一、1LL(1)对于 f(x) 2,5x51 x要求选取11个等距插值节点,分别采用拉格朗日插值和分段线性插值,计算 x为0.5, 4.5 处的函 数值并将结果与精确值进行比较。输入:区间长度,n(即n+1个节点),预测点输出:预测点的近似函数值,精确值,及误差(2)已知 新 1万4 2H9 3,用牛顿插值公式求 J5的近似值。

2、输入:数据点集,预测点。输出:预测点的近似函数值四、实验原理及算法描述算法基本原理:(1)拉格朗日插值法对桌个室项式函数,已知有给定的1个取值点:(雹h Vo) 11 (幻刎Vfc)其中町对应看自变曷的位置,而电对应看国数在这个位置的取胤暇设任意两个不同的勺都互不相同,畀心应用拉唱朗日插值公式所得到的拉格朗日插值多项式为:,=0其中每个fj(.T)为拉格朗日基本多原式(或称插值基函数),其表达式为:TT -电 _ ( &)叼-1)-叼+1 )-以)星j叼瑞 (叼一方)(叼一叼-1)-叼+1)(叼一珠)拉喑朗日基本多项式。的特点是在叼上取值为1,在其它的点g i声J上取值为及输入才标值点个驳a我

3、福朔目痴伎法算法襄序触因检人峥嬴QU, Yi) v1: IrrW幡人共李的值品就牯化处黑resu l=0; +-1悔时变量tempFYMtenp = taiv* x-Xj *- irr : te*rp* CX i Xj J vj = J H*JG玷米+(2)牛顿插值法(x) = /(x0)+/xtt,rlGr-xJ + /xxl,xJ(x-x0)(x-x1) +/|/,工/(17tJ(工-1)(工“)算法流程五、程序代码及实验结果1 1) 输出:A.拉格朗日插值法B.分段线性插值Xy(精确)y(0.5000000.8000000.0500004.5000000.047059拉格朗日)y(分段线

4、性) 误差(拉) 误差(分)0.8434070.750000-0.0542591.578720 0.0486425 -32.547674 -0.0336492 2) 输出:I yiUKERSSADMiNlMNUOROESKlOf计算方志件口性旨为Llebu审牛叔法过去exE“Ll 回请输入插值点个数:3请输人插值点对应的值及函数值位工i九1 1卜29 3持输入要求值工的值:p由牛顿插值法得出结果:2. 26667屋否要翌续?(y,n”Xy(精确)y( 牛顿插值)误差(牛顿插值)5.000002.2360682.266670-0.013686源码:(1) A.拉格朗日插值法#include#in

5、clude#includeusing namespace std;double Lagrange(int N,vector&X,vector&Y,double x); int main()double p,b,c;char a=n;docout请输入差值次数n的值:N;vectorX(N,0);vectorY(N,0);cout”请输入区间长度(a,b) : p;cinb;c=b-p;c=c/(N-1);for(int i=0;iN;i+)Xi=p;Yi=1/(1+p*p);p=p+c;cout请输入要求值x的值:x;double result=Lagrange(N,X,Y,x);cout由拉

6、格朗日插值法得出结果:resultendl;couta;while(a=y);return 0;double Lagrange(int N,vector&X,vector&Y,double x)double result=0;for(int i=0;iN;i+)double temp=Yi;for(int j=0;jN;j+)if(i!=j)temp = temp*(x-Xj);temp = temp/(Xi-Xj);result += temp;return result;B:分段线性插值#include#include#includeusing namespace std;double f

7、enduan(int N,vector&X,vector&Y,double x,double c ); int main()double p,b,c;char a=n;docout请输入差值次数n的值:N;vectorX(N,0);vector丫(N,0);cout请输入区间长度(a,b) : p;cinb;c=b-p;c=c/(N-1);for(int i=0;iN;i+)Xi=p;Yi=1/(1+p*p);P=P+C;cout请输入要求值x的值:x;double result=fenduan(N,X,Y,x,c);cout由分段线性插值法得出结果:resultendl;couta;whil

8、e(a=y);return 0;double fenduan(int N,vector&X,vector&Y,double x,double c) double result=0;int b;b=0;while(x-Xbc)b=b+1;result=Yb*(1-(x-Xb)/c)+Yb+1*(x-Xb)/c);return result;(3)牛顿插值法#include#include#includeusing namespace std;double ChaShang(int n,vector&X,vector&Y);double Newton(double x,vector&X,vecto

9、r&Y);int main()char a=n;doint n;cout请输入插值点个数:n;vectorX(n,0);vectorY(n,0);cout请输入插值点对应的值及函数值(Xi,Yi) : endl;for(int i=0;iXiYi;cout 请输入要求值x的值:x;cout由牛顿插值法得出结果:Newton(x,X,Y)endl;couta;while(a=y);return 0;double ChaShang(int n,vector&X,vector&Y)double f=0;double temp=0;for(int i=0;in+1;i+)temp=Yi;for(int

10、 j=0;jn+1;j+)if(i!=j) temp /= (Xi-Xj);f += temp;return f;double Newton(double x,vector&X,vector &Y)double result=0;for(int i=0;iX.size();i+)double temp=1;double f=ChaShang(i,X,Y);for(int j=0;ji;j+)temp = temp*(x-Xj);result += f*temp;return result;六、实验总结1,通过实验一数据发现,拉格朗日插值在低次插值时,同源函数偏差并不大,但在高次插值 时同原函数偏差大、存在明显的龙格现象,而分段线性插值可以避免出现的龙格现象,与 原函数比较吻合,但是分段线性插值由于其分段属性,使得插值函数失去光滑性,可以考 虑采用Hermite插值优化。2,通过实验二计算过程发现,拉格朗日插值法的线性插值的计算过程没有继承性,即增加一 个节点时整个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论