Ich möchte herausfinden, ob das Self-Return-Modell außer Kontrolle gerät!
Zum Beispiel ist das heutige $ ξ (t) $ das gestrige $ ξ (t-1) $, das $ ξ (t-2) $ des Vaters und der Tag davor $ ξ (t-3) $ und heute Angenommen, Sie entscheiden aus $ u (t) $:
Dies als Matrix ausdrücken,
x(t)=
\begin{pmatrix}
-0.5&0.34&0.08\\
1&0&0\\
0&1&0
\end{pmatrix} \times
x(t-1)
Es wird sein. Seitdem wurde dies verallgemeinert
x(t)=Ax(t-1)
Griffe.
x(t)=7x(t-1)
Dies wird jedes Mal mit 7 multipliziert, wenn $ t $ wächst
x(t)=7^tx(0)
Wenn dann $ t → ∞ $ ist, gerät es außer Kontrolle, weil es $ 7 ^ t → ∞ $ ist. Wenn der Koeffizient dagegen $ 0,2 $ beträgt, gibt es kein Durchgehen. Das ist einfach, nicht wahr?
x(t)=
\begin{pmatrix}
5&0&0\\
0&-3&0\\
0&0&0.8
\end{pmatrix} \times
x(t-1)
Im Fall von muss die Leistung der Diagonalmatrix nur die Leistung der Komponente sein, wie sie ist.
x(t)=
\begin{pmatrix}
5&0&0\\
0&-3&0\\
0&0&0.8
\end{pmatrix}^t
x(0)
Kann geschrieben werden.
Wenn die Matrix keine Diagonalmatrix ist, wird sie zwangsweise in eine Diagonalmatrix umgewandelt. Bringen Sie eine reguläre Matrix $ P $ in die ursprüngliche Variable $ x (t) $
x(t)=Py(t)
Lassen Sie uns darüber nachdenken, wie Sie mit in eine andere Variable konvertieren können. Wie wird zu diesem Zeitpunkt $ x (t) = Ax (t-1) $ konvertiert?
Erstens ist $ x (t) = Py (t) $
y(t)=P^{-1}x(t)=P^{-1}Ax(t-1)\\
=P^{-1}A(Py(t-1))=(P^{-1}AP)y(t-1)
Wenn Sie $ Λ = P ^ {-1} AP $ setzen,
y(t)=Λy(t-1)
Kann platziert werden. Wenn dieses $ Λ $ eine diagonale Matrix ist,
y(t)=Λ^ty(0)
Sie können $ y (t) $ mit leicht finden
x(t)=Py(t)=PΛty(0)=PΛ^tP^{-1}x(0)
Ich war froh, auch x zu finden.
Diese Prozedur "Bringen eines bequemen $ P $ und Machen von $ P ^ {-1} AP $ zu einer Diagonalmatrix" wird Diagonalisierung genannt.
Was ich machen will; was ich vorhabe zu tun
P^{-1}AP≡Λ=diag(λ_1,...,λ_n)
Ist $ P $ wie zu finden. Im Allgemeinen für eine quadratische Matrix $ A $
Ap=λp\\
p≠o
Die Zahl $ λ $ und der Vektor $ p $, die die Bedingungen erfüllen, werden als Eigenwerte bzw. Eigenvektoren bezeichnet.
Sie können einfach berechnen, indem Sie die Funktion von Numpy voll ausnutzen. Berechnen wir mit der folgenden Matrix.
A=
\begin{pmatrix}
5&3&4\\
6&8&-8\\
6&9&-9
\end{pmatrix}
import numpy as np
def get_eigenpairs(arr):
#np.linalg.eig gibt im ersten Argument einen eindeutigen Wert und im zweiten Argument einen eindeutigen Vektor aus
w, v = np.linalg.eig(arr)
eigenpairs = []
#Weil v auf 1 standardisiert ist. Ich bin mir nicht sicher, ob dies der Fall ist.
#Daher wird der numerische Wert wiederhergestellt, indem in jeder Spalte durch den Mindestwert ohne 0 dividiert wird.
for i, val in enumerate(w):
vec = v[:, i] / np.min(np.abs(v[:, i][v[:, i] != 0]))
eigenpairs.append((val, vec))
eigenpairs.sort(key=lambda x:x[0])
return eigenpairs
A = np.array([[5,3,-4],[6,8,-8],[6,9,-9]])
get_eigenpairs(A)
#array([[-1.0, array([1., 2., 3.])],
# [2.0, array([-1., -3., -3.])],
# [3.0, array([1., 2., 2.])]], dtype=object)
Ich habe 3 Eigenvektoren. Diese entsprechen eindeutigen Werten $ -1, 2, 3 $. Ordnen Sie also drei Eigenvektoren an
P=
\begin{pmatrix}
1&-1&1\\
2&-3&2\\
3&-3&2
\end{pmatrix}
Überprüfen wir, ob $ P ^ {-1} AP $ eine diagonale Matrix ist.
P = np.empty((3,3))
#Speichern Sie 3 Eigenvektoren in einer 3x3-Matrix
for i,val in enumerate(get_eigenpairs(a)):
P[i] = val[1]
np.rint(np.dot(np.dot(np.linalg.inv(P.T),a),P.T))
#array([[-1., 0., 0.],
# [ 0., 2., -0.],
# [ 0., 0., 3.]])
Es wurde bestätigt, dass $ P ^ {-1} AP = diag (-1,2,3) $ erfolgreich erhalten wurde. Jetzt können Sie sich leicht über das Durchgehen des Self-Return-Modells informieren.