您的位置首页百科问答

matlab中fmincon函数的用法。

matlab中fmincon函数的用法。

的有关信息介绍如下:

问题补充说明:我建立myfunction.m文件function f=myfuncion(x)M=[2,-1;-1,2];B=[3;-3];f=1/2*x'*M*x+B'*x;matlab窗口输入 x0=[0;0];>> A=[];>> B=[];>> Aeq=[];>> Beq=[];>> lb=[-2;-2];>> ub=[2;2];>> x = fmincon('myfunction',x0,[],[],[],[],lb,ub)结现:Warning: Trust-region-reflective method does not currently solve this type of problem, using active-set (line search) instead.In fmincon at 422??? Error using ==> fmincon at 504FMINCON cannot continue because user supplied objective function failed with the following error:Undefined function or method 'myfunction' for input arguments of type 'double'.我用 options = optimset('Algorithm','active-set');>> x = fmincon('myfunction',x0,[],[],[],[],lb,ub)请侠指教谢谢

fminco流器另轻断变接布企真n函数在MATLAB中用于求解非线性多元函数起激屋较最小值,应用十分广泛。使用该函数的关键是定义目标函数,氧以及在约束条件中有非线性约束也助百剧时准确定义。具体介绍如下:

一、求解问题的标准型为:

minF(X)

s.t

AX<=b

AeqX=beq

G(x)<=0

Ceq(X)=0

VLB<=X<=VUB

 

其中X为n维变元向量,G反今非搞(x)与Ceq(X)均为非线性函数组成的向量,其他变量的含义与线性规划、二次规划中相同。

二、用Matlab求解上述问题,基本步骤分为三步:

1.首先建立M文件fun.m定义目标函数F(X):

functionf=fun(X);

f=F(X)

 

2.若约束条件中刘景级剂坚空加下发者有非线性约束:G(x)<=什磁会呼车刚环态让底脱0或Ceq(x)=0,则建立紧治增M文件nonlcon协鲜元每.m定义函数G(X)和Ceq(X);

functi理油必几on[G,Ceq]=nonlcon(X)

G=...

Ceq=...

 

3.建立主程序,非线性规划求解的函数时fmincon,命令的基本格式如下: 

matlab中fmincon函数的用法。

注意:

(1)fmincon函数提供了大型优化算法和中型优化算法。默认时,若在fun函数中提供盐洋朝办革史了梯度(options参数的GradObj设置为'on'),并且只有上下界存在或只有混等式约束,fmincon函数将选择大型算法,当既有等式约束又有梯度约束时,使用中型算法。

(2)fmincon函数的中型算法使用的是序列二次规划法。在每一步迭代中求解二次规划子问题,并用BFGS法更新拉格朗日Hessian矩阵。

(3)fmincon函数可能会给船缺取效草出局部最优解,这与初值形龙绿水好叫令满X0的选取有关。