Inversmatriser#

TMA4400 Matematikk 1: Kalkulus og lineær algebra

Dato: 01. september 2025

Standard Gauss-eliminasjon med redusert trappeform#

La \(A\) være ei \(n\times n\)-matrise, og \(I_n\) være \(n\times n\)-identitetsmatrisa. For å finne inversmatrisa \(A^{-1}\), kan vi rett og slett radredusere den utvidede matrisa

\[(A|I_n)\]

slik at vi får den reduserte trappeformen

\[(I_n|A^{-1}).\]

Vi går ut i fra at pivot-elementene er forskjellig fra null.

import numpy as np

# Gauss-eliminasjon (antar at pivotelementene er forskjellig fra null i alle rader!) med redusert trappeform
def RREF(B):
    A = np.copy(B).astype(float) # vi lager en kopi av den gitte matrisa B, for å unngå å endre denne
    m,n = np.shape(B) # m=rader, n=kolonner; for å kunne oppgi den utvidede matrisa, eller tom matrise
    for k in range(0,m):
        pivot = A[k,k]
        for i in range(k,n):
            A[k,i] = A[k,i]/pivot # normaliserer pivot-elementene til 1 og endrer resten av raden fra og med kolonne k
        for j in range(0,m):
            if j != k: # vi må gjøre radredusering både under og over rader med pivot-elementer
                l = A[j,k]
                for p in range(k,n):
                    A[j,p] = A[j,p]-l*A[k,p]
    return A

Eksempel#

Vi kan bruke standard Gauss-eliminasjon med redusert trappeform på følgende utvidede matrise

\[\begin{split}(A|I_2) = \left[\begin{array}{cc|cc} 1 & 2 & 1 & 0 \\ 3 & 4 & 0 & 1 \end{array}\right].\end{split}\]
A0 = np.array([[1.,2.,1.,0.],[3.,4.,0.,1.]])
A1 = RREF(A0)
print('\nVi begynner med \n{0}\nog bruker Gauss-eliminasjon som gitt over: \n{1}'.format(np.matrix(A0),np.matrix(A1)))
Vi begynner med 
[[1. 2. 1. 0.]
 [3. 4. 0. 1.]]
og bruker Gauss-eliminasjon som gitt over: 
[[ 1.   0.  -2.   1. ]
 [ 0.   1.   1.5 -0.5]]

Vi konkluderer derfor med at

\[\begin{split}A^{-1}=\left[\begin{array}{cc} -2 & 1 \\ 1.5 & -0.5 \end{array}\right].\end{split}\]

Vi sjekker så dette ved å multiplisere \(A\) med \(A^{-1}\):

A2 = np.array([[1.,2.],[3.,4.]])
A3 = np.array([[-2.,1.],[1.5,-0.5]])
A4 = np.dot(A2,A3) # notasjonen for matrisemultiplikasjon i python
print(A4)
[[1. 0.]
 [0. 1.]]