3 Basis rekenen met matrices en vectoren
3.1 Matrices en vectoren optellen (beschouw hier een vector ook als een matrix)
Het optellen van twee matrices of twee vectoren kan alleen als deze twee matrices of vectoren dezelfde
dimensie hebben en werkt als volgt:
| = | |
| = | |
Je ziet dat ieder element in het resultaat gelijk is aan de optelling van de elementen met dezelfde indexen
uit de matrices die bij elkaar worden opgeteld.
Eigenschappen van optellen:
| Commutatieve eigenschap |
| Associatieve eigenschap |
Voorbeelden
3.2 Matrices en vectoren vermenigvuldigen met een getal (scalaire vermenigvuldiging) (beschouw hier
een vector ook als een matrix):
Matrices en vectoren kun je met een getal vermenigvuldigen. Stel een vector wordt met 2 vermenigvuldigd,
dan is het gewenste resultaat dat de lengte van de vector twee keer zo groot wordt terwijl de
richting gelijk blijft. Als ieder element van de vector met 2 wordt vermenigvuldigd wordt is
dit het geval. Bij een vermenigvuldiging van een getal met een matrix wordt precies hetzelfde
gedaan.
Ofwel:
Eigenschappen van scalaire vermenigvuldiging:
| Commutatieve eigenschap |
(de nulmatrix) | Inverse eigenschap optellen |
De nulmatrix is een matrix waarin ieder element gelijk is aan 0.
Voorbeeld
Voorbeeld
3.3 Matrix vermenigvuldigen met matrix (beschouw hier een vector ook als een matrix)
Het vermenigvuldigen van matrices is een heel stuk lastiger. De matrix vermenigvuldiging
van matrix
en matrix
kan alleen als het aantal
kolommen van gelijk is
aan het aantal rijen in
en werkt als volgt:
Het resultaat van
met een
matrix
en een
matrix is een
matrix met
dimensie .
Dit ziet er ingewikkeld uit dus een voorbeeld is gewenst:
Voorbeeld
Stap voor stap wordt dit voorbeeld uitgewerkt in de video
http://www.youtube.com/watch?v=sYlOjyPyX3g.
.
Kan niet de eerste matrix heeft niet hetzelfde aantal kolommen als dat de tweede matrix rijen
heeft.
Eigenschap van matrix vermenigvuldiging:
| Associatieve eigenschap |
|
Voor een vector gelden de zelfde regels voor optellen van vectoren en scalaire vermenigvuldiging van een
vector als bij een matrix.
3.3.1 Door matrix delen
De matrix deling bestaat niet. Wel zal er later in de tekst worden uitgelegd hoe je de inverse
van een vierkante
matrix kan berekenen.
Er geldt dan .
noemen we de eenheidsmatrix. Deze matrix heeft de zelfde dimensie als
en
. Alle
elementen in
zijn 0 behalve die op de diagonaal van linksboven naar rechtsonder, die zijn alle maal gelijk aan 1. Voorbeeld in
:
3.3.2 Matrix transponeren
De getransponeerde
van een
matrix is een
matrix waarin de
rijen van de
kolommen van
worden. Voorbeeld:
Opgaven:
-
10.
- Gegeven: ,
,
,
,
,
Bereken of geef aan waarom iets niet kan:
-
a)
-
| -
b)
-
| -
c)
-
|
-
d)
-
| -
e)
-
| -
f)
-
|
-
g)
-
| -
h)
-
| -
i)
-
|
-
j)
-
| -
k)
-
| -
l)
-
|
-
m)
-
| -
n)
-
| -
o)
-
|
-
p)
-
| -
q)
-
| -
r)
-
|
-
11.
- Waarom kan de matrix vermenigvuldiging
van matrix en matrix
alleen als het aantal
kolommen van gelijk is
aan het aantal rijen in ?
-
12.
- Gegeven zijn de getallen
en en
de matrices
en
-
a)
- Bereken
, ,
en
-
b)
- Wat valt je op?
-
c)
- Waarom heeft Matrix vermenigvuldigen in het algemeen geen commutatieve eigenschap
(
is niet geldig) zelfs niet als beide matrices vierkant zijn (dwz evenveel rijen als kolommen)
-
d)
- Waarom kunnen twee vectoren niet op de manier als matrices worden vermenigvuldigd?
-
13.
- Een matrix heet symmetrisch als hij vierkant is en als geldt
voor
alle
en .
Laat zien dat voor twee symmetrische matrices A en B met dimensie
, waarvoor bovendien geldt dat de diagonaalelementen gelijk zijn
(
voor
alle
en
) wel geldt
dat
(Hint: begin met een 2x2 matrix).
-
14.
- (Als het programmeren nog niet is gestart voorlopig overslaan) Maak een klasse
MatrixLA (zie het voorbeeld in de GraphicsApplet project) waarin de volgende functies worden
gedefinieerd:
-
a)
- constructor(rows, cols)
-
b)
- getRows()
-
c)
- getCols()
-
d)
- getData()
-
e)
- multiplyRight( B) ”Voert uit AB”
-
f)
- multiplyLeft( B) ”Voert uit BA”
-
g)
- multiplyScalar(double c) ”Voert uit cA”
-
h)
- add(B) ”Voert uit A+B”
-
i)
- public MatrixLA transpose()
-
j)
- public homgeenToEuclid()
Laat in alle gevallen null terugkomen als de bewerking niet mogelijk is