import numpy as np A=np.mat([[2,-2,0], [-2,1,-2], [0,-2,0]]) print 'A=\n',A print 'A.T=\n',A.T print 'Test if A=A.T:',np.all(A==A.T) print '\n\n--------------Use linalg.eig----'D,V=np.linalg.eig(A) print 'D=',D print 'V=\n',V print '\n\nVerify the column vectors of V are the corresponding eigenvetors----' for i in range(3): Vi=V[:,i] Ui=np.dot(A,Vi) print '--------i=',i,D[i] print 'Vi=\n',Vi print 'Ui=A.V[i]=\n',Ui print 'D[i]V[i]=\n',D[i]*Vi D1=D[i]*Vi-Ui print D1.T print 'check with allclose:',np.allclose(D[i]*Vi,Ui) print '\n\nConstruct diagonal matrix with np.diag(D)----' E=np.diag(D) print 'Diagonalized matrix, E=\n',E print '\n\n The similarity transformation of A, V^t A V=d ====' s=np.dot(A,V) d=np.dot(V.T,s) print 'd=\n',d