matlab 函数的极值与优化_第1页
matlab 函数的极值与优化_第2页
matlab 函数的极值与优化_第3页
matlab 函数的极值与优化_第4页
matlab 函数的极值与优化_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 高等数学高等数学 上机教学(四)上机教学(四)函数的极值与优化函数的极值与优化上机目的上机目的上机内容上机内容MATLAB2、会使用、会使用Matlab解决无约束最优化问题解决无约束最优化问题.上机软件上机软件1、会使用、会使用Matlab求函数的极值;求函数的极值;1、 Matlab中函数的输入与调用;中函数的输入与调用;2、函数极值的求法;、函数极值的求法;3、无约束最优化问题、无约束最优化问题. 在在Matlab中,函数是采用中,函数是采用M文件的方式存储的。文件的方式存储的。具体步骤如下:具体步骤如下: 1、新建一个、新建一个M文件:文件:通过点击主窗口左上的新建按钮。通过点击主窗口

2、左上的新建按钮。 2、输入函数内容:、输入函数内容: 例:函数例:函数 f(x1,x2)=exp(X12+X2) 应在应在M文件文件中输入如下:中输入如下:一、自变量为数量形式的函数的输入一、自变量为数量形式的函数的输入第一节第一节 Matlab中函数的输入与调用中函数的输入与调用注意:注意:(1)、函数标识关键字:)、函数标识关键字:function(2)、函数名:)、函数名:f1=f1 自变量自变量: (x1,x2) (3)、函数表达式:)、函数表达式:a=exp(x12+x2) 函数表达式可以由多个式子组成。函数表达式可以由多个式子组成。(4)、给函数结果赋值:)、给函数结果赋值:f1=

3、a 3、存储函数:、存储函数:点击编辑窗口的保存按钮。点击编辑窗口的保存按钮。 注意注意:不要改变保存路径,文件名称必须和函数名称一致。不要改变保存路径,文件名称必须和函数名称一致。4、函数的调用:、函数的调用: 函数保存后,在命令窗口中即可调用该函数。函数保存后,在命令窗口中即可调用该函数。 如求上述函数在如求上述函数在x1=1,x2=2处的函数值,即可在命令处的函数值,即可在命令窗口中输入:窗口中输入:f1(1,2) 其中其中 f1 为刚才所输入的函数名。为刚才所输入的函数名。二、自变量为向量形式函数的输入二、自变量为向量形式函数的输入例:函数例:函数f(x)=exp(x(1)2+x(2)

4、.其中其中x=(x(1),x(2),即即x为一个二维向量。为一个二维向量。此时的输入与调用方式与数量时不同此时的输入与调用方式与数量时不同。1、输入:、输入:2、调用:、调用: 此时自变量为向量,调用格式为:此时自变量为向量,调用格式为:f2(1,2) 或或 x=1 2; f2(x) 即,自变量需采用向量形式输入。即,自变量需采用向量形式输入。3、实际运行结果如下:、实际运行结果如下: f2(1,2)ans = 20.0855 x=1,2; f2(x)ans = 20.0855Matlab中,求一元函数极值的函数为中,求一元函数极值的函数为 fminbnd 1、此函数最简输入格式为:、此函数最

5、简输入格式为: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为取到最小值的点。为取到最小值的点。例:例:Matlab命令:命令:

6、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文文件的形式存储待求最值的函数,并且需以向量函数件的形式存储待求最值的

7、函数,并且需以向量函数的形式表达;的形式表达; ( 2)、最大值问题需转化为最小值问题。)、最大值问题需转化为最小值问题。二、多元函数极值的求法二、多元函数极值的求法(1)、此函数使用单纯型法搜索最值;)、此函数使用单纯型法搜索最值;(2)、使用格式:)、使用格式: x,fval= fminsearch(f,x0) 其中其中f为待求最值的向量函数,为待求最值的向量函数,x0为搜索过程为搜索过程开始时自变量的初始值。开始时自变量的初始值。例:例:fminsearch(f,1,2) 含义为:在含义为:在x=1,2附近搜附近搜寻函数寻函数f的最小值。的最小值。 1、 fminsearch 例:例:求

8、函数求函数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.5000 fval =0.5000(1)、此函

