Ein Missverständnis oder ein Fehler in LAPACKs Solver für verallgemeinerte Eigenwertprobleme?
In meiner Bewerbung habe ich zwei allgemeine reelle Matrizen $A$,$B$ wie folgt definiert: $$ A=\begin{bmatrix} -s I_3 & A_0 & 0 & 0 \\ A_0^T & -s I_3 & 0 & 0 \\ 0 & A_1 & -s I_3 & A_0 \\ A_1^T & 0 & A_0^T & -s I_3 \end{bmatrix}, B=\begin{bmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ I_3 & 0 & 0 & 0 \\ 0 & I_3& 0 & 0 \end{bmatrix}, $$ wo $A_0,A_1 \in R^{3\times3}$ sind allgemeine Matrizen, $s$ ist ein echter Skalar und $I_3 \in R^{3\times3}$ist die Identitätsmatrix. Ich möchte das Eigenwertproblem lösen$AX= B X D$ numerisch, wo $X$ ist die Eigenvektormatrix und $D$ist die Eigenwertmatrix. Ich möchte nur die rechten (nicht linken) Eigenwerte und Eigenvektoren. Betrachten Sie das Folgende als konkretes Beispiel, wo$$ A_0=\begin{bmatrix} 1 & & \\ & 2 & \\ & & 3 \end{bmatrix}, A_1=\begin{bmatrix} 0 & 1 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0 \end{bmatrix}, s=1, $$ Aus meiner Bewerbung weiß ich, dass mindestens ein Eigenwert existiert $d_1$ und ein Eigenvektor $x_1$, welche sind $$ x_1=\left(0.625543,0,0,0.625543, 0, 0, 0, -0.417029, 0, 0, -0.208514, 0\right), d_1=0, $$ weil $ A x_1 -d_1 B x_1 = \textbf{0},\left\|x_1\right\|=1$. Unabhängig davon, welche Software ich verwendet habe, konnte ich selbst für nicht die richtigen Eigenwerte erhalten$d_1$. Die Software, die ich ausprobiert habe, sind Matlab, Eigen (c ++ - Bibliothek) und LAPACK.
- Die Eigenwerte von Matlab sind unendlich.
- Die richtigen Eigenwerte von Eigen und LAPACK werden durch dargestellt $d_i=\alpha_i / \beta_i$, wo $\alpha_i$ ist eine komplexe Zahl und $\beta_i$ist eine reelle Zahl. Die Ausgabe$\beta_i$ist für alle Eigenwerte Null. Mit anderen Worten, alle richtigen Eigenwerte sind unendlich.
Ich bin mir nicht sicher, welcher Teil falsch ist. Ist es so, dass die Software keinen korrekten Eigenwert berechnen kann oder so?$d_1$ kann nicht als Eigenwert betrachtet werden?
Crosspost meine eigene Frage: Ein Missverständnis oder ein Fehler in LAPACKs Solver für verallgemeinerte Eigenwertprobleme? , da es hier vielleicht besser passt.
Antworten
Ich vermute, die Wurzel Ihres Problems liegt in den Kommentaren von Vibe: Für jede Zahl $\omega\in \mathbb{K}$ (mit $\mathbb{K}= \mathbb{R}$ oder $\mathbb{C}$) können Sie finden $\boldsymbol{X}$ so dass $AX = \omega BX$ (mit $A$ und $B$ in Ihrem konkreten Beispiel genommen).
Sie haben das Problem bereits in 4 Blöcke mit 3 Variablen zerlegt. Dann lassen Sie uns definieren$X = (X_1, X_2, X_3, X_4)^T$ wo $X_i\in \mathbb{K}^3$.
Die ersten 6 Zeilen Ihres Systems ergeben $X_1 = X_2 = (a,0,0)$mit $a\in\mathbb{K}$ eine beliebige Zahl.
In diesem Sinne wird bei der Prüfung deutlich, dass die letzten 6 Zeilen des Systems die Form haben $C (X_3, X_4)^T = R(a,\omega)$ wo $C$ ist ein $6\times6$ nicht singuläre Matrix (im Wesentlichen die unteren rechten Blöcke in $A$), und $R\in\mathbb{K}^6$ ist eine rechte Seite, die davon abhängt $a,\omega\in\mathbb{K^2}$. Schon seit$C$ ist invertierbar, können Sie immer Lösungen für dieses inhomogene Problem finden.
Abschließend für alle $\omega$können Sie dieses System invertieren und berechnen $X\ne 0$ so dass $AX=\omega BX$
Die anderen Antworten sagen Ihnen bereits, was schief gelaufen ist, aber ich werde eine Terminologie hinzufügen: Der Begriff für das, was passiert, ist der Bleistift $A - \lambda B$ist ein singulärer Matrixstift, dh$\det (A - \lambda B)$ist identisch gleich Null. Es gibt also keine verallgemeinerten Eigenwerte (oder sie können zumindest nicht wie üblich als Wurzeln des verallgemeinerten charakteristischen Polynoms definiert werden).
Ein nützliches Werkzeug zur Analyse einzelner Bleistifte ist die kanonische Form von Kronecker , die eine Verallgemeinerung der kanonischen Form Jordaniens auf Bleistifte darstellt und einzelne (rechteckige) Blöcke enthalten kann.
Beachten Sie, dass kleine Störungen eines singulären Stifts normale (= nicht singuläre) Stifte mit einem beliebigen Eigenwert in ergeben können $\mathbb{C} \cup \{\infty\}$Daher ist die numerische Berechnung dieser Eigenwerte ein schlecht gestelltes Problem, und in der Praxis können Sie erwarten, dass nahezu jeder Wert unter den berechneten Eigenwerten angezeigt wird.