| > | with(linalg); |
Warning, the protected names norm and trace have been redefined and unprotected
![]()
![]()
![]()
![]()
![]()
![]()
| > | A:=matrix([[1, -1, 0, 0, 0, 0], [4, 5, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1], [0, 0, 0, 0, -1, 0]]); |
| > | charpoly(A, t); |
| > | factor(%); |
| > | factor(minpoly(A, t)); |
| > | #A is not diagonalizable because its minimal polynomial has repeated roots. |
| > | B:=matrix([[3, 0, 0, 0, 0, 0], [0, 3, 0, 0, 0, 0], [0, 0, 0, -1, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 1], [0, 0, 0, 0, -1, 0]]); |
| > | factor(charpoly(B,t)); |
| > | factor(minpoly(B, t)); |
| > | #B is diagonalizable over the complex numbers. Lets verify that this is indeed the minimal polynomial. |
| > | multiply(B-3, B^2 + 1); |
| > | #Lets diagonalize B. We calculate the eigenspaces |
| > | ESP(3) := kernel(B-3); |
| > | #Check: |
| > | multiply(B, ESP(3)[1]); |
| > | ESP(I):=kernel(B-I); |
| > | #Check: |
| > | multiply(B, ESP(I)[1]); |
| > | evalm(I*ESP(I)[1]); |
| > | ESP(minusI):=kernel(B+I); |
| > | #Check: |
| > | multiply(B, ESP(minusI)[1]); |
| > | evalm(-I*ESP(minusI)[1]); |
| > | #By putting the eigenvectors together we get a matrix M that diagonalizes B |
| > | M:=transpose(matrix([ESP(3)[1], ESP(3)[2], ESP(I)[1], ESP(I)[2], ESP(minusI)[1], ESP(minusI)[2]])); |
| > | multiply(inverse(M), B, M); |
| > | #Later we'll learn about the Jordan form. If a matrix is diagonalizable then its Jordan form is diagonal. Else, it's not. |
| > | jordan(A); |
| > | jordan(B); |
| > | #In fact, Maple can givs us the transition matrix too. |
| > | jordan(B, 'N'); |
| > | print(N); |
| > | multiply(inverse(N), B, N); |
| > |