我試圖使用optim()
中的R求解以下等式拉姆達:的Optim與不等式約束
拉姆達/西格瑪^ 2 - LN(拉姆達/西格瑪^ 2)= 1 + 1/Q
受約束:
拉姆達>西格馬^ 2。
我不知道怎麼去一個關於R.
設立這個我打開替代優化程序以及雖然方程似乎凸,因此optim
應該是一個不錯的選擇。
謝謝!
我試圖使用optim()
中的R求解以下等式拉姆達:的Optim與不等式約束
拉姆達/西格瑪^ 2 - LN(拉姆達/西格瑪^ 2)= 1 + 1/Q
受約束:
拉姆達>西格馬^ 2。
我不知道怎麼去一個關於R.
設立這個我打開替代優化程序以及雖然方程似乎凸,因此optim
應該是一個不錯的選擇。
謝謝!
您正試圖解答一個等式。是否滿足約束,只能事後決定。 您可以使用uniroot
如下
f <- function(x,sigma=1,Q=1) {x/sigma^2 - log(x/sigma^2) - 1 - 1/Q}
uniroot(f,c(1,5))
給
$root
[1] 3.146198
$f.root
[1] 3.552369e-06
$iter
[1] 5
$estim.prec
[1] 6.103516e-05
補充說明:只要Q> = 0,x的解決方案總是> = sigma^2。 –
決定這是比評論更多的答案。
兩個optim
和optimize
最小化功能,所以你想做的事就是寫一個返回,也就是說,誤差平方對於給定的λ誤差函數(se(lambda, sigma^2, Q)
,請確保您的λ是第一個參數)。然後調用optim(f = se, lower = sigma^2, sigma^2, Q)
,它會返回最小化錯誤函數的lambda的值。如果你有多個數據點(Q,Σ^ 2對),那麼使你的函數爲平方誤差的總和,或嘗試使用nls()
。
是Λ唯一的變量?如果您在'?optim'中檢查一維問題中的「註釋」,建議使用「optimize()」。當你說「求解lambda」時,你的方程中是否存在等式(或不等式)?或者你想要最小化或最大化你的表情? – Gregor
我更新了方程(我有一個錯字)。是的,這是一個單一的問題。我將探索優化() - 感謝領先! –