MATLAB实现拉格朗日插值_第1页
MATLAB实现拉格朗日插值_第2页
MATLAB实现拉格朗日插值_第3页
免费预览已结束,剩余11页可下载查看

下载本文档

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

文档简介

1、数值分析上机报告题目:插值法学号:201014924姓名:靳会有一、调用MATLAB内带函数插值1、MATLAB内带插值函数列举如下:interpl interpft interp2 interp3 interpn spline meshgrid ndgrid griddata一维数据内插(查表法) 使用FFT方法的一维数据内插 二维数据内插(查表法) 三维数据内插(查表法) 多维数据内插(查表法) 三次样条内插为三维绘图产生X和Y阵 为多维函数和内插产生阵列 数据网格2、取其中的一维数据内插函数(interpl )为例,程序如下:其调用格式为:yi=interp1(x, y, xi)yi=i

2、nterp1(x, y, xi, method)举例如下:x=0:10:100y=40 44 46 52 65 76 80 82 88 92 110;xi=0:1:100 yi=interp1(x,y,xi,'spline')3、其他内带函数调用格式为:Interpft 函数:y=interpft(x,n)y=interpft(x,n,dim)interp2 函数:ZI=interp2(X, Y,乙 XI, YI) , ZI=imerp2(Z, ntimes)Zl=interp2(Z,XI, YI) ,ZI=interp2(X, Y, Z, XI, YI,method) int

3、erp3 函数:VI=interp3(X,Y,Z,V,XI,YI,ZI) VI=interp3(V, ntimes)VI=interp3(V,XI,YI,ZI)VI=interp3(,method)Interpn 函数:VI=interpn(X1, X2, X3,V, Y1, Y2, Y3,)VI=interpn(V, ntimes)VI=interpn(V, Yl, 丫2, 丫3,) method)Spline 函数:yi=spline(x,y,xi)pp=spli ne(x,y)meshgrid 函数:X,Y=meshgrid(x,y)X,Y=meshgrid(x)X,Y,Z=meshgr

4、id(x,y,z)Ndgrid 函数:X1, X2, X3,=ndgrid(x1, x2, x3,X1, X2, X3,=ndgrid(x)Griddata 函数:ZI=griddata(x, y, z, XI, YI)XI, YI, Zl=griddata(x, y, z, xi, yi)=griddata( method)二、自编函数插值1、拉格朗日插值法:建立M文件:fun cti on f = Lan guage(x,y,x0)syms t l;if(len gth(x) = len gth(y)VI=interpn()n = len gth(x);elsedisp('x和y的

5、维数不相等!');return;% 检错endh=sym(O);for (i=1: n)l=sym(y(i);for(j=1:i-1)l=l*(t-x(j)/(x(i)-x(j);end;for(j=i+1: n)l=l*(t-x(j)/(x(i)-x(j);end;h=h+l;endsimplify(h);if(n argin = 3)f = subs (h,'t',xO); %计算插值点的函数值elsef=collect(h);f = vpa(f,6); % 将插值多项式的系数化成6位精度的小数end在MATLAB中输入:x=18 31 66 68 70 72 70

6、;y=23 33 52 51 43 40 46;f=La nguage(x,y)Plot(x,y)结果为:f =I nf + (-t)*I nf - 54329.8*2 + 1503.75*tA3 - 22.2065P4 + 0.16789*tA5-0.000512106*tA6图形如下:MATLAB实现拉格朗日插值建立如下拉格朗日插值函数:fun cti on y=lagra nge(x0,y0,x);n=len gth(x0);m=le ngth(x);for i=1:mz=x(i);s=0.0;for k=1: np=1.0;for j=1: nif j二k p=p*(z-xO(j)/(

7、xO(k)-xO(j);endends=p*yO(k)+s;endy(i)=s;end画图程序如下:x=-5:1:5; y=1./(1+x.A2);xO二卜5:0.001:5; y0=lagra nge(x,y,x0); y1=1./(1+xO.A2);plot(x0,y0,'r')hold onplot(xO,y1,'g')注:画出的图形为n =10的图形得到图形如下:牛顿K次插值多项式一、实验目的:1、掌握牛顿插值法的基本思路和步骤。2、培养编程与上机调试能力。二、牛顿插值法基本思路与计算步骤:给定插值点序列(Xi, f(Xi) ,i 0,1,n,。构造牛顿

8、插值多项式 Nn(u)。输入要计算的函数点X,并计算Nn(x)的值,利用牛顿插值公式,当增加一个节点时,只需在后面多计算 一项,而前面的计算仍有用;另一方面Nn(X)的各项系数恰好又是各阶均差,而各阶均差可用均差公式来计算。/(X)一阶均差。/坯X.L斗二丿氐丄 兀牛耳一/1%斗丄兀討/(X)的k阶均差。均差表:Xk零阶均差一阶均差二阶均差三阶均差Xof(Xo)X1f(X1)fXo, X1X2f(X2)fX 1, X2fXo,X1, X2X3f(X3)fX2, X3fX 1, X2 ,X3fX o,X1, X2X3MMMMM牛顿插值法计算步骤:1输入n值及(Xi, f (Xi) ,i0,1,m

9、 ;要计算的函数点x。2.对给定的x,由Nn(X) f (Xo) (X Xo) f Xo,X1(X Xo)(X xjf Xo,X1, X2L(X Xo)(X XjL (x Xn 1)fXo,X1L , Xn计算Nn(X)的值。3 输出 Nn(x)。程序清单: functionc, d=n ewpoly(x, y)%牛顿插值的MATLAB实现%这里x为n个节点的横坐标所组成的向量,y为纵坐标所组成的向量。%c为所求的牛顿插值多项式的系数构成的向量。n=length(x);%取 x 的个数。d=zeros(n, n);% 构造nXn的空数组。d(: , 1)=y'for j=2 : nfo

10、r k=j : nd(k, j)=(d(k, j-1) - d(k-1, j-1) / (x(k)-x(k-j+1);endendc =d( n, n);for k=(n-1): - 1 : 1c =conv(c, poly(x(k);% conv 求积,poly(x)将该多项式的系数赋给向量。 m=le ngth(c);c(m)=c(m)+d(k, k);end五、测试数据与结果:测试数据:(第三章习题第三题第 2题)f(x)=lnx的数值如表所示,构造牛顿插值多项式并求ln0.53的值。X0.40.50.60.70.8In-0.91-0.69-0.5108-0.3577-0.22314x6291314726654解:由表可知 X0=0.4, x 1=0.5, x 2=0.6, x 3=0.7, x 4=0.7,函数值:Y0=-0.916291,y1=-0.693147,y2=-0.510826,y3=-0.357765,y4=-0.223144建立一个主程序 n p.m clcclearn ewpoly(0.4,0.5,0.6,0.7,0.

温馨提示

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

评论

0/150

提交评论