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