六、MATLAB在计算方法中的应用(插值拟合).ppt

六、MATLAB在计算方法中的应用(插值拟合)

Matlab在计算方法中的应用(1) 1,插值问题的提法 2,求解的基本思路 3,拉格朗日多项式插值 4,拉格朗日多项式插值的matlab实现 5,分段线性插值 6,分段线性插值的matlab命令 yi = interp1(x, y, xi, ‘linear ’) 命令解释: interp1(一维插值函数) x, y,(用于存放已知节点的坐标) ‘linear ’(可选参数,linear表示用分段线性插值的方法做一维值) xi ,yi(得到插值函数后并不是返回具体的函数而是对于给定的xi返 回他所对应的插值函数的函数值yi) 7,其他的插值方法命令 一维插值: yi = interp1(x, y, xi, ‘method ’) 8,各种一维插值的比较 立方插值 x=linspace(-6,6,5); y=1./(1+x.^2); xi=linspace(-6,6,50); yi = interp1(x, y, xi,cubic); yii=1./(1+xi.^2); plot(xi,yi,r) hold on plot(xi,yii) 样条 x=linspace(-6,6,11); y=1./(1+x.^2); xi=linspace(-6,6,50); yi = interp1(x, y, xi,spline); yii=1./(1+xi.^2); plot(xi,yi,r) hold on plot(xi,yii) 样条(11节点) x=linspace(-6,6,11); y=1./(1+x.^2); xi=linspace(-6,6,50); yi = interp1(x, y, xi,spline); yii=1./(1+xi.^2); plot(xi,yi,r) hold on plot(xi,yii) 9,样条插值(spline) x = 0:10; y = sin(x); xx = 0:0.25:10; yy = spline(x,y,xx); %直接用样条插值命令求插值 plot(x,y,o,xx,yy) 分析下边的程序 x = -4:4; y = [0 .15 1.12 2.36 2.36 1.46 .49 .06 0]; cs = spline(x,y); xx = linspace(-4,4,101); plot(x,y,o,xx,ppval(cs,xx),-) ppval(cs,xx)表示由样条函数cs上对应于横坐标xx的纵坐标的值 2,多项式拟合命令 4,可转换为多项式拟合 x1=[-70 -50 -30 -10 20]; y1=[-1.704 -1.519 -2.564 -1.103 0]; %将y中的数据取对数y1=lny subplot(1,2,1); plot(x1,y1,o); hold on; p1=polyfit(x1,y1,1); yy1=polyval(p1,-70:20); plot(-70:20,yy1,r); x=-70:20; y=exp(p1(1).*x+p1(2)); subplot(1,2,2); plot(x,y) hold on; xx=[-70 -50 -30 -10 20] yy=[0.182 0.219 0.077 0.332 1] plot(xx,yy,o); 5,非多项式拟合 常用命令 1,a=lsqnonlin(fun,a0) 此命令用的不多 2,X=LSQCURVEFIT(FUN,X0,XDATA,YDATA) XDATA,YDATA表示原是的数据为一些离散点的坐标 x0为初始点,根据实际情况给出可以已知的一个点 fun拟合的函数形式(如4中例y=exp(ax+b))有未知参数 x返回未知参数(如上例a,b) 例题 * * 一 插 值 从理论和计算角度看,多项式是最简单的函数,设f(x) 是n次多项式,记作 对于节点 应有 拉格朗日多项式插值没有现成的matlab命令可用,如果要求拉格朗日插值多项式则必须自己编制matlab函数。 例 采用拉格朗日多项式插值:选取不同插值节点个数n+1,其中n为插值多项式的次数,当n分别取2,4,6,8,10时,绘出插值结果图形. 插值函数为分段的线性函数,即用线段把相邻的两个节点连接起来而得的函数 例 用分段线性插值法求插值,并观察插值误差. 1.在[-6,6]中平均选取5个点作插值 2.在[-6,6]中平均选取11个点作插值 x=linspace(-6,6,5); %选取节

文档评论(0)

1亿VIP精品文档

相关文档