用MATLAB分析最小值与最大值的问题.docx
- 文档编号:402034
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:16
- 大小:48.73KB
用MATLAB分析最小值与最大值的问题.docx
《用MATLAB分析最小值与最大值的问题.docx》由会员分享,可在线阅读,更多相关《用MATLAB分析最小值与最大值的问题.docx(16页珍藏版)》请在冰豆网上搜索。
用MATLAB分析最小值与最大值的问题
毕业论文
题目:
用MATLAB分析最小值和最大值的问题
姓名:
木扎帕尔·木合塔尔
专业:
数学与应用数学
班级:
2003-6班
院(系):
数理信息学院
指导老师:
阿不力米提
新疆师范大学
用MATLAB分析最小值和最大值的问题
新疆师范大学数理信息学院数学系03-6班
作者姓名:
木扎帕尔.木合塔尔
指导老师:
阿不力米提
2008年5月
用MATLAB分析最小值和最大值的问题
木扎帕尔.木合塔尔
新疆师范大学数理信息学院03-6班
摘要:
咱们一般在学习和工作中碰到一些函数,并需要其最小值与最大值,本文讨论一些复杂的函数的最小值与最大值,用MATLAB来求解及分析.
关键词:
最小值;最大值;MATLAB.
用MATLAB分析最小值和最大值的问题
咱们在学习和工作中需要求解一些函数的最小值和最大值,并用最小值和最大值来分析日常生活中咱们碰到的一些问题.一般的问题咱们能直接计算出来,但对有一些问题来讲求救它的最小值和最大值很复杂,MATLAB具有壮大的计算功能,以下咱们要讨论的主要问题就是用MATLAB能计算出那些复杂的问题.
先看以下例子
[1]用钢板制造容积为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)︱0 这个问题就是求函数S在区域D内的最小值. 解方程组 S/ x=y+2V(-1/ )=y-2V/ =0, S/ y=x+2V(-1/ )=x-2V/ =0. 在区域D内解得唯一稳定点( ).求二阶扁导数 S/ =4V/ S/ x y=1, S/ =4V/ . - S/ . S/ =1-16 / . 在稳定点 =-3<0,且A=2>0,从而,稳定点 是S的极小点.因此,函数S在点 取最小值.当x= y= 时, z=V/ = /2, 即无盖长方形水箱x=y= z= /2,所需钢板最省. [2]在已知周长为2p的一切三角形中,求出面积为最大的三角形. 解: 设三角形的三个边长是x,y,z..面积是 .有海伦公式,有 = . 已知x+y+z=2p或z=2p-x-y将它代入上面公式当中,有 = . 因为三角形的每边长是正数而且小与半周长p,所以 的概念域 D={(x,y)︱0 已知 的稳定点与 /p的稳定点相同.为计算简便,求 = /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,y)=-(p-x)(x+y-p)+(p-x)(p-y)=(p-x)(2p-2y-x)=0. 在区域D内有唯一稳定点(2p/3,2p/3).求二阶扁导数 (x,y)=-2(p-y), (x,y)=2(x+y)-3p, (x,y)=-2(p-x). - (x,y) (x,y) =4 +4xy+4 -8px-8py+5 . 在稳定点(2p/3,2p/3), =- /3<0,A=-2p/3<0.从而稳定点(2p/3,2p/3)是函数 即 的极大点.由题意, 在稳定点(2p/3,2p/3)必取到最大值.当x=2p,y=2p/3时,z=2p-x-y=2p/3,即三角形三边长的和为定数时,等边三角形的面积最大. 丛林失火了! 消防站接到报警后派多少消防队员前去救火呢? 派的队员越多,丛林的损失越小,可是救援的开支会越大,所以需要综合考虑丛林损失费和救援费与消防队员人数之间的关系,以总费用最小来决定派出队员的数量. 问题分析损失费通常正比于丛林烧毁的面积,而烧毁面积于失火,灭火的时间有关,灭火时间又与灭火时间长短有关.记失火时刻为t=0,开始救火时刻为t= 灭火时刻为t= .设在时刻t丛林烧毁面积为B(t),则造成损失的丛林烧毁面积为B( ).建模要对函数B(t)的形式作出合理的简单假设. 模型假设需要对烧毁丛林的损失费,救援费及火势蔓延程度 B/ d的形式作出假设. 1.损失费与丛林烧毁面积B( )成正比,比例系数 为烧毁单位面积的损失费. 2.从失火到开始救火这段时间(0≤t≤ )内,火势蔓延程度 B/ d与时间t成正比,比例系数 称火势蔓延速度. 3.派出消防队员x名,开始救火以后(t≥ )火势蔓延速度降为 - 其中 可视为每一个队员的平均灭火速度.显然应有 < . 4.每一个消防队员单位时间的费用为 于是每一个队员的救火费用是 ( - );每一个队员的依次性支出是 . (公式里的C(x)是这个优化模型的目标函数,把它输入MATLAB程序可以取得它的最终解.) 无约束最优化问题在实际应用中也比较常见,如工程中常见的参数反演问题。 另外,许多有约束最优化问题可以转化为无约束最优化问题进行求解。 求解无约束最优化问题的方式主要有两类,即直接搜索法(Searchmethod)和梯度法(Gradientmethod)。 直接搜索法适用于目标函数高度非线性,没有导数或导数很难计算的情况,由于实际工程中很多问题都是非线性的,直接搜索法不失为一种有效的解决办法。 常常利用的直接搜索法为单纯形法,另外还有Hooke-Jeeves搜索法、Pavell共轭方向法等,其缺点是收敛速度慢。 在函数的导数可求的情况下,梯度法是一种更优的方式,该法利用函数的梯度(一阶导数)和Hessian矩阵(二阶导数)构造算法,可以取得更快的收敛速度。 函数f(x)的负梯度方向-f(x)即反映了函数的最大下降方向。 当搜索方向取为负梯度方向时称为最速下降法。 当需要最小化的函数有一狭长的谷形值域时,该法的效率很低,如Rosenbrock函数 f(x)=100(x1-x22)2+(1-x1)2 它的最小值解为x=[1,1],最小值为f(x)=0。 这种类型的函数又称为香蕉函数。 常见的梯度法有最速下降法、Newton法、Marquart法、共轭梯度法和拟牛顿法(Quasi-Newtonmethod)等。 在所有这些方式中,用得最多的是拟牛顿法,这些方式在每次迭代进程中成立曲率信息,组成下式得二次模型问题: 其中,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,grad]=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,...)将问题参数p一、p2等直接输给目标函数fun,将options参数设置为空矩阵,作为options参数的缺省值。 [x,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]=fminunc(...)将解x处目标函数的Hessian矩阵信息返回到hessian参数中。 注意: 1.对于求解平方和的问题,fminunc函数不是最好的选择,用lsqnonlin函数效果更佳。 2.利用大型方式时,必需通过将设置为'on'来提供梯度信息,不然将给出警告信息。 算法: 大型优化算法若用户在fun函数中提供梯度信息,则缺省时函数将选择大型优化算法,该算法是基于内部映射牛顿法的子空间置信域法,理论描述可参见文献[8],[9]。 计算中的每一次迭代涉及到用PCG法求解大型线性系统取得的近似解。 中型优化算法此时fminunc函数的参数设置为'off'。 该算法采用的是基于二次和三次混合插值一维搜索法的BFGS拟牛顿法。 该法通过BFGS公式来更新Hessian矩阵。 通过将HessUpdate参数设置为'dfp',可以用DFP公式来求得Hessian矩阵逆的近似。 通过将HessUpdate参数设置为'steepdesc',可以用最速下降法来更新Hessian矩阵。 但一般不建议利用最速下降法。 缺省时的一维搜索算法,当设置为'quadcubic'时,将采用二次和三次混合插值法。 将设置为'cubicpoly'时,将采用三次插值法。 第二种方式需要的目标函数计算次数更少,但梯度的计算次数更多。 这样,若是提供了梯度信息,或能较容易地算得,则三次插值法是更佳的选择。 局限性: 1. 目标函数必需是持续的。 fminunc函数有时会给出局部最优解。 2. fminunc函数只对实数进行优化,即x必需为实数,而且f(x)必需返回实数。 当x为复数时,必需将它分解为实部和虚部。 3. 在利用大型算法时,用户必需在fun函数中提供梯度(options参数中GradObj属性必需设置为'on')。 4. 目前,若在fun函数中提供了解析梯度,则options参数DerivativeCheck不能用于大型算法以比较解析梯度和有限差分梯度。 通过将options参数的MaxIter属性设置为0来用中型方式查对导数。 然后从头用大型方式求解问题。 功能: 求解多变量无约束函数的最小值。 语法: x=fminsearch(fun,x0) x=fminsearch(fun,x0,options) x=fminsearch(fun,x0,options,P1,P2,...) [x,fval]=fminsearch(...) [x,fval,exitflag]=fminsearch(...) [x,fval,exitflag,output]=fminsearch(...) 描述: fminsearch求解多变量无约束函数的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 分析 最小值 最大值 问题