插值数值分析作业1.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
插值数值分析作业1

根据下面数表 xi 0 1 2 3 yi 0 0.5 2 1.5 求自然样条 求自然样条, 在matlab中输入如下程序: X0=0; Y0=0; X=[1,2,3]; Y=[0.5,2,1.5]; n=length(X); u=ones(n-1,1); b=2*ones(n-1,1); lanbuda=ones(n-1,1); d=zeros(n-1,1); h0=X(1)-X0; h=zeros(n-1,1); for i= 1:n-1 h(i)=X(i+1)-X(i); end u(1)=h0/(h0+h(1)); lanbuda(1)=1-u(1); for i=2:n-1 u(i)=h(i-1)/(h(i-1)+h(i)); end for i=2:n-1 lanbuda(i)=1-u(i); end d(1)=((Y(2)-Y0)/(X(2)-X0)-(Y(1)-Y0)/h0)/h(1); d(n)=(Y(n)-Y(n-1))/h(n-1); for i=2:n-1 d(i)=(((Y(i+1)-Y(i-1))/(X(i+1)-X(i-1)))-((Y(i)-Y(i-1))/h(i-1)))/h(i); end for i=1:n-1 d1(i)=6*d(i); end m=tridiag(u,b,lanbuda,d1) M0=0; Mn=0; m; M=[M0;m;Mn]; s01=(M(2)-M(1))/(6*h0); s02=M(1)/2; s03=(Y(1)-Y0)/(X(1)-X0)-((2*M(1)+M(2))/6)*h0; s04=Y0; for i=1:n-1 s(i,1)=(M(i+2)-M(i+1))/(6*h(i)); s(i,2)=M(i+1)/2; s(i,3)=(Y(i+1)-Y(i))/(h(i))-((2*M(i+1)+M(i+2))/6)*(h(i)); s(i,4)=Y(i); End s=[s01,s02,s03,s04;s(1:n-1,1:4)] XX=[X0,X]; YY=[Y0,Y]; p=mkpp(XX,s) %结果如下: m = 2.4000 -3.6000 s = 0.4000 0 0.1000 0 -1.0000 1.2000 1.3000 0.5000 0.6000 -1.8000 0.7000 2.0000 p = form: pp breaks: [0 1 2 3] coefs: [3x4 double] pieces: 3 order: 4 dim: 1 %对x赋值 x=linspace(0,3,100); y=ppval(p,x) plot(x,y) %样条曲线如下图所示: 由S(0)=0.2,S(3)=-1,求固定样条, 在matlab中输入如下程序: y1a=0.2; y1b=-1; X0=0; Y0=0; X=[1,2,3]; Y=[0.5,2,1.5]; n=length(X); u=ones(n-1,1); b=2*ones(n+1,1); lanbuda=ones(n-1,1); d=zeros(n+1,1); h0=X(1)-X0; h=zeros(n-1,1); for i= 1:n-1 h(i)=X(i+1)-X(i); end u(1)=h0/(h0+h(1)); lanbuda(1)=1-u(1); for i=2:n-1 u(i)=h(i-1)/(h(i-1)+h(i)); end newu=[u(1:n-1);1]; for i=2:n-1 lanbuda(i)=1-u(i); end newlanbuda=[1;lanbuda(1:n-1)]; d0=(Y(1)-Y0)/h0; d(1)=((Y(2)-Y0)/(X(2)-X0)-(Y(1)-Y0)/h0)/h(1); d(n)=(Y(n)-Y(n-1))/h(n-1); for i=2:n-1 d(i)=(((Y(i+1)-Y(i-1))/(X(i+1)-X(i-1)))-((Y(i)-Y(i-1))/h(i-1)))/h(i); end for i=1:n-1 d1(i)=6*d(i); end d1; d20=(6*(d0-y1a))/h0; d2n=(6*(y1b-d(n)))/h(n-1); newd=[d20;d1;d2n]; m=tridiag(newu,b,newlanbu

文档评论(0)

jiulama + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档