非线性规划问题
一、非线性规划问题数学模型:
总的公式:min f(x),
约束条件:Ax<=b;
Aeqx=beq;
c(x)<=0;
ceq(x)=0;
lb<=x<=ub;
Matlab中计算非线性规划问题的命令函数:[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
其中,x0为x的初始值,fun为f(x)的m文件,nonlcon是定义非线性向量函数,c(x),ceq(x);options定义了优化参数。
二、无约束问题Matlab解法
1.求多元函数的解法
1)求出各个未知数的偏导数为0的解,求出驻点。
2)再求出Hessian矩阵(海瑟矩阵,即将未知数的二元偏导组合写成矩阵的形式,排列情况如图)
3)判断在驻点处Hessian阵是正定(极小值),负定(极大值),不定(不是极值)。
2.无约束问题的Matlab解法
1)定义变量:syms
2)求偏导df=jacobian函数
3)求驻点solve(df)
4)求极小值的命令函数为fminunc(fun,x09,options)
三、约束极值问题
Matlab中的数学模型为
Min 1/2xT*Hx+ftx
约束条件:Ax<=b;
Aeq*x=beq
Lb<=x<=ub
式子中,H为实对称矩阵
在matlab中的语句命令为:[x,fval]=quadprog(H,f,A,b,Aeq,beq,lb,ub,x0,options);
[x,fval]=fminbnd(fun,x1,x2,options);求单变量非线性函数在区间上的极小值。其中,x1,x2是单变量的区间端点。
fseminf函数