Sunteți pe pagina 1din 8

Blokmatrices

Soms kan het handig zijn een matrix in zogenaamde blokken op te delen, vooral als sommige
van deze blokken uit louter nullen bestaan. Berekeningen kunnen hierdoor soms aanzienlijk
worden vereenvoudigd.
Voorbeeld 1. Beschouw de matrix A =
_
_
1 1 0
1 2 0
0 0 1
_
_
=
_
A
11
A
12
A
21
A
22
_
. Deze matrix
kunnen we opdelen in vier blokjes :
A
11
=
_
1 1
1 2
_
, A
12
=
_
0
0
_
, A
21
=
_
0 0
_
en A
22
= 1.
Als we nu de inverse van A willen bepalen moeten we deze aanvullen met de (3 3)-
eenheidsmatrix en vervolgens gaan vegen. Van de (22)-matrix A
11
en van de (11)-matrix
A
22
kunnen we de inverse echter zo opschrijven :
A
1
11
=
_
2 1
1 1
_
en A
1
22
= 1.
Voor de inverse van A geldt dan : A
1
=
_
_
2 1 0
1 1 0
0 0 1
_
_
=
_
B
11
B
12
B
21
B
22
_
, waarbij
B
11
= A
1
11
=
_
2 1
1 1
_
, B
12
=
_
0
0
_
, B
21
=
_
0 0
_
en B
22
= A
1
22
= 1.
We kunnen dit alsvolgt inzien :
AB =
_
A
11
A
12
A
21
A
22
__
B
11
B
12
B
21
B
22
_
=
_
A
11
B
11
+ A
12
B
21
A
11
B
12
+ A
12
B
22
A
21
B
11
+ A
22
B
21
A
21
B
12
+ A
22
B
22
_
.
Ga na dat alle matrixproducten bestaan en de gewenste afmetingen hebben. Dit stellen we
nu gelijk aan de (3 3)-eenheidsmatrix :
I =
_
_
1 0 0
0 1 0
0 0 1
_
_
=
_
I
11
I
12
I
21
I
22
_
,
waarbij
I
11
=
_
1 0
0 1
_
, I
12
=
_
0
0
_
, I
21
=
_
0 0
_
en I
22
= 1.
Dan moet dus gelden :
_
_
_
A
11
B
11
+ A
12
B
21
= I
11
, A
11
B
12
+ A
12
B
22
= I
12
,
A
21
B
11
+ A
22
B
21
= I
21
, A
21
B
12
+ A
22
B
22
= I
22
.
1
Uit A
12
=
_
0
0
_
en A
21
=
_
0 0
_
volgt dat
A
12
B
21
=
_
0 0
0 0
_
, A
12
B
22
=
_
0
0
_
, A
21
B
11
=
_
0 0
_
en A
21
B
12
= 0
voor iedere (1 2)-matrix B
21
, voor iedere (1 1)-matrix B
22
, voor iedere (2 2)-matrix B
11
en voor iedere (2 1)-matrix B
12
. Blijft over :
A
11
B
11
= I
11
, A
11
B
12
= I
12
, A
22
B
21
= I
21
en A
22
B
22
= I
22
.
Hieruit volgt tenslotte :
B
11
= A
1
11
=
_
2 1
1 1
_
, B
12
=
_
0
0
_
, B
21
=
_
0 0
_
en B
22
= A
1
22
= 1.
Meer voorbeelden kan men vinden in Lay, 2.4.
De LU-ontbinding van een matrix
Voor het oplossen van een stelsel vergelijkingen of het vinden van de inverse van een matrix
passen we het veegproces (de eliminatiemethode van Gauss of van de eliminatiemethode van
Gauss-Jordan) toe op een aangevulde matrix. In de praktijk krijgt men vaak te maken met
erg grote stelsels vergelijkingen en dus met erg grote matrices die geveegd moeten worden.
Dat veegproces laat men dan het liefst aan een computer over. Dit is echter niet zo eenvoudig
te programmeren, vooral niet als er rijverwisselingen nodig zijn.
We zullen nu een methode gaan bespreken die hiervoor vaak wordt gebruikt. Deze methode
maakt een zogenaamde LU-ontbinding of LU-decompositie van een matrix, waarbij geen
gebruik wordt gemaakt van rijverwisselingen. Als er toch rijverwisselingen nodig zijn om een
stelsel vergelijkingen op te lossen moet men dat eerst doen (de vergelijkingen in een andere
volgorde plaatsen) en daarna het algoritme toepassen (op een andere matrix).
Een LU-ontbinding of LU-decompositie van een matrix (mn)-matrix A is een product
van een inverteerbare (mm)-benedendriehoeksmatrix L (lower) en een (mn)-echelonmatrix
U (upper) zodat A = LU. Zon LU-ontbinding van een matrix A kan alsvolgt worden gebruikt
om een stelsel vergelijkingen van de vorm Ax = b op te lossen :
A = LU : Ax = b L(Ux) = b
_
_
_
Ly = b
Ux = y.
Men lost nu eerst het (driehoekige) stelsel Ly = b op door middel van terugsubstitutie. Met
de gevonden oplossing y wordt vervolgens het stelsel Ux = y opgelost waarmee de oplossing x
van het stelsel Ax = b gevonden is. Aangezien L een inverteerbare benedendriehoeksmatrix is,
zijn de elementen op de hoofddiagonaal van L allemaal ongelijk aan nul. De (tussen)oplossing
y ligt dus altijd (uniek) vast. Merk op dat ook Ux = y door middel van terugsubstitutie
opgelost kan worden.
2
Hoe vinden we nu zon LU-ontbinding of LU-decompositie van een matrix A ?
Zoals gezegd is U een echelonmatrix met dezelfde afmetingen als A. Deze vinden we door
de Gauss-eliminatie (zonder rijverwisselingen en schaling) toe te passen op A. Hierbij wordt
dus alleen aan de onderkant geveegd. De driehoeksmatrix L beschrijft vervolgens hoe de
oorspronkelijke matrix A uit U verkregen kan worden. Deze matrix L is dan altijd van de
vorm
L =
_
_
_
_
_
_
1 0 . . . 0
1
.
.
.
.
.
.

