作者KirinGuess (Kirin)
看板Statistics
標題[問題] 用R計算立方根的問題
時間Sat Jan 31 15:11:53 2009
用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