1

解決這個約束優化我想要做以下約束優化問題MatLab中:MATLAB:如何在Matlab

假設我們要最大化的目標函數f(x,T)= X - T,S.T. x處於[-1/t,1/t]。 X是我們的選擇變量,t是給定的參數。假設X處於真實狀態,而T處於Real ++中。由於f(。)是x中的新月,且t> 0,所以對於給定的t,解是x *(t)= 1/t,這是顯而易見的。但我怎麼能在Matlab中獲得這個?所以我可以繪製t對x *(t)。

我今年開始編程,然後我很抱歉,如果我正在尋找的代碼太簡單了。我試圖自己做,但我不能。

非常感謝你提前。

+0

類似的問題可以用不同的方式處理。如果你想使用官方的Matlab工具箱,你可以看看:https://www.mathworks.com/products/optimization.html。這可能是最簡單的解決方案。 或者,您可以使用csminwel.m(http://sims.princeton.edu/yftp/optimize/)的優化函數爲自己建立問題和約束。從編程的角度來看,它更復雜,因爲它通常要求你轉換感興趣的參數,以便它們的支持是無限的。 – merch

回答

1

如果您有優化工具箱,可以使用fmincon函數來解決約束優化問題。請點擊here

或者,您可以使用外部庫Yalmip

+0

您不必使用** fmincon **,因爲您可以使用** linprog **來解決問題。你應該如下:f = [1; -1],Aeq = [0,1],beq = t,相應地定義上限和下限。請參閱https://uk.mathworks.com/help/optim/ug/linprog.html以獲取進一步說明。 – merch