ImageVerifierCode 换一换
格式:PPT , 页数:20 ,大小:416KB ,
资源ID:965805      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-965805.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第6讲 matlab 方程求解与优化问题.ppt)为本站会员(无敌)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

第6讲 matlab 方程求解与优化问题.ppt

1、1/20,第 6 讲 Matlab 方程求解与优化问题,6.1 方程求解6.2 无约束优化问题6.3 有约束优化问题6.4 线性规划问题,2/20,6.1 方程数值求解,6.1.1 单变量非线性方程求解在 Matlab 中提供了一个 fzero 函数, 可以用来求单变量非线性方程的根。该函数的调用格式为: z=fzero(filename, x0)其中,filename 是待求根的函数文件名,x0 为搜索的起点。一个函数可能有多个根,但 fzero 函数只给出距离 x0 最近的那个根。,3/20,例 6-1 求 f(x)=x-10x+2=0 在 x0=0.5 附近的根。步骤如下:(1) 建立函

2、数文件 funx.m. function fx=funx(x) fx=x-10.x+2;(2) 调用 fzero 函数求根。 z=fzero(funx,0.5) z = 0.3758,Ex: 求方程 在 附近的根。,4/20,6.1.2 非线性方程组的求解对于非线性方程组 F(X)=0,用 fsolve 函数求其数值解。fsolve 函数的调用格式为: x=fsolve(filename, x0, option)其中 x 为返回的解,filename 是用于定义需求解的非线性方程组的函数文件名,x0 是求根过程的初值,option 为设定的最优化工具箱的选项。最优化工具箱提供了 20 多个优化

3、参数选项,用户可以使用optimset 命令将它们显示出来。如果想改变其中某个选项,则可以调用 optimset( ) 函数来完成。例如,Display 选项决定函数调用时中间结果的显示方式,其中off 为不显示,iter 表示每步都显示,final 只显示最终结果。optimset(Display, off) 将设定 Display 选项为 off.,5/20,例 6-2 求下列非线性方程组在 (0.5, 0.5) 附近的数值解。(1) 建立函数文件 myfun.m.function q=myfun(p)x=p(1);y=p(2);q(1)=x-0.6*sin(x)-0.3*cos(y);q