.
.
.
0
. . . 1
_
_
_
_
_
_
met enen op de hoofddiagonaal (L is dus inverteerbaar). Op de plaatsen van de sterretjes ()
komen getallen te staan die tegengesteld zijn aan de gewichten die bij de Gauss-eliminatie
gebruikt zijn om op die plaats een nul te krijgen.
Voorbeeld 2. Beschouw de matrix A =
_
_
1 2 3
2 2 5
1 2 0
_
_
.
We passen op A de Gauss-eliminatie (zonder rijverwisseling en schaling) toe :
A =
_
_
1 2 3
2 2 5
1 2 0
_
_

_
_
1 2 3
0 2 1
0 4 3
_
_

_
_
1 2 3
0 2 1
0 0 1
_
_
= U.
De matrix L heeft nu de vorm : L =
_
_
1 0 0
1 0
1
_
_
, waarbij de plaatsen van de sterretjes ()
precies overeenkomen met de plaatsen waar we hierboven een nul gecreeerd hebben tijdens de
Gauss-eliminatie. Voor de eerste nul hebben de eerste rij met 2 vermenigvuldigd en opgeteld
bij de tweede rij. Op de overeenkomstige plaats in L komt dan een 2 te staan (L beschrijft
immers hoe we uit U de matrix A weer terug kunnen vinden). Voor de tweede nul hebben
we de eerste rij van A met 1 vermenigvuldigd en opgeteld bij de derde rij. Dit geeft een 1
linksonder in de matrix L. In de tweede veegstap vermenigvuldigen we de tweede rij met 2
en tellen deze op bij de derde rij. Dit geeft een 2 op de plaats van het laatste sterretje. Dus :
L =
_
_
1 0 0
2 1 0
1 2 1
_
_
. Controle : LU =
_
_
1 0 0
2 1 0
1 2 1
_
_
_
_
1 2 3
0 2 1
0 0 1
_
_
=
_
_
1 2 3
2 2 5
1 2 0
_
_
= A.
In dit voorbeeld is A (en dus ook U) een vierkante matrix. In dat geval is U een bovendrie-
hoeksmatrix (upper). Dit is (uiteraard) niet altijd het geval :
Voorbeeld 3. Beschouw de matrix A =
_
1 1 0 5
3 5 1 8
_
, dan volgt :
A =
_
1 1 0 5
3 5 1 8
_

