2017-02-10 28 views
-1

如何使用“fsolve”优化以下功能。它仅以矢量形式输入参数,但我必须以矩阵的形式将输入参数传递给下面的函数。如何使用“fsolve”来优化目标函数?

我在使用优化工具箱

错误优化运行,提示以下错误。内矩阵尺寸必须一致。

function f = object(w) 
k=10; 
B=20; 
f = sum ((w(1,:)/(w(2,:).^w(3,:)*k)+((w(3,:)-1)*w(4,:)/B*w(3,:)))); 
end 

回答

0

你在你的问题说明对外部环境非常简短但是从你的功能,它看起来像功能可能期望大小4 x Nw说法。我猜对了吗?如果是这样,请尝试

w_initial = rand(4*N,1); % resonable initialization. maybe random? maybe zeros? 
fsolve(@(w) object(reshape(w,4,N)), w_initial, ...)