2017-02-10 81 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, ...)