[R] identity matrix
Thomas Lumley
tlumley at u.washington.edu
Sun Oct 30 22:24:31 CET 2005
On Sun, 30 Oct 2005, Robert wrote:
> I found a very odd thing.
> A matrix multiplied by its inverse matrix should be an
> identity matrix.
Well, an invertible matrix multiplied by its inverse...
The matrix that you give (to two decimal places) is singular
> solve(a)
Error in solve.default(a) : system is computationally singular: reciprocal
condition number = 3.25149e-20
Your matrix is slightly less singular, but the huge size of the elements
in solve(a) shows that a%*%solve(a) will not be accurately computed.
There are limits to what you can do with only 15 digits accuracy.
-thomas
> But why the following thing happens?
> <a%*%solve(a) is not an identity matrix>
>> x%*%t(x)
> [,1] [,2] [,3] [,4] [,5]
> [1,] 108.16 58.24 32.24 66.56 225.68
> [2,] 58.24 31.36 17.36 35.84 121.52
> [3,] 32.24 17.36 9.61 19.84 67.27
> [4,] 66.56 35.84 19.84 40.96 138.88
> [5,] 225.68 121.52 67.27 138.88 470.89
>> a=x%*%t(x)
>> solve(a)
> [,1] [,2] [,3]
> [,4] [,5]
> [1,] -1.372649e+14 1.078492e+14 -2.553747e+14
> 1.126842e+14 4.120191e+13
> [2,] -1.174558e+14 1.543860e+14 2.323143e+14
> -1.375074e+14 2.381809e+13
> [3,] -3.062129e+14 6.914056e+14 -1.656744e+15
> 7.007732e+14 -1.672741e+12
> [4,] 1.761208e+14 -3.724017e+14 7.773835e+14
> -2.156631e+14 -3.575351e+13
> [5,] 8.789836e+13 -8.046912e+13 6.984285e+13
> -5.502429e+13 -1.510937e+13
>> a%*%solve(a)
> [,1] [,2] [,3] [,4]
> [,5]
> [1,] 2.0410156 1.4433594 -4.169922 0.4003906
> 1.2170410
> [2,] -2.5146484 1.9208984 -1.84912w=1 1.1879883
> 1.1203613
> [3,] -1.5356445 -0.8549805 -1.008789 0.4116211
> 0.6218872
> [4,] -0.5898438 -0.2539063 3.592773 2.0351563
> 0.7849121
> [5,] 1.5000000 -1.1289063 -2.070313 -0.4003906
> 2.1386719
>>
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>
Thomas Lumley Assoc. Professor, Biostatistics
tlumley at u.washington.edu University of Washington, Seattle
More information about the R-help
mailing list