假设我们有以下矩阵,并希望建立1.5的幂,即b ^ 1.5:
b <- matrix(c(1,2,4,4,-0.6,56), ncol=1)
b^1.5
[,1]
[1,] 1.000000
[2,] 2.828427
[3,] 8.000000
[4,] 8.000000
[5,] NaN
[6,] 419.065627
但是
-0.6^1.5
[1] -0.464758
是否有人意识到此类问题的解决方案?
答案 0 :(得分:2)
-0.6^1.5
与(-0.6)^1.5
不同。
来自help("^")
:
用户有时会对返回的值感到惊讶,例如为什么 (-8)^(1/3)是NaN。对于双输入,R使用IEC 60559 所有平台上的算术,以及C系统功能pow 对于^运算符。相关标准定义了许多结果 角落案件。特别是,上面例子中的结果是 由C99标准强制执行。在许多类Unix系统上的命令 man pow提供了大量极端情况下的值的详细信息。
你想要的结果是什么?
答案 1 :(得分:1)
这与R中的评估顺序有关。
-0.6^1.5
实际上是0.6^1.5
次-1
。指数在否定之前进行评估。
当您将-0.6
放入矩阵时,在创建0.6
时,否定值将应用于b
。这意味着当你拿到指数时,你真的这样做了:
(-0.6)^1.5
# NaN