第四章__MATLAB_数值计算解析.ppt

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

* 非线性方程与最优化问题求解 非线性方程数值求解 单变量非线性方程求解 非线性方程组的求解 无约束最优化问题求解 有约束最优化问题求解 * 单变量非线性方程求解 在MATLAB中提供了一个fzero函数,可以用来求单变量非线性方程的根。该函数的调用格式为: z=fzero(fname,x0,tol,trace) fname是待求根的函数文件名 x0为搜索的起点。一个函数可能有多个根,但fzero函数只给出离x0最近的那个根。 tol控制结果的相对精度,缺省时取tol=eps trace指定迭代信息是否在运算中显示,为1时显示,为0时不显示,缺省时取trace=0。 * 单变量非线性方程求解(续) 例 求 在x0=-5和x0=1作为迭代初值时的零点。 先建立函数文件fz.m: function f=fz(x) f=x-1/x+5; 然后调用x-1/x+5fzero函数求根。: fzero(fz,-5) %以-5作为迭代初值 ans = -5.1926 fzero(fz,1) %以1作为迭代初值 ans = 0.1926 * 非线性方程组的求解 对于非线性方程组F(X)=0,用fsolve函数求其数值解。fsolve函数的调用格式为: X=fsolve(fun,X0,option) X为返回的解 fun是用于定义需求解的非线性方程组的函数文件名 X0是求根过程的初值 option为最优化工具箱的选项设定。 最优化工具箱提供了20多个选项,用户可以使用optimset命令将它们显示出来。如果想改变其中某个选项,则可以调用optimset()函数来完成。例如,Display选项决定函数调用时中间结果的显示方式,其中‘off’为不显示,‘iter’表示每步都显示,‘final’只显示最终结果。optimset(‘Display’,‘off’)将设定Display选项为‘off’。 * 非线性方程组的求解(续) 例 求下列方程组在(1,1,1)附近的解并对结果进行验证。 首先建立函数文件myfun.m。 function F=myfun (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; 在给定的初值x0=1,y0=1,z0=1下,调用fsolve函数求方程的根。 X=fsolve(myfun,[1,1,1],optimset(Display, off)) X = 0.0224 -0.0224 -0.0000 * 无约束最优化问题求解 在实际应用中,许多科学研究和工程计算问题都可以归结为一个最小化问题,如能量最小、时间最短等。 MATLAB提供了3个求最小值的函数,它们的调用格式为: [x,fval]=fminbnd(filename,x1,x2,option):求一元函数在(xl,x2)区间中的极小值点x和最小值fval。 [x,fval]=fminsearch(filename,x0,option):基于单纯形算法求多元函数的极小值点x和最小值fval。 [x,fval]=fminunc(filename,x0,option):基于拟牛顿法求多元函数的极小值点x和最小值fval。 MATLAB没有专门提供求函数最大值的函数,但只要注意到-f(x)在区间(a,b)上的最小值就是f(x)在(a,b)的最大值,所以fminbnd(-f,x1,x2))在返回函数f(x区间(x1,x2)上的最大值。 * 无约束最优化问题求解(续) 例 求函数 在区间(-10,1)和(1,10)上的最小值点 首先建立函数文件fx.m: function f=f(x) f=x-1/x+5; 上述函数文件也可用一个语句函数代替: f=inline(x-1/x+5) 再在MATLAB命令窗口,输入命令: fminbnd(fx,-10,-1) %求函数在(-10,-1)内的最小值点和最小值 fminbnd(f,1,10) %求函数在(1,10)内的最小值点。注意函数名f不用加 * 无约束最优化问题求解(续) 例 求函数 在(0.5,0.5,0.5)附近的最小值。 建立函数文件fxyz.m: function f=fxyz(u) x=u(1);y=u(2);z=u(3); f=x+y.^2./x/

文档评论(0)

little28 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档