[問題] 矩陣的範圍不能是負值

作者: Dboy (廢物)   2014-02-27 16:21:29
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]: 矩陣的範圍不能是負值
[程式範例]:
想找出一個scalar function的optimal value所以用了optim這個function~
目標函式是個向量化函式~
也就是說給一個n x k的matrix會吐出n x 1的vector
有丟過一些值進去算過~
都有給出想要的結果~
但不知道為什麼~
一丟進optim裡馬上就掛了~
跳出"錯誤在matrix(rep(mu_x, length(x)), nrow = s) : 矩陣的範圍不能是負值"~
附上程式碼如下:
http://nopaste.info/e864a2b39d.html
本來這是跑得動的~
但是因為後來加了幾個變數(sig_v, sig_x跟sig_epo)必須是正的~
在負數上的函數值要為0(因為函數統一回傳log值,所以在code中是指定為-Inf)~
ind_vs那幾行程式碼之後就出問題了....
謝謝大家
[關鍵字]:
矩陣 範圍不能是負值
作者: Dboy (廢物)   2014-02-27 16:54:00
剛剛複製貼上沒弄好~Objective_Fiction(theta,...後面有些切到~簡單的說都是一些係數~theta才是我要optimize的對象~
作者: clickhere (It's time to go home.)   2014-02-27 23:21:00
?constrOptim或做變數變換改成最佳化 log(sig_v)
作者: Dboy (廢物)   2014-02-28 00:37:00
會用optim其實是因為跑完後要丟另外一個package~裡面它是用optim在做最佳化~所以就算用constrOptim跑得出來~後面還是會出事....我只是不懂怎樣會出現"矩陣範圍不能是負值"這種error

Links booklink

Contact Us: admin [ a t ] ucptt.com