test_eigen.py a1= [[ 0.5 0.33333333 0.25 0.2 ] [ 0.33333333 0.25 0.2 0.16666667] [ 0.25 0.2 0.16666667 0.14285714] [ 0.2 0.16666667 0.14285714 0.125 ]] lambda= [ 9.77556281e-01 6.22678235e-02 1.82125544e-03 2.13065856e-05] vectors= [[ 0.69524173 0.66277303 0.2722824 -0.05686079] [ 0.50244805 -0.18857925 -0.7387851 0.40765231] [ 0.395998 -0.4630991 -0.04915549 -0.79139658] [ 0.32767436 -0.55741278 0.61452633 0.45197113]] det|a - lambda*I| should be near zero check eig = 0.977556281151 , det = 8.23444432696e-17 check eig = 0.0622678234923 , det = 3.60910979306e-21 check eig = 0.00182125543747 , det = -5.25933318744e-22 check eig = 2.1306585633e-05 , det = -3.79817496756e-21 sum of abs of dot product of all v should be near zero orthogonal should be near zero = 2.61041188665e-14 a1*v = lambda*v difference should be near zero len(ve)= 4 va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 0 0 0] trace = sum ? 1.04166666667 1.04166666667 max sum row col > max abs eigenvalue? 1.28333333333 0.977556281151 test complex eigenvalues on diagonal a2= [[ 0.+0.j 0.+0.j 0.+0.j 0.+0.j] [ 0.+0.j 1.+1.j 0.+0.j 0.+0.j] [ 0.+0.j 0.+0.j 2.+2.j 0.+0.j] [ 0.+0.j 0.+0.j 0.+0.j 3.+3.j]] lambda= [ 0.+0.j 1.+1.j 2.+2.j 3.+3.j] vectors= [[ 1.+0.j 0.+0.j 0.+0.j 0.+0.j] [ 0.+0.j 1.+0.j 0.+0.j 0.+0.j] [ 0.+0.j 0.+0.j 1.+0.j 0.+0.j] [ 0.+0.j 0.+0.j 0.+0.j 1.+0.j]] det|a - lambda*I| should be near zero check eig = 0j , det = 2.36205593348e-09 check eig = (1+1j) , det = 2.36205593348e-09 check eig = (2+2j) , det = 2.36205593348e-09 check eig = (3+3j) , det = 2.36205593348e-09 sum of abs of dot product of all v should be near zero orthogonal should be near zero = 0.0 a1*v = lambda*v difference should be near zero len(ve)= 4 va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 1 0 0] va= [0 0 0 0] ve= [0 0 2 0] va= [0 0 0 3] ve= [0 0 0 3] trace = sum ? (6+6j) (6+6j) max sum row col > max abs eigenvalue? 4.24264068712 4.24264068712 generate random matrix, find and test eigenvalues a3= [[ 0.05694755 0.80135883 0.1878449 0.04188963] [ 0.67674808 0.67773654 0.367826 0.56855318] [ 0.68535587 0.53457797 0.03402587 0.19757729] [ 0.34421867 0.29501979 0.43387846 0.6237352 ]] lambda= [ 1.70744075 -0.433552 -0.02306597 0.14162236] vectors= [[ 0.38448597 0.62496189 0.23459936 -0.34966034] [ 0.66709117 -0.21912589 -0.17509716 0.06045826] [ 0.42659903 -0.73237473 0.77266199 -0.57919652] [ 0.47452417 0.15822053 -0.56329173 0.73390315]] det|a - lambda*I| should be near zero check eig = 1.70744075126 , det = 2.36205593348e-09 check eig = -0.433551998058 , det = 2.36205593348e-09 check eig = -0.0230659675991 , det = 2.36205593348e-09 check eig = 0.141622361626 , det = 2.36205593348e-09 sum of abs of dot product of all v should be near zero orthogonal should be near zero = 1.72825240433 a1*v = lambda*v difference should be near zero len(ve)= 4 va= [0 0 0 0] ve= [0 1 0 0] va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 0 0 0] va= [0 0 0 0] ve= [0 0 0 0] trace = sum ? 1.39244514723 1.39244514723 max sum row col > max abs eigenvalue? 2.30869312694 1.70744075126