典型数值计算的源代码.docxVIP

  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文档。上传文档
查看更多
典型数值计算的源代码

、Newdon迭代法求解非线性方程function [x k t]=NewdonToEquation(f,df,x0,eps)%牛顿迭代法解线性方程%[x k t]=NewdonToEquation(f,df,x0,eps)%x:近似解%k:迭代次数%t:运算时间%f:原函数,定义为内联函数?:函数的倒数,定义为内联函数%x0:初始值%eps:误差限%%应用举例:%f=inline(x^3+4*x^2-10);?=inline(3*x^2+8*x);%x=NewdonToEquation(f,df,1,0.5e-6)%[x k]=NewdonToEquation(f,df,1,0.5e-6)%[x k t]=NewdonToEquation(f,df,1,0.5e-6)%函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6%[x k t]=NewdonToEquation(f,df,1)if nargin==3 eps=0.5e-6;endtic;k=0;while 1 x=x0-f(x0)./df(x0); k=k+1; if abs(x-x0) eps || k 30 break; end x0=x;endt=toc;if k = 30 disp(迭代次数太多。); x=0; t=0;end2、Newdon迭代法求解非线性方程组function y=NewdonF(x)%牛顿迭代法解非线性方程组的测试函数%定义是必须定义为列向量y(1,1)=x(1).^2-10*x(1)+x(2).^2+8;y(2,1)=x(1).*x(2).^2+x(1)-10*x(2)+8;return;function y=NewdonDF(x)%牛顿迭代法解非线性方程组的测试函数的导数y(1,1)=2*x(1)-10;y(1,2)=2*x(2);y(2,1)=x(2).^+1;y(2,2)=2*x(1).*x(2)-10;return;以上两个函数仅供下面程序的测试function [x k t]=NewdonToEquations(f,df,x0,eps)%牛顿迭代法解非线性方程组%[x k t]=NewdonToEquations(f,df,x0,eps)%x:近似解%k:迭代次数%t:运算时间%f:方程组(事先定义)?:方程组的导数(事先定义)%x0:初始值%eps:误差限%%说明:由于虚参f和df的类型都是函数,使用前需要事先在当前目录下采用函数M文件定义% 另外在使用此函数求解非线性方程组时,需要在函数名前加符号“@”,如下所示%%应用举例:%x0=[0,0];eps=0.5e-6;%x=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)%[x k]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)%[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)%函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6%[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)if nargin==3 eps=0.5e-6;endtic;k=0;while 1 x=x0-inv(df(x0))*f(x0);%此处可采用其他方法避免求逆 k=k+1; if norm(x-x0) eps || k 15 break; end x0=x;endt=toc;if k = 15 disp(迭代次数太多。); x=zeros(size(x0)); t=0;end3、Lagrange插值法提供两个程序,采用了不同的方法function f=InterpLagrange(x,y,x0)%构造Lagrange插值多项式%此函数中借助向量卷积来求Lagrange基函数,运算速度较快%f=InterpLagrange(x,y,x0)%f:插值多项式或者是插值多项式在x0处的值%x:节点%y:函数值%x0:某一测试点%%调用格式:%f=InterpLagrange(x,y) 返回插值多项式%f=InterpLagrange(x,y,x0) 返回插值多项式在点x0处的值%举例:%x=[0.32 0.34 0.36];y=[0.314567 0.333487 0.352274];x0=0.33;%f=InterpLagrange(x,y)%f=InterpLagrange(x,y,x0)if length(x)==length(y)

文档评论(0)

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

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

1亿VIP精品文档

相关文档