这是我从[初学者指南到R]
的练习中解决的问题> Q
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 2 1
[3,] 2 3 0
> solve(Q)
[,1] [,2] [,3]
[1,] -0.12 0.36 -0.16
[2,] 0.08 -0.24 0.44
[3,] 0.32 0.04 -0.24
> solve(Q)%*%Q
[,1] [,2] [,3]
[1,] 1 -2.775558e-17 0
[2,] 0 1.000000e+00 0
[3,] 0 0.000000e+00 1
我想知道为什么我无法得到单一矩阵出现的正确答案。
答案 0 :(得分:6)
在最终结果上使用zapsmall
功能。由于浮点表示和舍入误差,除了简单的算术(甚至有时)之外,将导致值非常接近,但与预期的不完全相同。在这种情况下,您看到的值在第一个非零数字之前的小数位后面有16 0。 zapsmall
函数会将这些小的,基本上为0的值转换为0,以便您看到的内容符合您的预期。
答案 1 :(得分:4)