《拉格朗日插值法程序设计.docx》由会员分享,可在线阅读,更多相关《拉格朗日插值法程序设计.docx(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除 拉格朗日插值法程序设计一、实验目的1)掌握常用的插值方法,求函数的近似表达式,解决实际问题。2)明确插值多项式和分段插值多项式的优缺点。3)学会插值方法的程序设计。二、实验设备和实验环境操作系统: Windows XP Professional 软件: MATLAB7.0或Visual C+ 6.0 三、实验内容:已知实验数据如下表所示,试用拉格朗日插值多项式求 的值。四、算法描述:已知为不超过次多项式且满足 易知Ln(x) = l0(x) y0 + + ln(x)yn,其中li(x)均为n次多项式,再由xj(j i)为次多项式li(x)的n个
2、根知,其中Ak为待定系数,由 ,得到 故:对应每一节点xi(0 i n),都能求出满足插值条件的n次插值多项式,从而可以求出n+1个n次插值多项式l0(x), l1(x), , ln(x)。进而,根据插值节点x求出插值结果。五、实验结果与分析(一) 实验源程序function f,f0=Languages(x,y,x0)%求已知数据点的拉格朗日插值多项式% x: 已知数据点x坐标向量% y: 已知数据点y坐标向量% x0: 插值点x的坐标% f: 求得的拉格朗日插值多项式% f0: x0处的插值syms t;if(length(x)=length(y) n=length(x);else dis
3、p(x和y的维数不一样!); return;end %检错f=0.0;for i=1:n p=y(i); for(j=1:i-1) p=p*(t-x(j)/(x(i)-x(j); end; for(j=i+1:n) p=p*(t-x(j)/(x(i)-x(j); end; f=f+p; endf0=subs(f,t,x0) (二) 实验数据 MATLAB 程序(1)如下: MATLAB 程序(2)如下: (二) 实验结果分析程序结果:运行结果(1):运行结果(2):分析:Lagrange插值公式是一个累加累乘的二重算法,结构紧凑,其各个节点地位对等,形式也很对称,从数学的角度讲,这个公式很漂亮。不过,Lagrange插值公式也有很大的缺点,在实际应用中,如果临时需要增添一个节点,则其所有系数都要重算,这势必照成计算量的浪费。在利用Lagrange插值公式进行高次插值的时候,很容易出现龙格现象,这说明对于某些插值,并不是插值的次数越多,结果越精准。对待问题应该根据情况进行分析,才能合理求出自己需要的结果。【精品文档】第 3 页