matlab函数的极值与优化

上传人:tia****nde 文档编号:68923308 上传时间:2019-01-11 格式:PPT 页数:30 大小:810.32KB
返回 下载 相关 举报
matlab函数的极值与优化_第1页
第1页 / 共30页
matlab函数的极值与优化_第2页
第2页 / 共30页
matlab函数的极值与优化_第3页
第3页 / 共30页
matlab函数的极值与优化_第4页
第4页 / 共30页
matlab函数的极值与优化_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《matlab函数的极值与优化》由会员分享,可在线阅读,更多相关《matlab函数的极值与优化(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、2)、函数名:f1=f1 自变量: (x1,x2),(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为一个二维向量。 此时的输入与调用方式与数量时不

3、同。,1、输入:,2、调用: 此时自变量为向量,调用格式为:f2(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、

4、常用格式x,fval=fminbnd(f,a,b). 结果中,fval为最小值,x为取到最小值的点。 例: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)、最大值问题需转化为最

5、小值问题。,二、多元函数极值的求法,(1)、此函数使用单纯型法搜索最值; (2)、使用格式: x,fval= fminsearch(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、

6、调用fminsearch函数求最值. 在命令窗口中,输入: x0=1,2; x,fval=fminsearch(f1,x0) 3、输出结果为: X = 0.5000 0.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,第三节 无约束最优化问题

7、,求解无约束最优化问题的的基本思想,* Matlab优化工具箱简介,标准形式:,一、求解无约束最优化问题的基本思想,求解的基本思想 ( 以二元函数为例 ),5,3,1,连续可微,多局部极小,唯一极小 (全局极小),搜索过程,最优点 (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,

8、0.9997,0.9998,1E-8,二、用Matlab解无约束优化问题(举例说明),其中(3)、(4)、(5)的等式右边可选用(1)或(2)的等式右边。 函数fminbnd的算法基于黄金分割法和二次插值法,它要求目标函数必须是连续函数,并可能只给出局部最优解。,常用格式如下: (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(.),解 在matla

9、b命令窗口中输入: 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, 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 =

10、 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(.); 或x,fval,exitflag= fminsearch (5)x,fval,exitflag,ou

11、tput= fminunc(.); 或x,fval,exitflag,output= fminsearch(.),2、多元函数无约束优化问题,标准型为:min F(X),3 fminunc为中型优化算法的步长一维搜索提供了两种算法,由options中参数LineSearchType控制: LineSearchType=quadcubic(缺省值),混合的二次和三次多项式插值; LineSearchType=cubicpoly,三次多项式插,使用fminunc和 fminsearch可能会得到局部最优解.,说明:,fminsearch是用单纯形法寻优. fminunc的算法见以下几点说明:,1

12、fminunc为无约束优化提供了大型优化和中型优化算法。由options中 的参数LargeScale控制: LargeScale=on(默认值),使用大型算法 LargeScale=off(默认值),使用中型算法,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、编写

13、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-10,例4 产销量的最佳安排 某厂生产一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总利润最大. 所谓产销平衡指工厂的产量等于市场上的销量.,2、基本假设,(1)价格与销量成线性关系,(2)成本与产量成负指数关系,

14、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 - a11x1 ) x1 + ( b2 - a22x2 ) x2 的极值. 显然其解为x1 = b1/2a11 = 50, x2 = b2/2a22 = 70, 我们把它作为原问题的初始值.,总利润为: z(x1,x

15、2)=(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). 计算结果: 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,温室正上方是楼房的窗台. 清洁工打扫窗台周围,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号