Eigenwert & -vektoren

Über die Normberechnung hinaus stellt die numpy.linalg Erweiterung auch Funktionen zur Berechnung von Eigenwerten und Eigenvektoren bereit.

Wir haben wieder eine zufällige \(100\times 100\) Matrix:

import numpy
import numpy.linalg as linalg

A = numpy.random.rand(100,100)

und können nun die Eigenwerte und Eigenvektoren berechnen. NumPy liefert dann ein Tupel aus Eigenwerten ew und Eigenvektoren ev zurück:

ew,ev = linalg.eig(A)

Nun können wir den betragsmäßig kleinsten und größten Eigenwert und den dazugehörigen Eigenvektor bestimmten.

Zunächst berechnen wir die Beträge der (i.d.R. komplexen) Eigenwerte:

ew_abs = numpy.abs(ew)

Mit argmax/argmin wird der Index des maximalen/minimalen Eigenwerts berechnet:

ew_max = numpy.argmax(ew_abs)
ew_min = numpy.argmin(ew_abs)

womit wir dann auf den entsprechenden Eintrag zugreifen können:

print "max EW ", ew[ew_max]
print "  + EV ", ev[ew_max]
print "min EW ", ew[ew_min]
print "  + EV ", ev[ew_min]

Download 03-eigenwerte.py.