Page 155 - 数学建模算法与应用
P. 155
第六章 非线性规划的研究
其中 f (x) 是标量函数, A, B, Aeq, Beq 是相应维数的矩阵和向量,
C(x),Ceq(x) 是非线性向量函数。
Matlab 中的命令是 X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,
NONLCON,OPTIONS)
它的返回值是向量 x ,其中 FUN 是用 M 文件定义的函数 f (x);X0 是 x 的
初始值;A,B,Aeq,Beq 定义了线性约束 A* X ≤ B, Aeq * X = Beq ,如果没
有线性约束,则 A=[],B=[],Aeq=[],Beq=[];LB 和 UB 是变量 x 的下界和上界,
如果上界和下界没有约束,则 LB=[],UB=[],如果 x 无下界,则 LB 的各分量
都为 -inf,如果 x 无上界,则 UB 各分量都为 inf;NONLCON 是用 M 文件定义
的非线性向量函数 C(x),Ceq(x) ;OPTIONS 定义了优化参数,可以使用 Matlab
缺省的参数设置。
例 求下列非线性规划
解 1. 编写 M 文件 fun1.m 定义目标函数
function f=fun1(x);
f=sum(x.^2)+8;
2. 编写 M 文件 fun2.m 定义非线性约束条件
function [g,h]=fun2(x);
g=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20]; % 非线性不等式约束
145

