import matplotlib
if not hasattr(matplotlib.RcParams, "_get"):
matplotlib.RcParams._get = dict.get
Eksempler på matrixalgebra i SymPy#
Denne notebook viser klassiske matrixoperationer med SymPy (symbolsk matematik).
import sympy as sp
sp.init_printing()
# Definér to 2x2-matricer
A = sp.Matrix([[1, 2],
[3, 4]])
B = sp.Matrix([[5, 6],
[7, 8]])
A, B
1) Matrixaddition og -subtraktion#
C = A + B
D = A - B
C, D
2) Skalarmultiplikation#
E = 3 * A
E
3) Matrixmultiplikation#
F = A * B # eller A @ B i nyere Python, men SymPy bruger '*'
F
4) Transponering#
A_T = A.T
A_T
5) Invers matrix#
A_inv = A.inv()
A_inv
6) Determinant#
det_A = A.det()
det_A
7) Rang#
rank_A = A.rank()
rank_A
8) Egenværdier og egenvektorer#
eigenvals = A.eigenvals() # dict: {egenværdi: algebraisk multiplicitet}
eigenvects = A.eigenvects() # liste af (egenværdi, geom. multiplicitet, [egenvectors])
eigenvals, eigenvects
9) Løsning af lineære ligningssystemer \(Ax=b\)#
b = sp.Matrix([1, 2])
x = sp.linsolve((A,b)) # numerisk stabil i SymPy; finder eksakt løsning som rationale tal
x
10) Karakteristisk polynomium#
lambda_symbol = sp.symbols('λ') # bare til visning
charpoly = A.charpoly(lambda_symbol)
charpoly.as_expr()
11) Diagonalisering (hvis mulig)#
P, D = A.diagonalize() # giver fejl hvis den ikke er diagonaliserbar
P, D