MATLAB实现拉格朗日插值
MATLAB 实现拉格朗日 插值 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】 数值分析上机报告 题目插值法 学号4 姓名靳会有 一、调用 MATLAB 内带函数插值 1、MATLAB 内带插值函数列举如下 interp1 interpft interp2 interp3 interpn spline meshgrid ndgrid griddata 一维数据内插查表法 使用 FFT 方法的一维数据内插 二维数据内插查表法 三维数据内插查表法 多维数据内插查表法 三次样条内插 为三维绘图产生 X 和 Y 阵 为多维函数和内插产生阵列 数据网格 2、取其中的一维数据内插函数(interp1)为例,程序如下 其调用格式为 yiinterp1x, y, xi yiinterp1x, y, xi, 举例如下 x010100 y[40 44 46 52 65 76 80 82 88 92 110]; xi01100 yiinterp1x,y,xi,spline 3、其他内带函数调用格式为 Interpft 函数 yinterpftx,n yinterpftx,n,dim interp2 函数 ZIinterp2X, Y, Z, XI, YI, ZIimerp2Z, ntimes ZIinterp2Z, XI, YI ,ZIinterp2X, Y, Z, XI, YI, interp3 函数 VIinterp3X,Y,Z,V,XI,YI,ZIVIinterp3V, ntimes VIinterp3V,XI,YI,ZIVIinterp3, Interpn 函数 VIinterpnX1, X2, X3, , V, Y1, Y2, Y3, VIinterpnV, ntimes VIinterpnV, Yl, Y2, Y3, VIinterpn, Spline 函数 yisplinex,y,xi ppsplinex,y meshgrid 函数 [X,Y]meshgridx,y [X,Y]meshgridx [X,Y,Z]meshgridx,y,z Ndgrid 函数 [X1, X2, X3, ]ndgridx1, x2, x3, [X1, X2, X3, ]ndgridx Griddata 函数 ZIgriddatax, y, z, XI, YI [XI, YI, ZI]griddatax, y, z, xi, yi []griddata 二、自编函数插值 1、拉格朗日插值法 建立 M 文件 function f Languagex,y,x0 syms t l; iflengthx lengthy n lengthx; else dispx 和 y 的维数不相等; return; 检错 end hsym0; for i1n lsymyi; forj1i-1 ll*t-xj/xi-xj; end; forji1n ll*t-xj/xi-xj; end; hhl; end simplifyh; ifnargin 3 f subs h,t,x0; 计算插值点的函数值 else fcollecth; f vpaf,6; 将插值多项式的系数化成 6 位精度的小数 end 在 MATLAB 中输入 x[18 31 66 68 70 72 70;] y[23 33 52 51 43 40 46]; fLanguagex,y plotx,y 结果为 f Inf -t*Inf - *t2 *t3 - *t4 *t5 - *t6 图形如下MATLAB 实现拉格朗日插值 建立如下拉格朗日插值函数 function ylagrangex0,y0,x; nlengthx0; mlengthx; for i1m zxi; s; for k1n p; for j1n if jk pp*z-x0j/x0k-x0j; end end sp*y0ks; end yis; end 画图程序如下 x[-515]; y1./1x.2; x0[-55]; y0lagrangex,y,x0; y11./1x0.2; plotx0,y0,r hold on plotx0,y1,g 注画出的图形为 n 10 的图形 得到图形如下 n10 的图 像 牛顿 K 次插值多项式 一、实验目的 1、掌握牛顿插值法的基本思路和步骤。 2、培养编程与上机调试能力。 二、牛顿插值法基本思路与计算步骤 给定插值点序列(x i , f x i ,i0,1,,n,。构造牛顿插值多项式N n u。输 入要计算的函数点x,并计算N n x的值,利用牛顿插值公式,当增加一个节点 时,只需在后面多计算一项,而前面的计算仍有用;另一方面N n x的各项系数 恰好又是各阶均差,而各阶均差可用均差公式来计算。 为的 一阶均差。 为 均差表 差 X0 X1 X2 X3 M fX0 fX1 fX2 fX3 M 零 阶 均一阶均差二阶均差 的 k 阶均差。 三阶均差 f[X0, X1] f[X1, X2] f[X2, X3] M f[X0,X1, X2] f[X1, X2,X3] M f[X0,X1, X2 X3] M 牛顿插值法计算步骤 x , f x i ,i 0,1,,n, 1.输入n值及( i;要计算的函数点 x 。 2.对给定的 x, 由 N x 计算 n 的值。 N x 3.输出 n 。 程序清单 function[c, d]newpolyx, y 牛顿插值的 MATLAB 实现 这里 x 为 n 个节点的横坐标所组成的向量,y 为纵坐标所组成的向量。 c 为所求的牛顿插值多项式的系数构成的向量。 nlengthx;取 x 的个数。 dzerosn, n;构造 nXn 的空数组。 d , 1y; for j2 n for kj n dk, jdk, j-1 - dk-1, j-1 / xk-xk-j1; end end c dn, n; for kn-1 - 1 1 c convc, polyxk; conv 求积,polyx将该多项式的系数 赋