转换成小于零的约束例如
2000=
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
nonlcon就是非线性约束可以是函数可以是m文件,里面要有ce[],ceq[]
举个例子,写法:
function [ce,ceq]=myfunc(x)
ce[1]=x1+sin(x2);%表示x1+sin(x2)<=0的约束
ce[2]=x1-cos(x2);%表示x1-cos(x2)<=0的约束
ceq[1]=fun1;%表示fun1=0的约束
ceq[2]=fun2;%表示fun2=0的约束,这里fun1、fun2可以在其他M文件里提前写好。
%如果没有约束就直接ce[],ceq[]表示
求解的时候就直接
x = fmincon(@(x)myfun(x),x0,[],[],[],[],[],[],@(x) myfunc(x))%myfun(x)是提前写好的目标函数