求解非线性问题:
min z = f(x)
s.t. c(x)≤0,
ceqx=0,
Ax≤b,
Aeqx=beq,
lb≤x≤ub.
【fmincon函数】
[x, fval, exitflag, output, lambda, grad, hessian] = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options, P1, P2, …)
其中,x, b, beq, lb,和ub为线性不等式约束的上、下界向量, A 和 Aeq 为线性不等式约束和等式约束的系数矩阵矩阵,fun为目标函数,nonlcon为非线性约束函数。
函数f的定义:
function[c,ceq] = mycon(x)
c= … % 计算x处的非线性不等式。
ceq= … % 计算x处的非线性等式。
非线性约束条件的定义:
function[c,ceq,GC,GCeq] = mycon(x)
c = … % 解x处的非线性不等式。
ceq = … % 解x处的非线性等式。
if nargout > 2 % 被调用的nonlcon函数,要求有4个输出变量。
GC = … % 不等式的梯度。
GCeq