Python與矩陣論——特征值與特征向量


Python計算特征值與特征向量案例

例子1

import numpy as np
A = np.array([[3,-1],[-1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 3 -1]
 [-1  3]]
打印特征值a:
[4. 2.]
打印特征向量b:
[[ 0.70710678  0.70710678]
 [-0.70710678  0.70710678]]

例子2

import numpy as np
A = np.array([[-1,1,0],[-4,3,0],[1,0,2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[-1  1  0]
 [-4  3  0]
 [ 1  0  2]]
打印特征值a:
[2. 1. 1.]
打印特征向量b:
[[ 0.          0.40824829  0.40824829]
 [ 0.          0.81649658  0.81649658]
 [ 1.         -0.40824829 -0.40824829]]

例子3

import numpy as np
A = np.array([[-2,1,1],[0,2,0],[-4,1,3]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[-2  1  1]
 [ 0  2  0]
 [-4  1  3]]
打印特征值a:
[-1.  2.  2.]
打印特征向量b:
[[-0.70710678 -0.24253563  0.30151134]
 [ 0.          0.          0.90453403]
 [-0.70710678 -0.9701425   0.30151134]]

特征值

知識點:【奇異矩陣】
  • 判斷矩陣是不是方陣(即行數和列數相等的矩陣。若行數和列數不相等,那就談不上奇異矩陣和非奇異矩陣)。 
  • 看矩陣的行列式|A|是否等於0,若等於0,稱矩陣A為奇異矩陣;若不等於0,稱矩陣A為非奇異矩陣。
    1. 若|A|≠0可知矩陣A可逆,可逆矩陣就是非奇異矩陣,非奇異矩陣也是可逆矩陣。 
    2. 若A為奇異矩陣,則AX=0有無窮解,AX=b有無窮解或者無解。
    3. 若A為非奇異矩陣,則AX=0有且只有唯一零解,AX=b有唯一解。

特征向量

總結:

特征值和特征向量的計算方法:

特征值與特征向量

特征值的性質:

特征向量的性質

 

例題1

 
import numpy as np
A = np.array([[1,2,2],[2,1,2],[2,2,1]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[1 2 2]
 [2 1 2]
 [2 2 1]]
打印特征值a:
[-1.  5. -1.]
打印特征向量b:
[[-0.81649658  0.57735027  0.        ]
 [ 0.40824829  0.57735027 -0.70710678]
 [ 0.40824829  0.57735027  0.70710678]]

例題2

import numpy as np
A = np.array([[2,-3,1],[1,-2,1],[1,-3,2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 2 -3  1]
 [ 1 -2  1]
 [ 1 -3  2]]
打印特征值a:
[2.09037533e-15+0.00000000e+00j 1.00000000e+00+5.87474805e-16j
 1.00000000e+00-5.87474805e-16j]
打印特征向量b:
[[0.57735027+0.j         0.84946664+0.j         0.84946664-0.j        ]
 [0.57735027+0.j         0.34188085-0.11423045j 0.34188085+0.11423045j]
 [0.57735027+0.j         0.17617591-0.34269135j 0.17617591+0.34269135j]]

例題3

import numpy as np
A = np.array([[2,-1,2],[5,-3,3],[-1,0,-2]])
print('打印A:\n{}'.format(A))
a, b = np.linalg.eig(A)
print('打印特征值a:\n{}'.format(a))
print('打印特征向量b:\n{}'.format(b))
打印A:
[[ 2 -1  2]
 [ 5 -3  3]
 [-1  0 -2]]
打印特征值a:
[-0.99998465+0.00000000e+00j -1.00000768+1.32949166e-05j
 -1.00000768-1.32949166e-05j]
打印特征向量b:
[[ 0.57735027+0.00000000e+00j  0.57735027+7.67588259e-06j
   0.57735027-7.67588259e-06j]
 [ 0.57735913+0.00000000e+00j  0.57734584+1.53518830e-05j
   0.57734584-1.53518830e-05j]
 [-0.57734141+0.00000000e+00j -0.5773547 +0.00000000e+00j
  -0.5773547 -0.00000000e+00j]]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM