Lineaire afbeeldingen: Lineaire afbeeldingen in Python
Kern en beeld
Kant-en-klare methodes voor het berekenen van de kern en het beeld van een matrix worden alleen door het Symbolic Python (sympy
) pakket aangeboden.
>>> import sympy as sy
>>> sy.init_printing(use_unicode=True) # voor iets mooiere uitvoer
>>> A = sy.Matrix([[1, 0, 1], [2, 1, 1], [-1, 1, -2]]); A
⎡1 0 1 ⎤
⎢ ⎥
⎢2 1 1 ⎥
⎢ ⎥
⎣-1 1 -2⎦
>>> A.nullspace() # opspannende vectoren voor de kern van A
⎡⎡-1⎤⎤
⎢⎢ ⎥⎥
⎢⎢1 ⎥⎥
⎢⎢ ⎥⎥
⎣⎣1 ⎦⎦
>>> A.rank() # rang van A
2
>>> A.columnspace() # opspannende vectoren voor het beeld van A
⎡⎡1 ⎤ ⎡0⎤⎤
⎢⎢ ⎥ ⎢ ⎥⎥
⎢⎢2 ⎥, ⎢1⎥⎥
⎢⎢ ⎥ ⎢ ⎥⎥
⎣⎣-1⎦ ⎣1⎦⎦
Het Symbolic Python (scipy
) pakket heeft een lineaire algebra module die met MATLAB vergelijkbare functies bevat. Voor numerieke berekeningen heeft deze aanpak de voorkeur.
>>> import scipy.linalg as la
>>> A = sp.array(A); print(A)
[[1 0 1]
[2 1 1]
[-1 1 -2]]
>>> la.null_space(A) # opspannende vectoren voor de kern van A
[[-0.57735027]
[ 0.57735027]
[ 0.57735027]]
>>> from numpy.linalg import matrix_rank
>>> matrix_rank(A) # rang van A
2
>>> la.orth(A) # opspannende vectoren voor het beeld van A
[[-4.26401433e-01 -5.60016277e-18]
[-6.39602149e-01 -7.07106781e-01]
[ 6.39602149e-01 -7.07106781e-01]]
Ontgrendel volledige toegang