_
1 1 0 5
0 2 1 7
_
= U = L =
_
1 0
3 1
_
.
Dus : A =
_
1 1 0 5
3 5 1 8
_
=
_
1 0
3 1
__
1 1 0 5
0 2 1 7
_
= LU.
3
De enen op de hoofddiagonaal van L vormen een keuze. Door die keuze ligt de LU-ontbinding
van een matrix (als die bestaat) voor een groot deel vast. Merk op dat bijvoorbeeld
A =
_
2 4
4 3
_
=
_
1 0
2 1
__
2 4
0 5
_
=
_
2 0
4 1
__
1 2
0 5
_
=
_
2 0
4 5
__
1 2
0 1
_
.
Een LU-ontbinding is daarom (in het algemeen) niet uniek bepaald. Als we echter eisen dat U
de echelonmatrix is die uit A wordt verkregen met de Gauss-eliminatie (zonder rijverwisseling
en schaling) en L enen op de hoofddiagonaal heeft, dan wordt daarmee zon LU-ontbinding
grotendeels vastgelegd. Er geldt bijvoorbeeld dat
LU =
_
_
1 0 0
0 1 0
1 1
_
_
_
_
1 0 1
0 1 1
0 0 0
_
_
=
_
_
1 0 1
0 1 1
1 1 2
_
_
= A
voor iedere keuze van R. De afspraak dat L enen op de hoofddiagonaal heeft legt de
waarde van echter vast ( = 1). Merk op dat door de afspraak dat U de echelonmatrix
is die uit A wordt verkregen met de Gauss-eliminatie (zonder rijverwisseling en schaling) de
diagonaalelementen van U worden vastgelegd.
Niet elke matrix is zonder rijverwisselingen te vegen tot een echelonmatrix. Dit betekent dat
een LU-ontbinding van (bijvoorbeeld) de matrix A =
_
0 1
1 2
_
niet bestaat, terwijl voor
B =
_
1 2
0 1
_
geldt dat B = LU met L = I =
_
1 0
0 1
_
en U = B =
_
1 2
0 1
_
.
Zo bestaat er ook geen LU-ontbinding van A =
_
_
1 1 0
1 1 1
0 1 1
_
_
. Immers :
A =
_
_
1 1 0
1 1 1
0 1 1
_
_

_
_
1 1 0
0 0 1
0 1 1
_
_
en dit is zonder rijverwisselingen niet (verder) te vegen tot een echelonmatrix, terwijl :
B =
_
_
1 1 0
0 1 1
1 1 1
_
_

_
_
1 1 0
0 1 1
0 0 1
_
_
= U = L =
_
_
1 0 0
0 1 0
1 0 1
_
_
.
In de praktijk wordt de volgorde van de vergelijkingen van een groot stelsel vaak zo bepaald
dat bij het vegen steeds gekozen wordt voor een pivot met de grootst mogelijke absolute
waarde. Deze methode geeft de grootst mogelijke nauwkeurigheid en wordt wel partial
pivoting genoemd (zie ook : Lay, pagina 20). Een kleine pivot moet met (relatief) grote
getallen vermenigvuldigd worden bij het vegen. Hierdoor kunnen kleine onnauwkeurigheden
(afrondfouten en dergelijke) grote gevolgen hebben. We gaan hier verder niet op in.
4
Enkele numerieke methoden
We bekijken twee methoden om oplossingen van een stelsel vergelijkingen iteratief te benade-
ren. We gaan uit van een stelsel vergelijkingen van de vorm Ax = b dat uniek oplosbaar is (A
is dus inverteerbaar). Beide methoden zijn gebaseerd op een recursief algoritme van de vorm
Mx
k+1
= Nx
k
+ b, k = 0, 1, 2, . . . ,
waarbij A = M N. Als de rij {x
k
}

k=0
convergeert naar een vector x

, dan geldt :
Mx

= Nx

