Matlab优化,初始目标函数评估失败

时间:2017-09-05 08:04:35

标签: matlab function optimization

我想通过Matlab fmincon函数解决优化问题。我将目标函数定义为:

function f = objfun(x,p1,p2)
x1=x(1:24);
y1=x(25:48);
z1=x(48:end);

f=-mean(x1*(p1)'+y1*(p2)')+mean(z1*(p1)')
end

p1p2是1x24个向量,在主文件中计算。我需要找到x1y1z1的最佳值,它们是1x24个向量(总共72个变量)。

当我运行主代码时,我收到有关目标函数的错误消息,然后是初始目标函数评估失败导致的fmincon

请问您如何解决问题?

1 个答案:

答案 0 :(得分:0)

考虑到x是1x72向量,我认为代码的第4行有一个拼写错误。

z1=x(48:end);

这将为您提供 1x25 向量,后一个乘法z1*(p1)'将无效,因为p1为1x24。

我想你的意思是:

z1=x(49:end);

这样你就得到了x的最后24个元素,并且乘法z1*(p1)'是可能的。