$ \mathbf{A} x_1 = \lambda_1 x_1 \\ \mathbf{A} x_2 = \lambda_2 x_2 \\ \mathbf{A} \times \begin{vmatrix} x_1 & x_2 \end{vmatrix} = \begin{vmatrix} \lambda_1 x_1 & \lambda_2 x_2 \end{vmatrix} = \begin{vmatrix} x_1 & x_2 \end{vmatrix} \times \begin{vmatrix} \lambda_1 & 0 \\ 0 & \lambda_2 \end{vmatrix} \\ THEN \\ \mathbf{A} \mathbf{V} = \mathbf{V} \mathbf{\Lambda} \\ SO \\ \mathbf{V}^{-1} \mathbf{A} \mathbf{V} = \mathbf{\Lambda} \\ AND \\ \mathbf{A} = \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1} $
$ \mathbf{A}^2 = \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1} \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1} \\ = \mathbf{V} \mathbf{\Lambda} \mathbf{\Lambda} \mathbf{V}^{-1} \\ = \mathbf{V} \mathbf{\Lambda}^2 \mathbf{V}^{-1} \\ $
$ \mathbf{A}^n = \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1} \mathbf{V} \mathbf{\Lambda} \mathbf{V}^{-1} ... \\ = \mathbf{V} \mathbf{\Lambda}^n \mathbf{V}^{-1} \\ $
$ p_0 = c_1 x_1 + c_2 x_2 ... c_n x_n => \mathbf{V}\mathbf{c} = p_0 => \mathbf{c} = \mathbf{V}^{-1} p_0\\ \mathbf{A} p_0 = p_1 = c_1 \lambda_1 x_1 + c_2 \lambda_2 x_2 ... c_k \lambda_k x_k \\ \mathbf{A}^n p_0 = p_n = c_1 \lambda_1^n x_1 + c_2 \lambda_2^n x_2 ... c_k \lambda_k^n x_k \\ = p_n = \mathbf{c} \mathbf{V} \mathbf{\Lambda}^n \\ = \mathbf{V} \mathbf{\Lambda}^n \mathbf{V}^{-1} p_0 $
In [12]:
import numpy as np
from scipy.linalg import eig, inv
from diffmaps_util import k, diag, sort_eigens
In [13]:
m = np.array([.8, .2, .5, .5]).reshape(2,2)
m
Out[13]:
In [14]:
u0 = np.array([0,1])
for i in range(0,50):
u0 = u0.dot(m)
print u0
In [15]:
w, v = eig(m)
print w.real
print v
In [11]:
v.dot(inv(v).dot(u0))
Out[11]:
In [24]:
m = np.random.randn(9).reshape(3,3)
L = k(m, .7)
D = diag(L)
m = inv(D).dot(L)
print m
In [31]:
w, v = eig(m)
w = w.real
print w
print v
In [29]:
p0 = np.eye(len(m))
Building a diagonal eigenvalue matrix
In [33]:
lmbda = np.zeros((3,3))
np.fill_diagonal(lmbda, w)
$p_1 = p_0A$
In [36]:
p1 = p0.dot(m)
p1
Out[36]:
$p1 = \mathbf{V} \Lambda \mathbf{V}^{-1} p_0$
In [38]:
v.dot(lmbda).dot(inv(v)).dot(p0)
Out[38]:
$p2 = p1A$
In [39]:
p2 = p1.dot(m)
p2
Out[39]:
$p2 = \mathbf{V} \Lambda^2 \mathbf{V}^{-1} p_0$
In [40]:
v.dot(lmbda ** 2).dot(inv(v)).dot(p0)
Out[40]: