Matrixrekening: Matrices in Python
Rekenen met matrices en vectoren
Je kunt in Python gemakkelijk matrices optellen, aftrekken, vermenigvuldigen (ook scalair) en machtsverheffen. Voorbeelden illustreren dit het beste.
Rekenen met matrices en vectoren
>>> import numpy as np
>>> A = np.array([[1, 2, 3], [4, 5, 6]]); print(A)
[[1 2 3]
[4 5 6]]
>>> B = np.diag([1,2,3]); print(B)
[[1 0 0]
[0 2 0]
[0 0 3]]
>> At = np.transpose(A); print(At) # getransponeerde van A
[[1 4]
[2 5]
[3 6]]
>>> A.dot(B) # matrixvermenigvuldiging als methode
array([[ 1, 4, 9],
[ 4, 10, 18]])
>>> print( A @ B) # matrixvermenigvuldiging als operator
[[ 1 4 9]
[ 4 10 18]]
>>> print(A @ At)
[[14 32]
[32 77]]
>>> C = At @ A; print(C)
[[17 22 27]
[22 29 36]
[27 36 45]]
>>> print(C + B) # optelling van matrices
[[18 22 27]
[22 31 36]
[27 36 48]]
>>> print(3*A) # scalaire vermenigvuldiging
[[ 3 6 9]
[12 15 18]]
>>> v = np.array([[1],[2],[3]]); print(v)
[[1]
[2]
[3]]
>>> print(A @ v) # matrix-vector vermenigvuldiging
[[14]
[32]]
>>> print(vt @ At) # vector-matrix vermenigvuldiging
[[14 32]]
>>>
>>> import numpy.linalg as la
>>> Bmat = matrix(B) # overgang van array naar matrix datastructuur
>>> la.matrix_power(Bmat, 3) # machtsverheffing: B^3 = B @ B @ B
matrix([[ 1, 0, 0],
[ 0, 8, 0],
[ 0, 0, 27]])
>>> la.matrix_power(Bmat, -1) # inverse als macht
matrix([[1. , 0. , 0. ],
[0. , 0.5 , 0. ],
[0. , 0. , 0.33333333]])
>>> la.inv(B) # inverse array
array([[1. , 0. , 0. ],
[0. , 0.5 , 0. ],
[0. , 0. , 0.33333333]])
Als je optellen, aftrekken, vermenigvuldigen en machtsverheffen wilt toepassen op componenten van vectoren of op matrixelementen, dan kan dat ook. We geven wat voorbeelden.
Operaties op matrixelementen
>>> print(A)
[[1 2 3]
[4 5 6]]
>>> print(A**2)
[[ 1 4 9]
[16 25 36]]
>>> print(A*A)
[[ 1 4 9]
[16 25 36]]
>>> print(A / A)
[[1. 1. 1.]
[1. 1. 1.]]
Ontgrendel volledige toegang