用matlab分析最小值和最大值的问题

上传人:mg****85 文档编号:34591469 上传时间:2018-02-26 格式:DOC 页数:14 大小:166.50KB
返回 下载 相关 举报
用matlab分析最小值和最大值的问题_第1页
第1页 / 共14页
用matlab分析最小值和最大值的问题_第2页
第2页 / 共14页
用matlab分析最小值和最大值的问题_第3页
第3页 / 共14页
用matlab分析最小值和最大值的问题_第4页
第4页 / 共14页
用matlab分析最小值和最大值的问题_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《用matlab分析最小值和最大值的问题》由会员分享,可在线阅读,更多相关《用matlab分析最小值和最大值的问题(14页珍藏版)》请在金锄头文库上搜索。

1、毕 业 论 文题 目: 用 MATLAB 分析最小值和最大值的问题 姓 名: 木扎帕尔 木合塔尔 专 业: 数学与应用数学班 级: 2003-6 班 院 (系): 数理信息学院 指导老师: 阿不力米提新 疆 师 范 大 学新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文1用 MATLAB 分析最小值和最大值的问题新疆师范大学数理信息学院数学系 03-6 班作者姓名:木扎帕尔.木合塔尔指导老师:阿不力米提2008 年 5 月新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文2用 MATLAB 分析最小值和最大值的问题木扎帕尔.木合塔尔新疆师范大学数理信息学院 03-

2、6 班摘要:我们一般在学习和工作中遇到一些函数,并需要其最小值与最大值,本文讨论一些复杂的函数的最小值与最大值,用 MATLAB 来求解及分析 .关键词:最小值;最大值;MATLAB.新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文3用 MATLAB 分析最小值和最大值的问题我们在学习和工作中需要求解一些函数的最小值和最大值,并用最小值和最大值来分析日常生活中我们遇到的一些问题.一般的问题我们能直接计算出来 ,但对有一些问题来说求救它的最小值和最大值很复杂,MATLAB 具有强大的计算功能,以下我们要讨论的主要问题就是用 MATLAB 能计算出那些复杂的问题 .先看以下例子1用

