Hallo Andreas,
Noch kurz zu meiner Version: Meine ist die vom 10. November 2008. Falls
jemand genau die hat, würde mich brennend interessieren, ob derjenige
den gleichen Fehler sieht und Mathematica den einen Eigenvektor gar
nicht berechnen kann. ;-)
Ja schlecht, hier läuft auf Windows XP 32 Bit die Version 7.0.1.0
In[21]:= $Version
Out[21]= "7.0 for Microsoft Windows (32-bit) (February 18, 2009)"
mit demselben Fehler (in Ihren Bezeichnungen):
In[89]:= Eigenvectors[M][[3]]
Out[89]= {0., 0., 0., 1.}
by the way, die spiegelverkehrte Matrix ist Reverse[#]& /@ Reverse[M]
In[139]:= Eigenvectors[Reverse[#]& /@ Reverse[M]][[3]]
Out[139]= {-1.4179*10^-15, 6.58226*10^-14, -0.707107, 0.707107}
das geht auch mit dieser Version; folgendes scheint zu funktionieren
In[86]:= erM = Eigensystem[Rationalize[M]] // N
Out[86]= {{2096.81, 2027.21, 1923.69, 1915.63},
{{-0.05709, -0.05709, -0.059551, 1.},
{5.87718, 5.87718, 5.52372, 1.},
{-1., 1., 0., 0.},
{-80.583, -80.583, 171.298, 1.}}}
Probe:
In[87]:= Inverse[Transpose[erM[[2]]]] . Rationalize[M] .
Transpose[erM[[2]]] // N
Out[87]= {{2096.81, 2.04636*10^-11, 1.42109*10^-14,
2.68301*10^-11}, {-4.55103*10^-12, 2027.21, -1.42109*10^-14,
-2.01759*10^-11},
{0., 0., 1923.69, 0.},
{-5.17045*10^-12, -3.95489*10^-13, 0., 1915.63}}
und ebenso
In[88]:= erMS = Eigensystem[Rationalize[Reverse[#] & /@ Reverse[M]]] // N
Out[88]= {{2096.81, 2027.21, 1923.69, 1915.63},
{{-17.5162, 1.04311, 1., 1.}, {0.17015, 0.939858, 1., 1.},
{0., 0., -1., 1.},
{-0.0124096, -2.12573, 1., 1.}}}
In[89]:= Inverse[Transpose[erMS[[2]]]] .
Rationalize[Reverse[#] & /@ Reverse[M]] . Transpose[erMS[[2]]] // N
Out[89]= {{2096.81, 6.11511*10^-12, 8.88178*10^-16,
6.60005*10^-12}, {7.16227*10^-12, 2027.21, 1.13687*10^-13,
-6.9349*10^-12},
{0., 0., 1923.69, 0.},
{-3.75167*10^-12, -2.38742*10^-12, 0., 1915.63}}
Eine Frage bleibt:
Hier sollte in der 3. Zeile, wenn er richtig rechnet {0.707107,
-0.707107, 6.58 10^-14, -1.417 10^-15} stehen.
Er hat aber (vgl. Out[86]) für den dritten Eigenvektor {-1., 1., 0., 0.}
ausgerechnet und die Probe stimmt.
Hier
In[47]:= Eigenvectors[Reverse[#] & /@ Reverse[M]]
Out[47]= {{-0.995005, 0.0592536, 0.0568049, 0.0568049},
{-0.0997043, -0.550739, -0.58598, -0.58598}, \
{-1.4179*10^-15, 6.58226*10^-14, -0.707107, 0.707107},
{-0.00486037, -0.832572, 0.391663, 0.391663}}
In[79]:= Inverse[
Transpose[
Eigenvectors[Reverse[#] & /@ Reverse[M]]]] . (Reverse[#] & /@
Reverse[M]) .
Transpose[Eigenvectors[Reverse[#] & /@ Reverse[M]]] // Chop
Out[79]= {{2096.81, 0, 0, 0},
{0, 2027.21, 0, 0},
{0, 0, 1923.69, 0},
{0, 0, 0, 1915.63}}
stimmt die Probe auch, aber Out[47] und Out[88] passen nicht:
{0., 0., -707107, 0.0707107} != {0., 0., -1., 1.}
Übrigens scheitert die Probe Inverse[Transpose[Eigenvectors[M]]] . M .
Transpose[Eigenvectors[M]]
Gruss
Udo.