用 Matlab 求解非线性规划
1
.无约束优化问题
min f (x)
,
其中向量
x
的 n 个分量
x
i
都是决策变量,称
f (x)
目标函数。
n
xR
用 Matlab 求解:先建立函数文件 mbhs.m,内容是
f (x)
的表达式;再回到
Matlab 命令区输入决策变量初值数据 x0,再命令[x,fmin]=fminunc(@mbhs,x0)
如
:
min (2x
1
2
3x
2
2
)
的最优解是
x (0,0)
T
.
用 Matlab 计算,函数文件为
xR
2
function f=mbhs(x)
f=2*x(1)^2+3*x(2)^2;
再输入初值 x0=[1;1]; 并执行上述命令,结果输出为 x =? fmin =? 略。
2
.约束优化问题
min f (x)
n
xR
s.t. g
i
(x) 0, (i 1,2,..., p),
h
i
(x) 0, (i 1,2,...,m),
L x U .
其中:向量
x
的 n 个分量
x
i
都是决策变量,称
f (x)
目标函数、
g
i
(x)
等式约束函数、
h
i
(x)
不等式约束函数、L 下界、U 上界。
用 Matlab 求解:先把模型写成适用于 Matlab 的标准形式
min f (x)
n
xR
s.t. Ax b,
Aeq x beq,
g(x) 0,
h(x) 0,
L x U .
约束条件中:把线性的式子提炼出来得前两个式子;后三个式子都是列向量。
g
1
(x)
(如
:
A
26
,b
21
, Aeq [],beq [], g(x)
)
g
p
(x)
再建立两个函数文件:目标函数 mbhs.m;约束函数 yshs.m