Subject: Calculation of eigenvalues, eigenvectors fails
From: Robert Dodier
Date: Mon, 21 Aug 2006 21:52:04 -0600
On 8/21/06, Felix E. Klee <felix.klee at inka.de> wrote:
> Does anyone have an idea how to get Maxima to calculate
> eigenvalues and eigenvectors reliably? Is it possible to tell Maxima
> to do the calculations using floating point numbers, which in this case
> - according to the user - would be preferred as a result?
There is a function eigens_by_jacobi in share/linearalgebra
which computes eigenvalues & eigenvectors by Jacobi
rotations. (According to its comment header; it is otherwise
undocumented. This is an oversight.) I get the following.
load (linearalgebra);
M : matrix([0,3,2],[3,0,1],[2,1,0]);
eigens_by_jacobi (M, floatfield);
=> [[-3.201911776678708,4.11309058432495,-.9111788076462429],
matrix([.7430686750179196,.6581030875614606,
-.1214465740528976],
[-.6108341622572568,.5928513034262205,
-.5247942056133115],
[-.2733689273245749,.4641418513427806,
.8425210806890873])]
(L : %[1], S : %[2])$
load (diag);
mat_norm (S . diag(L) . transpose (S) - M, 1);
=> 1.028691021254247E-15
so I guess that worked out OK.
This whole example is certainly more work than it needs to be.
Well, we are working on it.
Hope this helps
Robert Dodier