Ich habe -dimensionalen Matrizen H ( → K ) in Abhängigkeit von Vektorparametern → k .
Nun geben Eigenwertroutinen Eigenwerte in keiner bestimmten Reihenfolge zurück (sie werden normalerweise sortiert), aber ich möchte Eigenwerte als glatte Funktionen von → k verfolgen . Da Eigenwerte nicht in einer bestimmten Reihenfolge zurückgegeben werden, wird nur E i für einen bestimmten Index i ∈ { 1 , . . , n } gibt eine Reihe von Linien zurück, die nicht glatt sind, wie im Bild unten gezeigt
Meine Idee, durchgehende Linien zu verfolgen, war die Verwendung von Eigenvektoren. Für zwei nahe Punkte sollten nämlich und → k + d → k Eigenvektoren ungefähr orthonormal sein, so dass v i ( → k ) ⋅ v j ( → k + d → k ) ∼ δ p i p j wobei p i , p j ∈ & pgr; ( { 1 , . . . , und π ist eine Permutation. Dann würde ich die gegebene Permutation verwenden, um die Eigenwerte neu zu ordnen und so glatte Linien zu verfolgen.
Mit anderen Worten, ich würde die Kontinuität von Eigenvektoren verfolgen.
Ich habe jedoch einige Probleme mit numerischen Routinen. Bei einer bestimmten kleinen Teilmenge von Punkten, die ich verwende, sind wenige Eigenvektoren an nahe gelegenen Punkten nicht annähernd orthonormal. Mein erster Verdacht war, dass diese Eigenvektoren einem entarteten Eigenwert entsprechen, aber das ist nicht immer wahr.
Dies gilt auch, wenn ich auf sehr klein reduziere .
Darf so etwas passieren? Oder kann garantiert werden, dass numerische Routinen kontinuierliche Eigenvektoren zurückgeben? Die von mir verwendete Routine ist numpy.linalg.eigh, eine Schnittstelle für zheevd von LAPACK.
(Physiker unter euch werden erkennen, dass ich über die Bandstruktur spreche)
numpy.linalg.svd
Ihre Eigenvektoren zu erzeugen. Zumindest in Matlab gibt die zugrunde liegende Routine fürsvd
immer die Eigenwerte und Eigenvektoren in absteigender Reihenfolge zurück.Antworten:
An Punkten, an denen zwei Linien verschmelzen, haben Sie, dass zwei Eigenwerte gleich sind und folglich der Eigenraum, der diesen beiden Eigenvektoren entspricht, zweidimensional ist. Dies bedeutet, dass zu diesem Zeitpunkt die beiden Eigenvektoren nicht mehr eindeutig sind (nicht nur bis zu einem Vorzeichen), sondern einer der unendlich vielen möglichen orthogonalen Vektoren sein können, die diesen zweidimensionalen Raum überspannen.
quelle
Ich arbeite in der Elektromagnetik, also muss ich photonische Bandstrukturen berechnen. Früher habe ich versucht, die Bands glatt zu machen, indem ich versucht habe, Überkreuzungspunkte zu erkennen, aber nach vielen Versuchen und Diskussionen mit Kollegen kamen wir letztendlich zu dem Schluss, dass es keinen wirklich guten Weg oder Grund dafür gibt.
Wenn Sie jedoch weiterhin darauf bestehen, das zu tun, was Sie möchten, möchten Sie die Berechnung von Eigenwertableitungen in Bezug auf k betrachten. Es gibt eine ganze Menge Literatur dazu, hauptsächlich zur Störungstheorie von Eigenwertproblemen (klassisches Buch von Kato), und auch zur Störungsanalyse bei Vorhandensein von Eigenwert-Degerazien (ein viel schwierigeres Problem, Literatur von Roger CE Tan). Ich würde versuchen, dies zuerst für den nicht entarteten Fall zu tun, da dies immer noch relativ einfach ist.
quelle