1.利用fmincon函数求解有约束的NLP问题
如果MATLAB中的非线性规划问题可以写成如下形式:
其中f(x)是标量函数,A,B,A’,B’是相应维数的矩阵和向量,C(x)和C’(x)是非线性向量函数。
x=fmincon(fun,x~0~,a,b,a',b',min,max,nonlcon,options)
它是返回值是向量x,fun是m文件定义的函数 f(x),a,b,a’,b’是线性约束,如果没有则令a,b,a’,b’=[];min和max是x的下界和上界,nonlcon是m文件的约束函数,options定义优化参数。
求解下列非线性规划问题:
min f(x)=x12+x2+8
x12-x2>=0
-x1-x22+2=0
x1,x2>=0
fun1.m:
function f=fun1(x)
f=x(1)^2+x(2)^2&