2014-11-25 80 views
0

有人可以幫助我爲具有不同邊界條件的兩個變量設置函數`optim()'嗎?對於R中具有不同邊界條件的多個變量,Optim()函數

x = rnorm(1:100) 
    y = rnorm(1:100)*50+2 
    #ndays is a vector of two values 

    test=function(ndays, x, y){ sum(x*ndays[1] - (x^2)*ndays[2] + y^2) } 

    optim(par = c(2,10),test, x=x, y=y, lower=c(1,10),upper=c(20,30), method="L-BFGS-B") 
    $par 
    [1] 20 30 

顯然,這種優化沒有工作的ndays [2]應該是10

如果optim()是不是適用於這裏,你可以建議一些其他的功能,良好的功能?

回答

1

optim使函數test最小化,當ndays[2]增加時函數test減小。

所以得到30是正確的。此外ndays[1]將等於20,如果mean(x) < 0和等於1,如果mean(x) > 0

+0

謝謝你,你是對的,我把它混爲一談,當我試圖彌補一個例子來說明我的問題。那麼讓我們假設這個函數更復雜,模擬值總是位於邊界上,我該如何處理它?你有什麼提示可以借用嗎? – 2014-11-25 12:36:21

相關問題