9、数与)、此函数与fminsearch不同的地方在于使用的不同的地方在于使用的搜索方法不同,它使用牛顿法搜索最值,在效率上搜索方法不同,它使用牛顿法搜索最值,在效率上有所提高;有所提高;(2)、使用格式与)、使用格式与fminsearch类似:类似: x,fval= fminunc(f,x0) 其中其中f为待求最值的向量函数,为待求最值的向量函数,x0为搜索过程开为搜索过程开始时自变量的初始值。始时自变量的初始值。例例:fminunc(f,1,2) 含义为:在含义为:在x=1,2附近搜寻附近搜寻函数函数f的最小值。的最小值。 2、 fminunc 第三节第三节 无约束最优化问题无约束最优化问题求

10、解无约束最优化问题的的基本思想求解无约束最优化问题的的基本思想* Matlab优化工具箱简介优化工具箱简介 XfnEXmin 其中 1:EEfn标准形式:标准形式:一、求解无约束最优化问题的基本思想一、求解无约束最优化问题的基本思想求解的基本思想求解的基本思想 ( 以二元函数为例 )1x2x)(21xxf01x2x05310X1X2X)(0Xf)(1Xf)(2Xf连续可微 XfnEXmax = minXfnEX 多局部极小298.0f0f298.0f 唯一极小(全局极小)2122212121322)(xxxxxxxxf搜索过程搜索过程21221221)1 ()(100)(minxxxxxf最优

11、点 (1 1)初始点 (-1 1)1x2xf-114.00-0.790.583.39-0.530.232.60-0.180.001.500.09-0.030.980.370.110.470.590.330.200.800.630.050.950.90 0.0030.990.991E-40.9990.9981E-50.9997 0.9998 1E-8二、用二、用Matlab解无约束优化问题(举例说明)解无约束优化问题(举例说明) 其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部

12、最优解。常用格式如下:常用格式如下:(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(.)运行结果: xmin = 3.9270 ymin = -0.0279 xmax = 0.7854 ymax = 0.6448 解解 在在matlab命令窗口中输入:命令窗口中输入: f=2*exp(-x).*sin(x); fplot(f,0,8); %作图语句作图语句

13、 xmin,ymin=fminbnd (f, 0,8) f1=-2*exp(-x).*sin(x); xmax,ymax=fminbnd (f1, 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运算结果为运

14、算结果为: xmax = 0.5000,fmax =2.0000.即剪掉的正方形的边即剪掉的正方形的边长为长为0.5米时水槽的容积最大米时水槽的容积最大,最大容积为最大容积为2立方米立方米. 命令格式为命令格式为:(1)x= fminunc(fun,X0 );或);或x=fminsearch(fun,X0 )(2)x= fminunc(fun,X0 ,options);); 或或x=fminsearch(fun,X0 ,options)(3)x,fval= fminunc(.);); 或或x,fval= fminsearch(.)(4)x,fval,exitflag= fminunc(.);)

15、; 或或x,fval,exitflag= fminsearch(5)x,fval,exitflag,output= fminunc(.);); 或或x,fval,exitflag,output= fminsearch(.) 2、多元函数无约束优化问题、多元函数无约束优化问题标准型为:标准型为:min F(X)3 fminunc为中型优化算法的步长一维搜索提供了两种算法,由为中型优化算法的步长一维搜索提供了两种算法,由options中参中参数数LineSearchType控制:控制: LineSearchType=quadcubic(缺省值缺省值),混合的二次和三次多项式插值;,混合的二次和三次

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

17、使用中型算法2 fminunc为中型优化算法的搜索方向提供了为中型优化算法的搜索方向提供了4种算法,由种算法,由 options中的参中的参数数HessUpdate控制:控制: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

18、(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-10例例4 产销量的最佳安排产销量的最佳安排 某厂生产一种产品有甲、乙两个牌号,讨论在产销平某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大衡的情况下如何确定各自的产量,使总利润最大. 所谓产所谓产销平衡指工厂的产量等于市场上的销量销平衡指工厂的产量等于市

19、场上的销量.2、基本假设、基本假设(1)价格与销量成线性关系)价格与销量成线性关系利润既取决于销量和价格,也依赖于产量和成本。按照市场规律,甲的价格 p1会随其销量 x1的增长而降低,同时乙的销量 x2的增长也会使甲的价格有稍微的下降,可以简单地假设价格与销量成线性关系,即: p1 = b1 - a11 x1 - a12 x2 ,b1,a11,a12 0,且a11 a12;同理, p2 = b2 - a21 x1- a22 x2 ,b2,a21,a22 0,且a22 a21 .(2)成本与产量成负指数关系)成本与产量成负指数关系甲的成本随其产量的增长而降低,且有一个渐进值,可以假设为负指数关系

20、,即: 0,11111111crcerqx 同理, 0,22222222crcerqx 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 = ( b1

21、 - 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), z=fun(x) (3). 计算结果计算结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论