这是我在[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
我想知道为什么我不能得到单位矩阵应该出来的正确答案。
最佳答案
对最终结果使用zapsmall
函数。由于浮点表示和舍入误差,除了简单算术(甚至有时)之外的任何内容都将导致非常接近的值,但与预期不完全相同。在这种情况下,您会看到一个值,该值在小数点后第一个非零数字之前有 16 个 0。 zapsmall
函数会将这些小值(本质上是 0)转换为 0,以便您所看到的与您期望的相符。
关于r - R编程中,关于逆矩阵及其乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15575240/