DMUG-Archiv 2009

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: (Numerisches?) Problem beim Bestimmen der Eigenvektoren

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.


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html