_插值拟合_Matlab课件.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
_插值拟合_Matlab课件.ppt

function y=lagr1(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)+s; end y(i)=s; end 求Lagrange插值多项式和基函数的Matlab主程序 function [L,C,l,L1]=lagran1(X,Y) %X,Y分别为输入的节点的横坐标向量和纵坐标向量 %输出的量:Lagrange多项式L及其系数向量C,基函数l及其系数矩阵L1 m=length(X); L=ones(m,m); for k=1:m V=1; for i=1:m if k~=i V=conv(V,poly(X(i)))/(X(k)-X(i)); end end L1(k,:)=V; l(k,:)=poly2sym(V); end C=Y*L1; L=Y*l; 例:f(x)=1/(1+25x2),-1=x=1,假设已知其中一些点的坐标,则可以采用下面的命令求出5次lagrange插值多项式及其基函数。 Matlab命令为: X=linspace(-1,1,6); Y=1./(1+25*X.^2); [L,C,l,L1]=lagran1(X,Y) 经过 个点 ,构造一个n次多项式,形如: 其中 为各阶差商。 K阶差商的计算公式如下: function [C,D]=newpoly(x,y) %牛顿插值,x,y分别为节点的横坐 %标和纵坐标向量,C为插值多项式系数向量,D为差商矩阵 n=length(x); D=zeros(n); 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)); end end C=D(n,n); for k=(n-1):-1:1 %构造插值多项式 C=conv(C,poly(x(k))); m=length(C); C(m)=C(m)+D(k,k); end 3. 例题:函数表为 x 0.40 0.55 0.65 0.80 0.90 1.05 f(x) 0.4075 0.57815 0.69675 0.88811 1.02652 1.2538 利用牛顿插值多项式计算f(0.596)的值 % variational,自然样条 % (边界二阶导数为0) subplot(2,2,3); pp=csape(x,y,variational); xi=0:0.1:5; yi=ppval(pp,xi); plot(x,y,o,xi,yi); axis([0 3 -0.5 2.5]); title(自然样条); 解:Matlab计算程序如下: X=[100,200,300,400,500,600,700,800,900,1000]; Y=[105.3,207.2,308.1,406.9,507.5,605.8,707.4,806.7,908.0,107.9]; Xk=780; Yk=interp1(X,Y,Xk) 执行结果:Yk = 786.8400 这里:X和Y分别表示样本点的刻度值和校正值; Xk和Yk分别表示插值点的刻度值和校正值。 ★ Matlab命令: 1. y=interp1(x0,y0,x,spline); 2. y=spline(x0,y0,x); 3. pp=csape(x0,y0,conds);%csape为三次样条插值函数 pp=csape(x0,y0,conds,

文档评论(0)

克拉钻 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档