作者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)
1F:推 Ajax3:我以前也有相同的疑惑。我觉得这是R的问题。 01/31 21:24
2F:→ clickhere:a<--1/8; sign(a)*abs(a)^(1/3) 02/02 00:10
3F:→ clickhere:计算机不是人呀! 02/02 00:10
4F:推 Ajax3:我猜R是把a^b转换成exp{b*lna}, 所以a<0会跑出Na 02/02 01:39
5F:→ Ajax3:有误还请告知 02/02 01:40