看板 R_Language 關於我們 聯絡資訊
[問題類型]: R的optim套件在某些時候無法找到極值 舉例: f(x1,x2) = x1^10000+(1-x1)^10000+x2^10000+(1-x2)^10000, 0<x1<1 0<x2<1 這東西直接手算微分很容易 但optim套件會因為f幾乎都趨近於零導致無法迭代 請板上高手大大幫看 謝謝 [軟體熟悉度]: 使用者(已經有用R 做過不少作品) [問題敘述]: 如問題類型所說 [程式範例]: f = function(x){ x1 = x[1] x2 = x[2] return(x1^10000+(1-x1)^10000+x2^10000+(1-x2)^10000) } optim(par = c(0.3,0.3), fn = f) [環境敘述]: output 結果如下(事實上手算很容易知道極值為0.5 0.5) $par [1] 0.3 0.3 $value [1] 0 $counts function gradient 9 NA $convergence [1] 0 $message NULL -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.157.199 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1555946131.A.39F.html
TreeMan: R浮點運算的限制? check ?.Machine in R 04/23 17:25
bjbjbj123: 沒錯 我目前的解法是乘上一個常數項強迫讓他不要超過 04/23 23:11