3、钢板制造容积为 V 的无盖长方形水箱,问怎样选择水箱的长,宽,高才最省钢板.解:设水箱长,宽,高分别是 x,y,z.已知 xyz=V,从而 z=V/xy.水箱表面的面积S=xy+V/xy(2x+2y)=xy+2V(1/x+1/y),S 的定义域 D=(x,y)00,从而,稳定点 是 S 的极,3V)2,(3V小点.因此,函数 S 在点 取最小值.当 x= ,y= 时,)2(332新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文4z=V/ = /2,32V3即无盖长方形水箱 x=y= ,z= /2,所需钢板最省.32V2在已知周长为 2p 的一切三角形中,求出面积为最大的三角形.

4、解:设三角形的三个边长是 x,y,z.面积是 .有海伦公式,有= .)()(zpyxp已知 x+y+z=2p 或 z=2p-x-y 将它代入上面公式之中,有= .)(yx因为三角形的每边长是正数而且小与半周长 p,所以 的定义域D=(x,y)0p.已知 的稳定点与 /p 的稳定点相同.为计算简便,求2= /p=(p-x)(p-y)(x+y-p)的稳定点.解方程组(x,y)=-(p-y)(x+y-p)+(p-x)(p-y)=(p-y)(2p-2x-y)=0.x(x,y)=-(p-x)(x+y-p)+(p-x)(p-y)=(p-x)(2p-2y-x)=0.y在区域 D 内有唯一稳定点(2p/3,2

5、p/3).求二阶扁导数(x,y)=-2(p-y), (x,y)=2(x+y)-3p,x xy(x,y)=-2(p-x).y- (x,y) (x,y)2),(xxy=4 +4xy+4 -8px-8py+5 .y2p在稳定点(2p/3,2p/3), =- /30,A=-2p/30.从而稳定点(2p/3,2p/3)是函数 ,即 的极大点.由题意, 在稳定点(2p/3,2p/3)必取到最大值.当 x=2新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文5p,y=2p/3 时,z=2p-x-y=2p/3,即三角形三边长的和为定数时,等边三角形的面积最大.森林失火了!消防站接到报警后派多少消

6、防队员前去救火呢?派的队员越多,森林的损失越小,但是救援的开支会越大,所以需要综合考虑森林损失费和救援费与消防队员人数之间的关系,以总费用最小来决定派出队员的数目.问题分析 损失费通常正比于森林烧毁的面积,而烧毁面积于失火,灭火的时间有关,灭火时间又与灭火时间长短有关.记失火时刻为 t=0 ,开始救火时刻为 t= ,灭火时刻为 t= .设在时刻 t 森林烧毁面积为 B(t),则造成损失的森林1t2t烧毁面积为 B( ).建模要对函数 B(t)的形式作出合理的简单假设.2t模型假设 需要对烧毁森林的损失费,救援费及火势蔓延程度 B/ d 的形式作出假设.1. 损失费与森林烧毁面积 B( )成正比

7、,比例系数 为烧毁单位面积的2t 1c损失费.2. 从失火到开始救火这段时间(0t )内,火势蔓延程度 B/ d 与1t时间 t 成正比,比例系数 称火势蔓延速度.3. 派出消防队员 x 名,开始救火以后(t )火势蔓延速度降为 - ,1t x其中 可视为每个队员的平均灭火速度.显然应有 .4. 每个消防队员单位时间的费用为 ,于是每个队员的救火费用是 (2c2c- );每个队员的依次性支出是 .2t1 3xctxtctxC3121221)()( (公式里的 C(x)是这个优化模型的目标函数,把它输入 MATLAB 程序可以得到它的最终解.)无约束最优化问题在实际应用中也比较常见,如工程中常见

8、的参数反演问题。另外,许多有约束最优化问题可以转化为无约束最优化问题进行求解。求解无约束最优化问题的方法主要有两类,即直接搜索法(Search method)和梯度法(Gradient method)。新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文6直接搜索法适用于目标函数高度非线性,没有导数或导数很难计算的情况,由于实际工程中很多问题都是非线性的,直接搜索法不失为一种有效的解决办法。常用的直接搜索法为单纯形法,此外还有 Hooke-Jeeves 搜索法、Pavell共轭方向法等,其缺点是收敛速度慢。在函数的导数可求的情况下,梯度法是一种更优的方法,该法利用函数的梯度(一阶导

9、数)和 Hessian 矩阵(二阶导数)构造算法,可以获得更快的收敛速度。函数 f(x)的负梯度方向-f(x)即反映了函数的最大下降方向。当搜索方向取为负梯度方向时称为最速下降法。当需要最小化的函数有一狭长的谷形值域时,该法的效率很低,如 Rosenbrock 函数f(x)=100(x1-x22)2+(1-x1)2它的最小值解为 x=1,1,最小值为 f(x)=0。这种类型的函数又称为香蕉函数。常见的梯度法有最速下降法、Newton 法、Marquart 法、共轭梯度法和拟牛顿法(Quasi-Newton method)等。在所有这些方法中,用得最多的是拟牛顿法,这些方法在每次迭代过程中建立曲

10、率信息,构成下式得二次模型问题:其中,Hessian 矩阵 H 为一正定对称矩阵,c 为常数向量,b 为常数。对 x求偏导数可以获得问题的最优解相关函数介绍fminunc 函数 功能:求多变量无约束函数的最小值。语法格式:x = fminunc(fun,x0)x = fminunc(fun,x0,options)x = fminunc(fun,x0,options,P1,P2,.)x,fval = fminunc(.)x,fval,exitflag = fminunc(.)x,fval,exitflag,output = fminunc(.)x,fval,exitflag,output,gra

11、d = fminunc(.)x,fval,exitflag,output,grad,hessian = fminunc(.)描述:fminunc 给定初值,求多变量标量函数的最小值。常用于无约束非线性最优化问题。x = fminunc(fun,x0)给定初值 x0,求 fun 函数的局部极小点 x。x0 可以是标量、向量或矩阵。x = fminunc(fun,x0,options)用 options 参数中指定的优化参数进行最小化。x = fminunc(fun,x0,options,P1,P2,.)将问题参数 p1、p2等直接输给目标函数 fun,将 options 参数设置为空矩阵,作为

12、options 参数的缺省值。新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文7x,fval = fminunc(.)将解 x 处目标函数的值返回到 fval参数中。x,fval,exitflag = fminunc(.)返回 exitflag 值,描述函数的输出条件。x,fval,exitflag,output = fminunc(.)返回包含优化信息的结构输出。x,fval,exitflag,output,grad = fminunc(.)将解 x 处 fun 函数的梯度值返回到 grad 参数中。x,fval,exitflag,output,grad,hessian =

13、fminunc(.)将解 x 处目标函数的 Hessian 矩阵信息返回到 hessian 参数中。注意:1对于求解平方和的问题,fminunc 函数不是最好的选择,用lsqnonlin 函数效果更佳。2使用大型方法时,必须通过将 options.GradObj 设置为on来提供梯度信息,否则将给出警告信息。算法:大型优化算法 若用户在 fun 函数中提供梯度信息,则缺省时函数将选择大型优化算法,该算法是基于内部映射牛顿法的子空间置信域法,理论描述可参见文献8,9。计算中的每一次迭代涉及到用 PCG 法求解大型线性系统得到的近似解。中型优化算法 此时 fminunc 函数的参数 options

14、.LargeScale设置为off。该算法采用的是基于二次和三次混合插值一维搜索法的 BFGS 拟牛顿法。该法通过 BFGS 公式来更新 Hessian 矩阵。通过将 HessUpdate 参数设置为dfp,可以用 DFP 公式来求得 Hessian矩阵逆的近似。通过将 HessUpdate 参数设置为steepdesc,可以用最速下降法来更新 Hessian 矩阵。但一般不建议使用最速下降法。缺省时的一维搜索算法,当 options.LineSearchType 设置为quadcubic时,将采用二次和三次混合插值法。将 options.LineSearchType 设置为cubicpoly

15、时,将采用三次插值法。第二种方法需要的目标函数计算次数更少,但梯度的计算次数更多。这样,如果提供了梯度信息,或者能较容易地算得,则三次插值法是更佳的选择。局限性:1 目标函数必须是连续的。fminunc 函数有时会给出局部最优解。2 fminunc 函数只对实数进行优化,即 x 必须为实数,而且f(x)必须返回实数。当 x 为复数时,必须将它分解为实部和虚部。3 在使用大型算法时,用户必须在 fun 函数中提供梯度(options 参数中 GradObj 属性必须设置为on)。4 目前,若在 fun 函数中提供了解析梯度,则 options 参数DerivativeCheck 不能用于大型算法以比较解析梯度和有限差分梯度新疆师范大学数理信息学院 2008 届数学与应用数学专业毕业论文8。通过将 options 参数的 MaxIter 属性设置为 0 来用中型方法核对导数。然后重新用大型方法求解问题。功能:求解多变量无约束函数的最小值。语法:x = fminsearch(fun,x0)x = fminsearch(fun,x0,options)x = fminsearch(fun,x0,options,P1,P2,.

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

当前位置:首页 > 生活休闲 > 科普知识

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