问题描述:
使用matlab的fmincon优化,一直提示变量“x”未定义,
使用matlab的fmincon函数进行优化,遇到以下问题:
%以下是建立的目标函数M文件
function f = CostObj( x ) % 目标函数
a=[1 3 5];
b=[2 4 6];
c=0*ones(1,3);
for i=1:3
c(i)=b(i)-a(i).*x(i);
end
f=sum(c);
end
%以下是在matlab主窗口中输入
x0=[2 2 2];
A=[1 2 3;2 5 9;2 7 1];
B=[11 28 19];
Aeq=[];
Beq=[];
[x fval]= fmincon(CostObj,x0,A,B,Aeq,Beq);
运行后就提示以下错误:
[x fval]= fmincon(CostObj,x0,A,B,Aeq,Beq);
Input argument "x" is undefined.
Error in ==> CostObj at 6
c(i)=b(i)-a(i).*log(x(i));
到底是什么原因没有搞清楚,折腾了一个下午了,郁闷,
按照白杨龙11的方法,还是错误,如下:
[x fval]= fmincon(@(x) CostObj,x0,A,B,Aeq,Beq);
Warning:Trust-region-reflective