MATLAB实现拉格朗日插值

上传人:风*** 文档编号:67748169 上传时间:2022-04-01 格式:DOCX 页数:9 大小:72.55KB
收藏 版权申诉 举报 下载
MATLAB实现拉格朗日插值_第1页
第1页 / 共9页
MATLAB实现拉格朗日插值_第2页
第2页 / 共9页
MATLAB实现拉格朗日插值_第3页
第3页 / 共9页
资源描述:

《MATLAB实现拉格朗日插值》由会员分享,可在线阅读,更多相关《MATLAB实现拉格朗日插值(9页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上数值分析上机报告题目:插值法学号:姓名:靳会有一、调用MATLAB内带函数插值1、MATLAB内带插值函数列举如下:interp1interpftinterp2interp3interpnsplinemeshgridndgridgriddata一维数据内插(查表法)使用FFT方法的一维数据内插二维数据内插(查表法)三维数据内插(查表法)多维数据内插(查表法)三次样条内插为三维绘图产生X和Y阵为多维函数和内插产生阵列数据网格2、取其中的一维数据内插函数(interp1)为例,程序如下:其调用格式为: yi=interp1(x, y, xi) yi=interp1(x,

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

3、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, Y2, Y3, ) VI=interpn(, method)Spline函数:yi=spline(x,y,xi)pp=spline(x,y)meshgrid函数: X,Y=meshgrid(x,y) X,Y=meshgrid(x) X,Y,Z=mes

4、hgrid(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, ZI=griddata(x, y, z, xi, yi) =griddata( method)二、自编函数插值1、拉格朗日插值法:建立M 文件:function f = Language(x,y,x0)syms t l;if(length(x) = length(y) n = length(x);else disp(x和y的维数不相等!); ret

5、urn; %检错endh=sym(0);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(nargin = 3) f = subs (h,t,x0); %计算插值点的函数值else f=collect(h); f = vpa(f,6); %将插值多项式的系数化成6位精度的小数end在MATLAB中输入:x=18 31 66 68 70 72 70; y=23 33 52 51 43

6、40 46;f=Language(x,y)plot(x,y)结果为:f =Inf + (-t)*Inf - 54329.8*t2 + 1503.75*t3 - 22.2065*t4 + 0.16789*t5 - 0.*t6图形如下:MATLAB实现拉格朗日插值建立如下拉格朗日插值函数:function y=lagrange(x0,y0,x);n=length(x0);m=length(x);for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j=k p=p*(z-x0(j)/(x0(k)-x0(j); end end s=p*y0(k)

7、+s; end y(i)=s;end画图程序如下:x=-5:1:5;y=1./(1+x.2);x0=-5:0.001:5;y0=lagrange(x,y,x0);y1=1./(1+x0.2);plot(x0,y0,r)hold onplot(x0,y1,g)注:画出的图形为n =10的图形得到图形如下:n=10的图像 牛顿K次插值多项式一、实验目的:1、掌握牛顿插值法的基本思路和步骤。2、 培养编程与上机调试能力。二、牛顿插值法基本思路与计算步骤:给定插值点序列(。构造牛顿插值多项式。输入要计算的函数点并计算的值,利用牛顿插值公式,当增加一个节点时,只需在后面多计算一项,而前面的计算仍有用;另

8、一方面的各项系数恰好又是各阶均差,而各阶均差可用均差公式来计算。为 的 一阶均差。为 的 k 阶均差。均差表:零阶均差一阶均差二阶均差三阶均差X0f(X0)X1f(X1)fX0, X1X2f(X2)fX1, X2fX0,X1, X2X3f(X3)fX2, X3fX1, X2,X3fX0,X1, X2 X3MMMMM 牛顿插值法计算步骤:1 输入值及(;要计算的函数点。2 对给定的由 计算的值。3输出。 程序清单:functionc, d=newpoly(x, y) %牛顿插值的MATLAB实现 %这里 x为n个节点的横坐标所组成的向量,y为纵坐标所组成的向量。 %c为所求的牛顿插值多项式的系数

9、构成的向量。n=length(x);%取x的个数。d=zeros(n, n);%构造nXn的空数组。d(: , 1)=y;for j=2 : n for k=j : n d(k, j)=(d(k, j-1) - d(k-1, j-1) / (x(k)-x(k-j+1); endend c =d(n, n); for k=(n-1) : - 1 : 1 c =conv(c, poly(x(k);% conv求积,poly(x)将该多项式的系数赋给向量。 m=length(c); c(m)=c(m)+d(k, k); end五、测试数据与结果:测试数据:(第三章习题第三题第2题)f(x)=lnx的

10、数值如表所示, 构造牛顿插值多项式并求ln0.53的值。X0.40.50.60.70.8lnx-0.-0.-0.-0.-0.解: 由表可知x0=0.4, x1=0.5, x2=0.6, x3=0.7, x4=0.7,函数值:Y0=-0., y1=-0., y2=-0., y3=-0., y4=-0.建立一个主程序np.mclcclearnewpoly(0.4,0.5,0.6,0.7,0.8, -0., -0., -0., -0., -0.)计算结果如下:ans = -0.3096 2.6083 -5.4861 5.6921 -2.4744由此看出所求的牛顿多项式为: P(x)= -0.3096x4+2.6083x3-5.4861x2+5.6921x-2.4744P(0.53)= -0.6347。专心-专注-专业

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!