Linear Algebra with Sage

<Diagonalization>


Made by SKKU Linear Algebra Lab (2011)



<Diagonalizing an @@n \times n@@ Matrix with @@n@@ linearly independent eigenvectors>

Step 1. Find @@n@@ linearly independent eigenvectors of @@A@@, say @@\textbf{p}_{1},\textbf{p}_{2}, \cdots,\textbf{p}_{n}@@.

Step 2. Form the matrix @@P=[\textbf{p}_{1},\textbf{p}_{2}, \cdots,\textbf{p}_{n}]@@.

Step 3. The matrix @@P^{-1}AP@@ will be diagonal and will have the eigenvalues
corresponding to @@A@@ say @@\textbf{p}_{1},\textbf{p}_{2}, \cdots,\textbf{p}_{n}@@ respectively as its successive diagonal entries.

  (만일 @@n@@개의 일차독립인 고유벡터가 존재하면 위의 순서대로 행렬의 대각화가 가능하다)


Define a matrix @@A@@. (행렬 @@A@@를 생성한다.)

A=matrix([[-2,0,0,0],[0,-2,5,-5],[0,0,3,0],[0,0,0,3]]); A

[-2  0  0  0]

[ 0 -2  5 -5]

[ 0  0  3  0]

[ 0  0  0  3]


Find eigenvalues of @@A@@. (@@A@@의 고유값을 모두 구한다.)

A.eigenvalues()

[3, 3, -2, -2] (algebraic multiplicity, 중근 존재)


Find eigenvectors of @@A@@. (각각의 고유값에 대응하는 @@A@@의 모든 고유벡터를 구한다.)

ev=A.eigenvectors_right(); ev

[(3, [(0, 1, 0, -1),(0, 0, 1, 1)], 2), (-2, [(1, 0, 0, 0),(0, 1, 0, 0)], 2)]


(위의 경우에는 각각의 고유값이 algebraic multiplicity = geometric multiplicity 이므로 4개의 일차독립인 고유벡터가 존재한다. 만일 @@n@@개의 일차독립인 고유벡터가 존재하지 않으면, 행렬의 대각화가 불가능하다. 하지만 이 경우에도 거의 대각행렬 모양인 Jordan 표준형을 구할 수는 있다.)

Read: http://matrix.skku.ac.kr/MT2010/MT2010.htm


Find a matrix @@P@@ and its inverse.(행렬 @@A@@를 대각화하는 행렬 @@P@@를 구하고 그 역행렬을 구한다. @@P=[[\textbf{v}_1]:[\textbf{v}_2]:[\textbf{v}_3]:[\textbf{v}_4]]@@ )

P=matrix([ev[0][1][0],ev[0][1][1],ev[1][1][0],ev[1][1][1]]).transpose();

PI=P.inverse();

P, PI

(

[ 0  0  1  0]  [ 0  0  1 -1]

[ 1  0  0  1]  [ 0  0  1  0]

[ 0  1  0  0]  [ 1  0  0  0]

[-1  1  0  0], [ 0  1 -1  1]

)


Diagonalize matrix @@A@@. (행렬 @@A@@를 대각화할 수 있다. @@D=P^{-1}AP@@가 고유값을 대각 성분으로 하는@@A@@와 닮음인 대각선행렬이다. 이 과정이 행렬의 대각화이다.)

PI*A*P

[ 3  0  0  0]

[ 0  3  0  0]

[ 0  0 -2  0]

[ 0  0  0 -2]