+ b (M N)x

= b Ax

= b.
Dus : x

is de (unieke) oplossing van Ax = b.


De splitsing A = M N kan op verschillende manieren worden uitgevoerd. Bij de methode
van Jacobi is M een diagonaalmatrix met op de hoofddiagonaal de diagonaalelementen van
A en bij de methode van Gauss-Seidel is M een benedendriehoeksmatrix waarvan het
benedendriehoeksdeel gelijk is aan dat van A.
Problemen die zich hierbij voordoen zijn :
1. De methoden werken niet altijd (de methode van Jacobi werkt bijvoorbeeld niet als A
een nul op de hoofddiagonaal heeft).
2. De processen convergeren soms tergend langzaam of helemaal niet.
3. Hoe moet men de startvector x
0
kiezen om het proces (zo snel mogelijk) te laten con-
vergeren ?
4. Als men kan kiezen, welke methode werkt dan beter ?
We bekijken een voorbeeld en gaan daarna kort in op enkele van deze problemen.
Voorbeeld 4. Beschouw het stelsel Ax = b met A =
_
_
3 1 1
1 4 2
2 1 5
_
_
en b =
_
_
6
5
1
_
_
.
De methode van Jacobi. M =
_
_
3 0 0
0 4 0
0 0 5
_
_
en N =
_
_
0 1 1
1 0 2
2 1 0
_
_
. Dus :
My = Nx + b
_

_
3y
1
= x
2
+x
3
+6
4y
2
= x
1
2x
3
+5
5y
3
= 2x
1
x
2
1.
Als we beginnen met startvector x
0
= o, dan vinden we :
x
0
=
_
_
0
0
0
_
_
:
_

_
x
1
= 0
x
2
= 0
x
3
= 0
=
_

_
y
1
= (0 0 + 6)/3
y
2
= (0 0 + 5)/4
y
3
= (0 0 1)/5
= x
1
=
_
_
2
5/4
1/5
_
_
.
5
De volgende stap is dan :
_

_
x
1
= 2
x
2
= 5/4
x
3
= 1/5
=
_

_
y
1
= (5/4 1/5 + 6)/3 = 91/60
y
2
= (2 + 2/5 + 5)/4 = 37/20
y
3
= (4 5/4 1)/5 = 25/20
en dus x
2
=
_
_
91/60
37/20
5/4
_
_
. Evenzo volgt x
3
=
_
_
29/30
541/240
353/300
_
_
en x
4
=
_
_
3083/3600
52/25
83/80
_
_
.
Oftewel (afgerond op twee decimalen) :
x
1
=
_
_
2, 00
1, 25
0, 20
_
_
, x
2
=
_
_
1, 52
1, 85
1, 25
_
_
, x
3
=
_
_
0, 97
2, 25
1, 18
_
_
, x
4
=
_
_
0, 86
2, 08
1, 04
_
_
, . . . .
De methode van Gauss-Seidel. M =
_
_
3 0 0
1 4 0
2 1 5
_
_
en N =
_
_
0 1 1
0 0 2
0 0 0
_
_
. Dus :
My = Nx + b
_

_
3y
1
= x
2
+x
3
+6
y
1
+4y
2
= 2x
3
+5
2y
1
+y
2
+5y
3
= 1.
Als we beginnen met startvector x
0
= o, dan vinden we :
_

_
x
1
= 0
x
2
= 0
x
3
= 0
=
_

_
y
1
= (0 0 + 6)/3 = 2
y
2
= (0 + 5 + 2)/4 = 7/4
y
3
= (1 4 7/4)/5 = 27/20
= x
1
=
_
_
2
7/4
27/20
_
_
.
De volgende stap is dan :
_

_
x
1
= 2
x
2
= 7/4
x
3
= 27/20
=
_

