[问题] 矩阵的范围不能是负值

楼主: 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