matlab函数的极值与优化.ppt

上传人:牧羊曲112 文档编号:5438960 上传时间:2023-07-07 格式:PPT 页数:30 大小:488KB
返回 下载 相关 举报
matlab函数的极值与优化.ppt_第1页
第1页 / 共30页
matlab函数的极值与优化.ppt_第2页
第2页 / 共30页
matlab函数的极值与优化.ppt_第3页
第3页 / 共30页
matlab函数的极值与优化.ppt_第4页
第4页 / 共30页
matlab函数的极值与优化.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《matlab函数的极值与优化.ppt》由会员分享,可在线阅读,更多相关《matlab函数的极值与优化.ppt(30页珍藏版)》请在三一办公上搜索。

1、函数的极值与优化,上机目的,上机内容,MATLAB,2、会使用Matlab解决无约束最优化问题.,上机软件,1、会使用Matlab求函数的极值;,1、Matlab中函数的输入与调用;,2、函数极值的求法;,3、无约束最优化问题.,在Matlab中,函数是采用M文件的方式存储的。具体步骤如下:1、新建一个M文件:通过点击主窗口左上的新建按钮。2、输入函数内容:例:函数 f(x1,x2)=exp(X12+X2)应在M文件中输入如下:,一、自变量为数量形式的函数的输入,第一节 Matlab中函数的输入与调用,注意:(1)、函数标识关键字:function(2)、函数名:f1=f1 自变量:(x1,x

2、2),(3)、函数表达式:a=exp(x12+x2)函数表达式可以由多个式子组成。(4)、给函数结果赋值:f1=a,3、存储函数:点击编辑窗口的保存按钮。注意:不要改变保存路径,文件名称必须和函数名称一致。4、函数的调用:函数保存后,在命令窗口中即可调用该函数。如求上述函数在x1=1,x2=2处的函数值,即可在命令窗口中输入:f1(1,2)其中 f1 为刚才所输入的函数名。,二、自变量为向量形式函数的输入,例:函数f(x)=exp(x(1)2+x(2).其中x=(x(1),x(2),即x为一个二维向量。此时的输入与调用方式与数量时不同。,1、输入:,2、调用:此时自变量为向量,调用格式为:f2

3、(1,2)或 x=1 2;f2(x)即,自变量需采用向量形式输入。,3、实际运行结果如下:f2(1,2)ans=20.0855 x=1,2;f2(x)ans=20.0855,Matlab中,求一元函数极值的函数为 fminbnd 1、此函数最简输入格式为:x=fminbnd(f,a,b)含义为:求函数f在区间a,b上的最小值点(自变量值).2、对于最大值问题,需转化为最小值问题来处理。(-f(x)在区间a,b上的最小值就是f(x)在a,b的最大值),第二节 函数极值的求法,一、一元函数极值的求法,3、常用格式x,fval=fminbnd(f,a,b).结果中,fval为最小值,x为取到最小值的

4、点。例:Matlab命令:x,fval=fminbnd(x.2+3*x+1,-2,3)含义是:求函数f(x)=x2+3*x+1在-2,3内的最小值。结果为x=-1.5000 fval=-1.2500注:此时函数很简单,故没有使用M文件。,多元函数的最小值问题,在Matlab中有2个经常使用的函数:1、fminsearch 2、fminunc,注意:(1)、在使用这两个函数时,必须首先用M文件的形式存储待求最值的函数,并且需以向量函数的形式表达;(2)、最大值问题需转化为最小值问题。,二、多元函数极值的求法,(1)、此函数使用单纯型法搜索最值;(2)、使用格式:x,fval=fminsearch

5、(f,x0)其中f为待求最值的向量函数,x0为搜索过程开始时自变量的初始值。例:fminsearch(f,1,2)含义为:在x=1,2附近搜寻函数f的最小值。,1、fminsearch,例:求函数f(x,y)=-(x+y)+(x2+y2+1)在x=1,y=2 附近的最小值点。解决步骤:1、建立M文件,保存函数f;M文件内容为:function f1=f1(x)a=-(x(1)+x(2);b=(x(1)2+x(2)2+1);f1=a+b;2、调用fminsearch函数求最值.在命令窗口中,输入:x0=1,2;x,fval=fminsearch(f1,x0)3、输出结果为:X=0.5000 0.

6、5000 fval=0.5000,(1)、此函数与fminsearch不同的地方在于使用的搜索方法不同,它使用牛顿法搜索最值,在效率上有所提高;(2)、使用格式与fminsearch类似:x,fval=fminunc(f,x0)其中f为待求最值的向量函数,x0为搜索过程开始时自变量的初始值。例:fminunc(f,1,2)含义为:在x=1,2附近搜寻函数f的最小值。,2、fminunc,第三节 无约束最优化问题,求解无约束最优化问题的的基本思想,*Matlab优化工具箱简介,标准形式:,一、求解无约束最优化问题的基本思想,求解的基本思想(以二元函数为例),5,3,1,连续可微,多局部极小,唯一

7、极小(全局极小),搜索过程,最优点(1 1)初始点(-1 1),-1,1,4.00,-0.79,0.58,3.39,-0.53,0.23,2.60,-0.18,0.00,1.50,0.09,-0.03,0.98,0.37,0.11,0.47,0.59,0.33,0.20,0.80,0.63,0.05,0.95,0.90,0.003,0.99,0.99,1E-4,0.999,0.998,1E-5,0.9997,0.9998,1E-8,二、用Matlab解无约束优化问题(举例说明),其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。函数fminbnd的算法基于黄金分割法和二次插值

8、法,它要求目标函数必须是连续函数,并可能只给出局部最优解。,常用格式如下:(1)x=fminbnd(fun,x1,x2)(2)x=fminbnd(fun,x1,x2,options)(3)x,fval=fminbnd(.)(4)x,fval,exitflag=fminbnd(.)(5)x,fval,exitflag,output=fminbnd(.),解 在matlab命令窗口中输入:f=2*exp(-x).*sin(x);fplot(f,0,8);%作图语句 xmin,ymin=fminbnd(f,0,8)f1=-2*exp(-x).*sin(x);xmax,ymax=fminbnd(f1,

9、0,8),例2 对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大?,解,先编写M文件fun0.m如下:function f=fun0(x)f=-(3-2*x).2*x;,主程序为:x,fval=fminbnd(fun0,0,1.5);xmax=x fmax=-fval,运算结果为:xmax=0.5000,fmax=2.0000.即剪掉的正方形的边长为0.5米时水槽的容积最大,最大容积为2立方米.,命令格式为:(1)x=fminunc(fun,X0);或x=fminsearch(fun,X0)(2)x=fminunc(fun,X0,options)

10、;或x=fminsearch(fun,X0,options)(3)x,fval=fminunc(.);或x,fval=fminsearch(.)(4)x,fval,exitflag=fminunc(.);或x,fval,exitflag=fminsearch(5)x,fval,exitflag,output=fminunc(.);或x,fval,exitflag,output=fminsearch(.),2、多元函数无约束优化问题,标准型为:min F(X),3 fminunc为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制:LineSearc

11、hType=quadcubic(缺省值),混合的二次和三次多项式插值;LineSearchType=cubicpoly,三次多项式插,使用fminunc和 fminsearch可能会得到局部最优解.,说明:,fminsearch是用单纯形法寻优.fminunc的算法见以下几点说明:,1 fminunc为无约束优化提供了大型优化和中型优化算法。由options中 的参数LargeScale控制:LargeScale=on(默认值),使用大型算法LargeScale=off(默认值),使用中型算法,2 fminunc为中型优化算法的搜索方向提供了4种算法,由 options中的参数HessUpda

12、te控制:HessUpdate=bfgs(默认值),拟牛顿法的BFGS公式;HessUpdate=dfp,拟牛顿法的DFP公式;HessUpdate=steepdesc,最速下降法,例3 min f(x)=(4x12+2x22+4x1x2+2x2+1)*exp(x1),1、编写M-文件 fun1.m:function f=fun1(x)f=exp(x(1)*(4*x(1)2+2*x(2)2+4*x(1)*x(2)+2*x(2)+1);2、输入命令窗口中输入:x0=-1,1;x=fminunc(fun1,x0);y=fun1(x),3、运行结果:x=0.5000-1.0000 y=1.3029e

13、-10,例4 产销量的最佳安排 某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大.所谓产销平衡指工厂的产量等于市场上的销量.,2、基本假设,(1)价格与销量成线性关系,(2)成本与产量成负指数关系,3、模型建立,若根据大量的统计数据,求出系数b1=100,a11=1,a12=0.1,b2=280,a21=0.2,a22=2,r1=30,1=0.015,c1=20,r2=100,2=0.02,c2=30,则问题转化为无约束优化问题:求甲,乙两个牌号的产量x1,x2,使总利润z最大.,为简化模型,先忽略成本,并令a12=0,a21=0,问题转化为求:z1=(

14、b1-a11x1)x1+(b2-a22x2)x2 的极值.显然其解为x1=b1/2a11=50,x2=b2/2a22=70,我们把它作为原问题的初始值.,总利润为:z(x1,x2)=(p1-q1)x1+(p2-q2)x2,4、模型求解,(1).建立M-文件fun.m:function f=fun(x)y1=(100-x(1)-0.1*x(2)-(30*exp(-0.015*x(1)+20)*x(1);y2=(280-0.2*x(1)-2*x(2)-(100*exp(-0.02*x(2)+30)*x(2);f=-y1-y2;,(2).输入命令:x0=50,70;x=fminunc(fun,x0)

15、,z=fun(x),(3).计算结果:x=23.9025 62.4977 z=-6.4135e+003 即甲的产量为23.9025,乙的产量为62.4977,最大利润为6413.5.,1、求函数 在区间-10,10内的最值?2、求函数 在区间-1,3内的最值?3、某工厂要制作一个容积为100立方米的无盖长方体容器,问:怎样制作材料最省?4、要制作一表面积为108平米的水池,问:怎样选择长宽高,能使得容积最大?,上机作业(四),5、梯子长度问题(选作)一楼房的后面是一个很大的花园.在花园中紧靠着楼房有一个温室,温室伸入花园2m,高3m,温室正上方是楼房的窗台.清洁工打扫窗台周围,他得用梯子越过温室,一头放在花园中,一头靠在楼房的墙上.因为温室是不能承受梯子压力的,所以梯子太短是不行的.现清洁工只有一架7m长的梯子,你认为它能达到要求吗?能满足要求的梯子的最小长度为多少?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号