_
y
1
= (7/4 27/20 + 6)/3 = 29/30
y
2
= (27/10 + 5 + 29/30)/4 = 260/120 = 13/6
y
3
= (1 29/15 13/6)/5 = 153/150 = 51/50
en dus x
2
=
_
_
29/30
13/6
51/50
_
_
. Evenzo volgt x
3
=
_
_
221/225
359/180
487/500
_
_
en x
4
=
_
_
6821/6750
1343/675
1879/1875
_
_
.
Oftewel (afgerond op twee decimalen) :
x
1
=
_
_
2, 00
1, 75
1, 35
_
_
, x
2
=
_
_
0, 97
2, 17
1, 02
_
_
, x
3
=
_
_
0, 94
1, 99
0, 97
_
_
, x
4
=
_
_
1, 01
1, 99
1, 00
_
_
, . . . .
6
De exacte oplossing in voorbeeld 4 is x =
_
_
1
2
1
_
_
. We zien dat de methode van Gauss-Seidel
(behoorlijk) sneller convergeert dan de methode van Jacobi. Dat is vaak het geval, maar daar
staat tegenover dat de methode van Gauss-Seidel wat ingewikkelder is dan die van Jacobi. Er
zijn echter ook voorbeelden te construeren waarbij de methode van Jacobi juist sneller gaat.
Er zijn ook voorbeelden te construeren waarin een van de methoden niet convergeert of zelfs
beide niet convergeren.
Er bestaat echter ook een eenvoudige conditie die garandeert dat beide methoden convergeren.
Deze conditie is niet noodzakelijk (ook in andere gevallen kan convergentie optreden), maar
in de praktijk kan vaak aan deze voorwaarde worden voldaan. In dat geval is convergentie
voor beide methoden dus gegarandeerd.
Voor deze conditie is het noodzakelijk dat de matrix A vierkant is. Een vierkante matrix A
heet strikt diagonaal dominant als de absolute waarde van elk diagonaalelement van A
groter is dan de som van de absolute waarden van de andere elementen in dezelfde rij. Men
kan aantonen dat in dat geval de matrix A inverteerbaar is (Ax = b is dus uniek oplosbaar)
en dat zowel de methode van Jacobi als de methode van Gauss-Seidel convergeert naar de
unieke oplossing voor iedere keuze van de startvector x
0
. Het bewijs van deze bewering laten
we hier buiten beschouwing.
Voorbeeld 5. De matrix A in voorbeeld 4 is strikt diagonaal dominant, want :
A =
_
_
3 1 1
1 4 2
2 1 5
_
_
|3| > |1| +| 1| = 2
|4| > | 1| +|2| = 3
|5| > |2| +|1| = 3.
Voorbeeld 6. Beschouw het stelsel Ax = b met A =
_
_
10 1 1
1 10 1
1 1 10
_
_
en b =
_
_
12
12
12
_
_
.
Gemakkelijk is te zien dat A strikt diagonaal dominant is (want : |10| > |1| +|1| = 2) en dat
de oplossing x =
_
_
1
1
1
_
_
is.
De methode van Jacobi. M =
_
_
10 0 0
0 10 0
0 0 10
_
_
en N =
_
_
0 1 1
1 0 1
1 1 0
_
_
. Dus :
My = Nx + b
_

_
10y
1
= x
2
x
3
+12
10y
2
= x
1
x
3
+12
10y
3
= x
1
x
2
+12.
7
Als we beginnen met startvector x
0
= o, dan vinden we :
x
1
=
_
_
1, 2
1, 2
1, 2
_
_
, x
2
=
_
_
0, 96
0, 96
0, 96
_
_
, x
3
=
_
_
1, 008
1, 008
1, 008
_
_
, x
4
=
_
_
0, 9984
0, 9984
0, 9984
_
_
, . . . .
De methode van Gauss-Seidel. M =
_
_
10 0 0
1 10 0
1 1 10
_
_
en N =
_
_
0 1 1
0 0 1
0 0 0
_
_
. Dus :
My = Nx + b
_

_
10y
1
= x
2
x
3
+12
y
1
+10y
2
= x
3
+12
y
1
+y
2
+10y
3
= +12.
Als we beginnen met startvector x
0
= o, dan vinden we :
x
1
=
_
_
1, 200
1, 080
0, 972
_
_
, x
2
=
_
_
0, 994800
1, 003320
1, 000188
_
_
, x
3
=
_
_
0, 999649200
1, 000016280
1, 000033452
_
_
, . . . .
8

S-ar putea să vă placă și