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  unlock