MATLAB实现拉格朗日插值.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
. . 数值分析上机报告 题目:插值法 学号:201014924 姓名:靳会有 一、调用 MATLAB 内带函数插值 1、MATLAB 内带插值函数列举如下: interp1 interpft interp2 interp3 interpn spline meshgrid ndgrid griddata 一维数据内插(查表法) 使用 FFT 方法的一维数据内插二维数据内插(查表法) 三维数据内插(查表法) 多维数据内插(查表法) 三次样条内插 为三维绘图产生 X 和Y 阵为多维函数和内插产生阵列数据网格 2、取其中的一维数据内插函数(interp1)为例,程序如下: 其调用格式为: yi=interp1(x, y, xi) yi=interp1(x, y, xi, method) 举例如下: x=0:10:100 y=[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, Z, XI, YI), ZI=imerp2(Z, ntimes) ZI=interp2(Z, XI, YI) ,ZI=interp2(X, Y, Z, XI, YI, method) interp3 函数: 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, Y2, Y3, … ) method) Spline 函数: yi=spline(x,y,xi) pp=spline(x,y) meshgrid 函 数 : [X,Y]=meshgrid(x,y) [X,Y]=meshgrid(x) [X,Y,Z]=meshgrid(x,y,z) Ndgrid 函数: VI=interpn( … , [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) function f = Language(x,y,x0) syms t l; if(length(x) == length(y)) n = length(x); . . else end  disp(x 和 y 的维数不相等!); return; %检错 h=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; end simplify(h); if(nargin == 3) f = subs (h,t,x0); %计算插值点的函数值 else end  f=collect(h); f = vpa(f,6); %将插值多项式的系数化成 6 位精度的小数 在 MATLAB 中输入: x=[18 31 66 68 70 72 x=[18 31 66 68 70 72 70;] y=[23 33 52 51 43 40 46]; f=Language(x,y) plot(x,y) 结果为: f =Inf + (-t)*Inf - 54329.8*t^2 + 1503.75*t^3 - 22.2065*t^4 + 0.16789*t^5 - 0.000512106*t^6 图形如下: MATLAB 实现拉格朗日插值建立如下拉格朗日插值函数: function y=lagrange(x0,y0,x); n=length(x0); MATLAB 实现拉格朗日插值 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)

文档评论(0)

dqy118 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体上海海滋实业有限公司
IP属地湖北
统一社会信用代码/组织机构代码
91310115MA7DL1JF2N

1亿VIP精品文档

相关文档