[Rd] eigen()
Hin-Tak Leung
hin-tak.leung at cimr.cam.ac.uk
Tue Jan 10 14:42:55 CET 2006
Peter Dalgaard wrote:
> Robin Hankin <r.hankin at noc.soton.ac.uk> writes:
>
>
>>Hi
>>
>>I am having difficulty with eigen() on R-devel_2006-01-05.tar.gz
>>
>>Specifically, in R-2.2.0 I get expected behaviour:
>>
>>
>> > eigen(matrix(1:100,10,10),FALSE,TRUE)$values
>>[1] 5.208398e+02+0.000000e+00i -1.583980e+01+0.000000e+00i
>>[3] -4.805412e-15+0.000000e+00i 1.347691e-15+4.487511e-15i
>>[5] 1.347691e-15-4.487511e-15i -4.269863e-16+0.000000e+00i
>>[7] 1.364748e-16+0.000000e+00i -1.269735e-16+0.000000e+00i
>>[9] -1.878758e-18+5.031259e-17i -1.878758e-18-5.031259e-17i
>> >
>>
>>
>>The same command gives different results in the development version:
>>
>>
>> > eigen(matrix(1:100,10,10),FALSE,TRUE)$values
>>[1] 3.903094e-118 -3.903094e-118 -2.610848e-312 -2.995687e-313
>>-2.748516e-313
>>[6] -1.073138e-314 -1.061000e-314 -1.060998e-314 4.940656e-324
>>0.000000e+00
>> > R.version()
>>Error: attempt to apply non-function
>> > R.version
>
>
> Strange and semi-random results on SuSE 9.3 as well:
>
>
>> eigen(matrix(1:100,10,10))$values
>
> [1] -5.393552e+194 3.512001e-68 0.000000e+00 0.000000e+00 0.000000e+00
> [6] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
>
>> eigen(matrix(1:100,10,10))$values
>
> [1] 1.526259e-311 -1.041529e-311 1.181720e-313 0.000000e+00 0.000000e+00
> [6] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
>
>> eigen(matrix(1:100,10,10))$values
>
> [1] -9.338774e+93 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
> [6] 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00
>
>> eigen(matrix(1:100,10,10))$values
>
> [1] 5.4e-311+ 0.0e+00i -2.5e-311+3.7e-311i -2.5e-311-3.7e-311i
> [4] 2.5e-312+ 0.0e+00i -2.4e-312+ 0.0e+00i 3.2e-317+ 0.0e+00i
> [7] 0.0e+00+ 0.0e+00i 0.0e+00+ 0.0e+00i 0.0e+00+ 0.0e+00i
> [10] 0.0e+00+ 0.0e+00i
>
>
>
Mine is closer to Robin's, but not the same (EL4 x86).
> eigen(matrix(1:100,10,10))$values
[1] 5.208398e+02+0.000000e+00i -1.583980e+01+0.000000e+00i
[3] 6.292457e-16+2.785369e-15i 6.292457e-16-2.785369e-15i
[5] -1.055022e-15+0.000000e+00i 3.629676e-16+0.000000e+00i
[7] 1.356222e-16+2.682405e-16i 1.356222e-16-2.682405e-16i
[9] 1.029077e-16+0.000000e+00i -1.269181e-17+0.000000e+00i
>
But surely, my matrix algebra is a bit rusty, I think this matrix is
solveable analytically? Most of the eigenvalues shown are almost
exactly zero, except the first two, actually, which is about 521
and -16 to the closest integer.
I think the difference between mine and Robin's are rounding errors
(the matrix is simple enough I expect the solution to be simple integers
or easily expressible analystical expressions, so 8 e-values being zero
is fine). Peter's number seems to be all 10 e-values are zero or one
being a huge number! So Peter's is odd... and Peter's machine also seems
to be of a different archtecture (64-bit machine)?
HTL
More information about the R-devel
mailing list