第5章_MATLAB数值计算案例.pptVIP

  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文档。上传文档
查看更多
(3)二重积分 例5.44计算二重积分。 建立一个函数文件fixy.m: function f=f(x,y) f=exp(-x.^2-y.^2); return 建立一个命令文件ftxy1.m: for i=1:20 int2(i)=quad(fixy,0,1,[],[],x(i)); %在二维函数fixy中以x=x(i)代入并对y积分。 end 在MATLAB命令窗口,输入命令: x=linspace(0,1,20); ftxy1 trapz(x,int2) 实际上,MATLAB提供了计算二重积分的函数: dblquad(f,a,b,c,d,tol,trace) 该函数求f(x,y)在[a,b]×[c,d]区域上的二重积分。参数tol,trace的用法与函数quad完全相同。 如果直接使用这里介绍的二重积分函数dblquad来求解本例就非常简单,命令如下: g=inline(exp(-x.^2-y.^2)); dblquad(g,0,1,0,1) %直接调用二重积分函数求解 5.7 常微分方程的数值求解 基于龙格-库塔法,MATLAB提供了求常微分方程数值解的函数,一般调用格式为: [X,Y]=ode23(f,[x0,xn],y0) [X,Y]=ode45(f,[x0,xn],y0) 其中X、Y是两个向量,X对应自变量x在求解区间[x1,xn]的一组采样点,其采样密度是自适应的,无需指定;Y是与X对应的一组解,f是一个函数,[x0,xn]代表自变量的求解区间,y0=y(x0),由方程的初值给定。函数在求解区间[x0,xn]内,自动设立采样点向量X,并求出解函数y在采样点X处的样本值。 例5.45 求微分方程初值问题在[1,3]区间内的数值解,并将结果与解析解进行比较。 先建立一个该函数的m文件fxy1.m: function f=f(x,y) f=-2.*y./x+4*x %注意使用点运算符 return 再输入命令: [X,Y]=ode45(fxy1,[1,3],2); X %显示自变量的一组采样点 Y %显示求解函数与采样点对应的一组数值解 (X.^2+1./X.^2) %显示求解函数与采样点对应的一组解析解 例5.46 求解初值问题在区间[0,2]中的解。 建立一个函数文件 fxy2.m: function f=f(x,y) f(2)=-x.*y(2)+x.^2-5; f(1)=y(2); f=f; return 在MATLAB命令窗口,输入命令: [X,Y]=ode45(fxy2,[0,2],[5,6]); [X,Y] 5.8 非线性方程的数值求解 1.单变量非线性方程求解 MATLAB中,提供了求解单变量方程的函数fzero(f,x0,tol),该函数采用迭代法计算函数f(x)的一个零点,迭代初值为x0,当两次迭代结果小于tol时停止迭代过程。tol的缺省值是eps。 注意,在调用函数fzero 之前,要使用m文件建立自己要计算的函数f(x),只有定义了函数f(x)的m文件后,才能在fzero函数的参数中使用自定义函数名。 例5.47 求f(x)=x-+5 在x0=-5和x0=1作为迭代初值时的零点。 先编制一个函数文件fz.m: function f=f(x) f=x-1/x+5; 然后,在MATLAB命令窗口,输入命令: fzero(fz,-5) %以-5作为迭代初值 Zero found in the interval: [-4.8, -5.2]. fzero(fz,1) 2.非线性方程组求解 函数fsolve调用格式为: X=fsolve(F,X0) 例5.48 求方程组在(1,1,1)附近的解并对结果进行验证。 首先建立方程的函数文件fxyz1.m: function F=F(X) x=X(1);y=X(2);z=X(3); F(1)=sin(x)+y+z^2*exp(x); F(2)=x+y*z; F(3)=x*y*z; 在MATLAB命令窗口,输入命令: X=fsolve(fxyz1,[1,1,1]) %求解X的三个分量x、y、z Y=fxyz1(X) %检验所求结果X是否满足原方程组 norm(Y) %求Y向量的模 例5.49 求圆和直线的两个交点。 建立方程组函数文件fxyz2.m: function F=F(X) x=X(1);y=X(2);z=X(3); F(1)=x^2+y^2+z^2-9; F(2)=3*x+5*y+6*z; F(3)=x-3*y-6*z-1; 在MATLAB命令窗口,输入命令: X1=fsolv

文档评论(0)

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

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

1亿VIP精品文档

相关文档