いくつかの行列乗算演算をチェックしているときに、奇妙な動作に遭遇しました。「手で」(積と和を使用して) 乗算を実行した場合と、行列乗算演算子 %*% を使用した場合とでは、異なる結果が得られます。
c <- 1:10
a <- 100^(0:9)
p1 <- sum(a*c)
p2 <- a%*%c
p1==p2
[,1]
[1,] FALSE
p1-p2
[,1]
[1,] -2048
ただし、 a (たとえば、 a <- 101^0:9) に他の値を使用すると、同じ結果が得られます。
c <- 1:10
a <- 101^(0:9)
p1 <- sum(a*c)
p2 <- a%*%c
p1==p2
[,1]
[1,] TRUE
p1-p2
[,1]
[1,] 0
なぜこれが起こっているのですか?
ありがとう、ペドロ