计算方法实验报告代码和结果.docxVIP

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

1.分段线性差值函数代码:function y=fdxx(x0,y0,x)%定义函数p=length(y0);n=length(x0);m=length(x);if p~=n error(数据输入有误,请重新输入);else fprintf(分段线性差值\n);for t=1:m z=x(t);if zx0(1)||zx0(n) fprintf(x(%d)超出范围;\n,t);break;%若x不在函数表范围内则插值结果不准确endfor i=1:n-1if zx0(i+1)break;%选取合适的两点使x(i)xx(i+1)endend%若x不再函数表范围内,则i=n-1 y(t)=y0(i)*(z-x0(i+1))/(x0(i)-x0(i+1))+y0(i+1)*(z-x0(i))/(x0(i+1)-x0(i));%按照分段线性插值公式求解y fprintf(y(%d)=%f\nx1=%.3f,y1=%.3f,x2=%.3f,y2=%.3f\n\n,t,y(t),x0(i),y0(i),x0(i+1),y0(i+1));%输出插值结果和所需节点endend结果展示: x0=[0.0 0.1 0.195 0.3 0.401 0.5]; y0=[0.39894 0.39695 0.39142 0.38138 0.36812 0.35206]; x=[0.15 0.31 0.47]; y1=fdxx(x0,y0,x)分段线性差值y(1)=0.394039x1=0.100,y1=0.397,x2=0.195,y2=0.391y(2)=0.380067x1=0.300,y1=0.381,x2=0.401,y2=0.368y(3)=0.356927x1=0.401,y1=0.368,x2=0.500,y2=0.352y1 =0.3940 0.3801 0.3569时间复杂度Elapsed time is 0.007477 seconds.2.分段二次差值函数代码:function y=fd2(x0,y0,x)%定义函数分段二次插值p=length(y0);n=length(x0);m=length(x); %计算函数表和x的长度if p~=n error(数据输入有误,请重新输入);%若函数表的x与y长度不一致则输入有误else fprintf(分段二次差值\n\n);for t=1:m %运用循环求解所有点的插值 z=x(t);if zx0(1)|zx0(n) fprinf(x(%d)超出范围;\n,t);break;%如果x不在函数表范围内无法插值end i=n-1; %若下列循环i不变,则i=n-1,for j=1:n-2if z(x0(j+1)+x0(j))/2 i=j;endend%选取i使得x(i-1),x(i),x(i+1)是距x最近的三个点 s=0.0;for k=i-1:i+1 p=1;for l=i-1:i+1if l~=k p=p*(z-x0(l))/(x0(k)-x0(l));endend s=s+y0(k)*p;end%根据分段二次插值公式求y y(t)=s; fprintf(y(%d)=%f\nx1=%.3f y1=%.3f\nx2=%.3f y2=%.3f\nx3=%.3f y3=%.3f\n\n,t,y(t),x0(i-1),y0(i-1),x0(i),y0(i),x0(i+1),y0(i+1));%输出结果和所需节点endend结果展示: y=fd2(x0,y0,x)分段二次差值y(1)=0.394554x1=0.195 y1=0.391x2=0.300 y2=0.381x3=0.401 y3=0.368y(2)=0.380225x1=0.195 y1=0.391x2=0.300 y2=0.381x3=0.401 y3=0.368y(3)=0.357247x1=0.300 y1=0.381x2=0.401 y2=0.368x3=0.500 y3=0.352y =0.3946 0.3802 0.3572时间复杂度Elapsed time is 0.005265 seconds.3.全区间拉格朗日差值函数代码:function y=lagrange(x0,y0,x) %定义函数p=length(y0);n=length(x0);m=length(x); %计算函数表和x的长度if p~=n error(数据

文档评论(0)

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

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

1亿VIP精品文档

相关文档