关于MATLAB的问题

程序:首先建立目标函数文件ff8.m文件: function f=ff8(x)
f=exp(x(1))*(6*x(1)^2+3*x(2)^2+2*x(1)*x(2)+4*x(2)+1); 再建立非线性的约束条件文件:ff8g.m function [c,g]=ff8g(x)
c(1)=x(1)*x(2)-x(1)-x(2)+1; c(2)=-2*x(1)*x(2)-5;
g=[];
然后在工作空间键入程序: x0=[1,1];
nonlcon=@ff8g
[x, fval] =fmincon(@ff8,x0,[],[],[],[],[],[], nonlcon)
这个程序里面的[x, fval] =fmincon(@ff8,x0,[],[],[],[],[],[], nonlcon)括号中的6个[]是什么意思呀

函数fmincon的一般调用格式为:

x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

其中fun为目标函数,x0为初值;A、b用以表示线性不等式约束,Aeq、beq用以表示线性等式约束,lb、ub表示优化变量的上下限,nonlcon表示非线性约束,options为求解选项。

 

对于你的这个例子来说,只有非线性约束,所以A、b、Aeq、beq、lb、ub这六个参数照理说不需要提供,但按照标准的调用格式,每个参数在输入参数表中都处于特定位置,所以,虽然这些参数用不上,也需要提供占位符。那6个[]就是占位符。

温馨提示:答案为网友推荐,仅供参考