非线性规划
Matlab 中非线性规划的数学模型写成以下形式
Matlab 中的命令是
X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)
FUN 是用 M 文件定义的函数 f
NONLCON 是用 M 文件定义的非线性向量函数C 、Ceq
为了不计算二阶导数矩阵及其逆阵,我们设法构造另一个矩阵H,用它来逼近二阶导数矩阵的逆阵,这一类方法也称拟牛顿法(Quasi-Newton Method)。
通常,我们取第一个H 为单位阵。
在 Matlab 工具箱中,用于求解无约束极值问题的函数有 fminunc 和 fminsearch
二次规划
若某非线性规划的目标函数为自变量 x 的二次函数,约束条件又全是线性的,就称
这种规划为二次规划。
Matlab 中二次规划的形式:
H 是实对称矩阵, b, f 是列向量, A 是相应维数的矩阵。
Matlab 中求解二次规划的命令是
[X,FVAL]= QUADPROG(H,f,A,b,Aeq,beq,LB,UB,X0,OPTIONS)
返回值 X 是决策向量 x 的值,返回值 FVAL 是目标函数在 x 处的值。
罚函数法
利用罚函数法,可将非线性规划问题的求解,转化为求解一系列无约束极值问题。
形式:
Matlab 中可以直接利用 max 、 min 和 sum 函数。
朝闻道