4、(2)=y-0.6*cos(x)+0.3*sin(y);(2) 在给定的初值 x0=0.5, y0=0.5 下, 调用 fsolve 函数求方程的根。x=fsolve(myfun,0.5,0.5,optimset(Display,off),6/20,x = 0.6354 0.3734将求得的解代回原方程,可以检验结果是否正确,命令如下:q=myfun(x)q = 1.0e-009 * 0.2375 0.2957可见得到了较高精度的结果。,7/20,6.2 无约束最优化问题求解,6.2.1 非线性一元函数的最小值Matlab 命令为 fminbnd, 其调用格式为X=fminbnd(fun, x

5、1, x2)X, fval, exitflag, output=fminbnd(fun, x1, x2)其中, fun 为目标函数, x1, x2 为变量的边界约束, 即 x1xx2, x 为最小值点,fval 为最小值。exitflag 返回算法的终止标志, exitflag0 表示计算收敛, exitflag=0 表示超过了最大的迭代次数, exitflag0 表示计算不收敛。output 返回优化算法信息的一个数据结构,其中包含三个分量: iterations: 优化过程中迭代次数, funcCount: 代入函数值的次数;algorithm: 优化所采用的算法。,8/20,例 6-3

6、求 f(x)=x3-2x-5 在 0, 5 内的最小值点与最大值点。(1) 建立函数文件 mymin.mfunction fx=mymin(x)fx=x.3-2*x-5;(2) 调用 fmin 函数求最小值点与最大值点。xmin=fminbnd(mymin,0,5)xmin= 0.8165,9/20,例 6-4 求函数 f(x) 在区间 -2, 2 上的最小值和相应的 x 值。,解:Matlab 程序为,fun=(x5+x3+x2-1)/(exp(x2)+sin(-x) ezplot(fun,-2,2) % 绘图X,fval,exitflag,output= fminbnd(fun,-2,2)

7、,X =0.2176 fval =-1.1312 exitflag =1output = iterations: 12 funcCount: 13 algorithm: golden section search, parabolic interpolation message: 1x112 char,10/20,6.2.2 非线性多元函数的最小值Matlab 提供了两个命令:fminsearch, fminunc, 前者适合处理阶次低但是间断点多的函数, 后者则对于高阶连续函数比较有效。fminsearch 的调用格式为:x=fminsearch(fun, x0)x, fval, exitf

8、lag, output=fminsearch(fun, x0, options)该命令可求解目标函数 fun 的极小值点 x 和相应的最小值 fval, x0 为 x 的初始值。其余参数同 fminbnd.options 是一个结构, 里面有控制优化过程的各种参数, 可以使用optimset 命令来设置, 一般情况下不必改动它,使用默认设置就可以了。,11/20,fminunc 的调用格式为:x=fminunc(fun, x0) x, fval, exitflag, output, grad, hessian=fminunc(fun, x0, options)该命令求解目标函数 fun 的极小

9、值点 x 和相应的最小值 fval, x0 为优化的初始值, grad 返回目标函数在最优解点的梯度, hessian 返回最优解点的 hessian 矩阵, 其它参数的意义同 fminsearch.,注意:1、当目标函数的阶数大于 2 时, fminunc 比 fminsearch 更有效。但当目标函数高度不连续时, 使用 fminsearch 效果更好.2、Matlab 没有专门求函数最大值的函数, 但只要注意到 f(x) 在 区间 (a, b) 上的最小值点就是函数 f(x) 在 (a, b) 的最大值点, 所以 fminsearch(-f, x1, x2) 返回函数 f(x) 在区间

10、(x1, x2)上的最大值点。,12/20,例 6-5 求如下函数的最小值。,解:Matlab 程序为,fun=exp(x(1)*(2*x(1)+3*x(2)2+2*x(1)*x(2)+3*x(2)+1);x0=0,0;options=optimset(largescale,off,display,iter,tolx,1e-8,tolfun,1e-8);x,fval,exitflag,output,grad,hessian=fminunc(fun,x0,options),本例的程序对参数 options 进行了设置:largescale, off , 关闭了大规模方式;display 用来控制

11、计算过程的显示;iter 表示显示优化过程的每次计算结果;off 表示不显示所有输出,final仅输出最后结果;tolx 用来控制输入变量 x 的允许误差精度,本例设置为1e-8,tolfun 是控制目标函数的允许误差精度,缺省值是1e-4,本例为1e-8.,13/20,6.3 有约束优化问题,有约束最优化问题一般描述为: min f(x) s.t. G(x) 0其中,x=x1,x2,xn,该数学表示的含义是求一组 x,使得目标函数 f(x) 为最小,且满足约束条件 G(x) 0.约束条件可以进一步细化为:,14/20,Matlab 最优化工具箱提供了一个 fmincon 函数,专门用于求解各

12、种约束下的最优化问题。该函数的调用格式为: x, fval=fmincon(fname, x0, A, b, Aeq, beq, Lbnd, Ubnd, NonF, option)其中,x、fval、filename、x0 和 option 的含义与求最小值函数相同。其余参数为约束条件,参数 NonF 为非线性约束函数的 m 文件名。如果某个约束不存在,则用空矩阵来表示。,15/20,(1) 首先编写目标函数 M 文件 fop.mfunction f=fop(x)f=0.4*x(2)+x(1)2+x(2)2-x(1)*x(2)+1/30*x(1)3;(2) 设定约束条件,并调用 fmincon 函数求解此约束最优化问题:x0=0.5;0.5;A=-1,-0.5;-0.5,-1;b=-0.4,-0.5;lb=0,0;option=optimset; option.LargeScale=off; option.Display=off;x,f=fmincon(fop,x0,A,b,lb,option),例 6-6 求解有约束最优化问题,16/20,6.4 线性规划,6.4.1 Matlab 标准形式及求解,17/20,18/20,19/20,20/20,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报