看板 Statistics 關於我們 聯絡資訊
用R計算立方根時,我遇到一個問題。 以負8的立方根為例: (等號右邊的答案都是R顯示出來的結果) 我沒辦法用以下兩種的方法計算負8之1的立方根: (-1/8)^(1/3) = NaN (-(1/8))^(1/3) = NaN 改用以下這種方式才可以得到答案: -1/8^(1/3) = -0.5 但這種寫法其實是負1除以8的立方根, 而不是負8之1的立方根。 -1/8^(1/3) = -0.5 => -1/( 8^(1/3) ) = -0.5 這在分子不是1時會有問題,例如: (-27/8)^(1/3) = NaN -27/8^(1/3) = -13.5 其實,計算單次方根時好像都有這種情況,例如: (-32)^(1/5) = NaN -32^(1/5) = 2 由此看來, 寫負數的單次方根的式子時, 似乎要自己先把負號提出到括弧外,例如: -( (1/8)^(1/3) ) -( 32^(1/5) ) 請問… 這是R的限制, 還是我自己的數學觀念有問題, 寫式子時本來就要先把負號提出到括弧外。 麻煩解答了,謝謝大家。 ===== 我是在練習R的統計功能時碰到這個問題。 如果這不適合在統計版發問,我馬上刪掉。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.158.204 ※ 編輯: KirinGuess 來自: 59.113.158.204 (01/31 15:13)
Ajax3:我以前也有相同的疑惑。我覺得這是R的問題。 01/31 21:24
clickhere:a<--1/8; sign(a)*abs(a)^(1/3) 02/02 00:10
clickhere:計算機不是人呀! 02/02 00:10
Ajax3:我猜R是把a^b轉換成exp{b*lna}, 所以a<0會跑出Na 02/02 01:39
Ajax3:有誤還請告知 02/02 01:40