我目前正在尝试在Matlab中使用fmincon。
我可以使它正常运行,但是当我处理不满足条件的矩阵元素时,这就会失败。
如下
ub = 1.1;
lb = -1.2;
aut = -0.25;
h = @(aut)eQ_Optim(aut);
u = fmincon(h,aut, [], [], [], [], lb, ub)
我正在使用的功能如下
function [Maxim] = eQ_Optim(aut);
Data = [-0.23183483,-0.003274012;
-0.289945477,0.000282334;
-0.483591973,0.006588649;
-0.257735378,0.000887691;
-0.286463622,-0.003235662;
-0.453939127,0.004358216;
-0.196363243,0.004186609;
-0.209783591,0.001715187];
Data(Data(:,1)<aut,2)=0
MDOnx=Data(:,2)+1;
MD_Cumx=cumprod(MDOnx,1);
Maxim = MD_Cumx(end)*-1
end
我正在尝试让fmincon优化变量'aut',以使其最大化右列(Data(:,2))的累加总和。
供参考,我收到的输出是
起始点是满足约束的局部最小值。
完成优化是因为在开始时目标函数不变 在可行的方向上达到最佳公差的默认值,并且 约束满足约束公差的默认值之内。
u = -0.250000000000000
正如您所看到的,这只是我最初的猜测而已。
我希望一切都清楚。我已经尽可能简化了一切。这可能吗?