In Wissenschaft und Technik lösen wir häufig Eigenwertprobleme in der Quantenmechanik und in Oszillatorsystemen.
Power-Methode ist ein Standard-Eigenwertproblem.
Es ist einer der Algorithmen, den maximalen Eigenwert (dominanten Eigenwert) von zu finden. ** ** ** Wenn Sie das Einführungsbuch in diesem Bereich öffnen, werden Sie es häufig zuerst sehen.
** Es ist ein sehr lehrreicher Inhalt zum Erlernen der rudimentären numerischen Lösung des Eigenwertproblems. In diesem Artikel werden wir diese Methode betrachten. ** ** **
Diese Methode ist sehr einfach.
Berechnungsverfahren und Punkte
Die Hauptsache ist also, das ** A zu multiplizieren, um die Konvergenz des Richtungsvektors zu überprüfen. ** ** ** Dann liegt der Ursprung des Namens "Potenzmethode" in der Methode zur Bewertung der Leistung der Koeffizientenmatrix A, wie in 2 oben zu sehen ist.
Zusätzlich ist die Potenzmethode eine Methode zum Ermitteln des maximalen Eigenwerts des Absolutwerts von A. ** Mit etwas Einfallsreichtum ist es möglich, den Eigenwert mit dem kleinsten Absolutwert zu finden, den Eigenwert, der der gegebenen komplexen Zahl $ z $ am nächsten kommt, den zweiten Eigenwert und so weiter. ** Ich habe vor, einen Artikel zu veröffentlichen.
Lösen Sie ein einfaches Eigenwertproblem, das die Leistungsmultiplikationsmethode anwendet. Stellen Sie jedoch sicher, dass der Eigenwert mit dem maximalen Absolutwert und der entsprechende Eigenvektor erhalten werden.
Als $ A $ von $ A \ mathbf {u} = \ lambda \ mathbf {u} $
A=
\left[
\begin{matrix}
1 & 2 \\
3 & 4
\end{matrix}
\right]
Nachdenken über.
Die genaue Lösung für den größten absoluten Eigenwert ist $ \ frac {5+ \ sqrt {33}} {2} = 5.372281323 ... $.
Als Konvergenzbeurteilungsbedingung
Absoluter Wert der Änderung von $ \ lambda $ in sich wiederholenden Schritten $ k $ und $ k + 1 $
"""
Matrixeigenwertproblem:Power-Methode:
"""
import numpy as np
A=np.array([[1,2],[3,4]])
x0 = np.array([1,0]); x1 = np.array([0,1])
u = 1.0*x0+2.0*x1 #Der anfängliche Eigenvektor. Angemessen.
rel_eps = 0.0001 #Konvergenzbedingung des Eigenwerts
#Krylov-Säulengenerierung
rel_delta_u=100.0
while rel_delta_u >= rel_eps : #Hauptschleife
uu = u/np.linalg.norm(u) #Normalisierung(Setzen Sie die Norm auf 1)
print("u=",uu)
u = np.dot(A,uu.T)
eigen_value=np.dot(uu,u)/(np.dot(uu,uu.T))
print("eigen_value=",eigen_value)
delta_u_vec = uu-u/np.linalg.norm(u)
abs_delta_u_value= np.linalg.norm(delta_u_vec)
rel_delta_u=abs_delta_u_value/np.abs(eigen_value) #Relative Änderung des Eigenwerts in Bezug auf wiederholte Schritte
print("rel_delta_u_vec = ",rel_delta_u)
u= [ 0.41612395 0.9093079 ]
eigen_value= 5.37244655582
rel_delta_u_vec = 3.29180183204e-05
Sie können sehen, dass es sehr gut mit der exakten Lösung 5.372281323 übereinstimmt ...
Die folgenden Bücher waren beim Schreiben dieses Artikels hilfreich. [1] ist eine einfache Beschreibung und leicht zu verstehen. [2] ist eine Zusammenfassung der Lösung von Eigenwertproblemen mit numpy und scipy.
[1] Gilbert Strang, ["World Standard MIT Lehrbuch Strang: Einführung in die lineare Algebra"](https://www.amazon.co.jp/%E4%B8%96%E7%95%8C%E6%A8%99 % E6% BA% 96MIT% E6% 95% 99% E7% A7% 91% E6% 9B% B8-% E3% 82% B9% E3% 83% 88% E3% 83% A9% E3% 83% B3% E3% 82% B0-% E7% B7% 9A% E5% BD% A2% E4% BB% A3% E6% 95% B0% E3% 82% A4% E3% 83% B3% E3% 83% 88% E3 % 83% AD% E3% 83% 80% E3% 82% AF% E3% 82% B7% E3% 83% A7% E3% 83% B3-% E3% 82% AE% E3% 83% AB% E3% 83% 90% E3% 83% BC% E3% 83% 88 / dp / 4764904055 / ref = pd_lpo_sbs_14_t_0? _ Encoding = UTF8 & psc = 1 & refRID = 9817PCQXDR5497M5GPS2), Modern Science, 2015.
[2] [[Wissenschaftliche / technische Berechnung durch Python] Lösen (verallgemeinerter) Eigenwertprobleme mit numpy / scipy, mit Bibliothek] (http://qiita.com/sci_Haru/items/034c6f74d415c1c10d0b)
Die Leistungsmultiplikation ist ein Standardeigenwertproblem
Im
Ausgehend vom Anfangsvektor $ u_0 $
Dies ist eine Methode, um den Eigenwert / Eigenvektor mit dem maximalen Absolutwert zu finden. (Dieses $ u_0, Au_0, A ^ 2u_0, A ^ 3u_0 $, ... ist [Kurilov-Spalte](https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AA% Es heißt E3% 83% AD% E3% 83% 95% E9% 83% A8% E5% 88% 86% E7% A9% BA% E9% 96% 93))
Nun die Eigenwertgleichung
In ** haben Eigenwerte keine Regression **, dh
Annehmen. Auch in Bezug auf die Größenordnung der Eigenwerte
Annehmen.
Betrachten Sie nun einen geeigneten Vektor $ u_0 $. Angenommen, der Koeffizient $ c_i $ ist fest, so dass $ u_0 $ wie folgt erweitert werden kann.
Wenn $ A ^ k $, das $ A $ sein sollte, darauf angewendet wird,
Es wird sein.
Sie können es erwarten.
Durch wiederholtes Anwenden von $ A $ auf den ** anfänglichen Versuchsvektor $ u_0 $ auf diese Weise wird ein Vektor parallel zum Eigenvektor erhalten, der dem Eigenwert mit dem maximalen Absolutwert entspricht. ** ** **
Da der Eigenvektor immer die Unbestimmtheit eines konstanten Vielfachen (beliebiges komplexes numerisches Vielfaches) aufweist (dies bedeutet, dass sich der Eigenwert auch dann nicht ändert, wenn beide Seiten der Eigengleichung mit der komplexen Zahl multipliziert werden), wird diejenige ausgewählt, die dem Zweck entspricht. In den meisten Fällen wird die mit der Norm 1 gewählt.
Der maximale absolute Eigenwert $ \ lambda $ ergibt sich aus der Eigenwertgleichung für ein ausreichend großes $ k $.
Kann berechnet werden als. Dies ist der [Rayleigh-Quotient](https://ja.wikipedia.org/wiki/%E3%83%AC%E3%82%A4%E3%83%AA%E3%83%BC%E5%95 Es heißt% 86).
Wie oben beschrieben, ist es möglich, den maximalen Absolutwert des Eigenwertproblems und des entsprechenden Eigenvektors zu berechnen.
Recommended Posts