1. 非线性规划模型
与线性规划不同,非线性规划的目标函数或约束条件至少有一个非线性函数,我们可以概括为如下形式:
满足约束条件的x的取值范围称为可行域。我们知道线性规划的可行解如果存在,则其最优解一定在可行域的边界达到(可行域的顶点达到),但非线性规划与线性规划不同,非线性规划的最优解如果存在,它可能在可行域的任意一点达到。非线性规划一般分为两大类:
(1)有约束的非线性规划。
(2)无约束的非线性规划。没有约束条件,只求目标函数的最值,也即
2. 无约束非线性规划的解法
高等数学中讨论了求二元函数极值的方法,此方法可以推广到无约束非线性规划问题中。
例1 求多元函数f (x ,y)=(6x -x2)(4y -y2)的极值。
解 解方程组
求得驻点(0, 0),(0, 4),(3, 2),(6, 0),(6, 4)。
求二阶偏导数
得Hessian矩阵
根据Hessian矩阵判断多元函数极值的方法:当A正定时,函数f(x,y)取得极小值;当A负定时,函数f(x,y)取得极大值;A不定时,函数f(x,y)未取得极值;当A半正定或半负定时,函数f(x,y)不能判断是否取得极值,可用其他方法判断。所以,点(0, 0),(0, 4),(3, 2),(6, 0),(6, 4)不是极值点;(3,2) 为极大值点,对应的极大值为f(3,2)=36。(www.xing528.com)
MATLAB程序如下:
3. 无约束非线性规划的数值解法
对于无约束非线性规划问题min()n f x(x∈R),MATLAB中函数fminunc和fminsearch也可以求解,其基本命令为
[x, fval]=fminunc(fun, x0, options)
其中:返回值x是所求得的极小值点;返回值fval是函数的极小值。fun是一个M函数,当fun只有一个返回值时,它的返回值是函数f(x);当fun有两个返回值时,它的第二个返回值是f(x)的梯度向量;当fun有三个返回值时,它的第三个返回值是f(x)的二阶导数Hessian阵。x0是x的初始值;options是优化参数,可以使用默认参数。
这个函数只能求给定的初始值x0附近的一个极小值点。
例2 求多元函数f (x ,y )=x 3-y3+2x2+2y2-8x的极值。
解 用函数fminunc和fminsearch来求数值解。
MATLAB程序如下:
求得(1.097 2, 0)为极小值点,对应的极小值为-5.049 0,(-2.430 5,1.333 3)为极大值点,对应的极小值为18.0861。
注:fminsearch只能求得给定的初始值附近的一个极值点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。