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
.