Lineaire Algebra Document

advertisement
Linalg.nb
1
Lineaire Algebra
André Heck
© 2001 AMSTEL Instituut,
Universiteit van Amsterdam
Werk het notebook aandachtig door en maak de (genummerde) oefeningen aan het einde van elke sectie. Succes!
Å
Introductie
In dit Mathematica notebook behandelen we elementaire berekeningen uit de lineaire algebra zoals:
- basis van vectorruimte en de som en doorsnede van vectorruimten
- inproduct en uitproduct van vectoren
- optellen, vermenigvuldigen en machtsverheffen van matrices
- rang, kern, rijruimte en kolomruimte van matrices
Å
Telkens opnieuw beginnen met
In[23]:= Clear "ë"
Å
é
Vectorruimten
Definiëren van vectoren
Een vector wordt in Mathematica gerepresenteerd als een lijst (coëfficiënten tussen accolades). Bijvoorbeeld:
In[24]:=
4, 3, 5
Out[24]=
4, 3, 5
Deze vector kan in kolomnotatie op het scherm afgedrukt worden. Twee manieren zijn:
In[25]:= MatrixForm %
Out[25]//MatrixForm=
4
3
5
Linalg.nb
2
In[26]:= ColumnForm %%
Out[26]= 4
3
5
Let op: deze opdrachten zijn er alleen om een vector in mooie gedaante op het scherm te krijgen. Je kunt met de
uitvoernotatie niet rekenen zoals onderstaande opdracht aantoont:
In[27]:= %
+
%
Out[27]= 2 4
3
5
Het is vervelend om bij een grote vector alle componenten zelf in te toetsen. Meestal kan je met behulp van het
Mathematica commando Table een vector wel op een slimmere manier definiëren. Drie voorbeelden van
vectoren met steeds 100 componenten illustreren dit:
- Een vector random gevuld met gehele getallen tussen 0 en 5:
In[28]:= Table Random Integer, 5 ,
Out[28]=
3,
2,
1,
4,
1,
2,
2,
4,
3,
2,
3,
3,
5,
0,
2,
0,
5,
2,
3,
1,
100
3,
3,
4,
5,
1,
0,
1,
3,
2,
1,
0,
3,
3,
2,
2,
1,
1,
4,
1,
1,
3,
2,
1,
4,
5,
1,
3,
2,
3,
5,
0,
4,
3,
3,
5,
4,
0,
2,
1,
3,
3,
1,
4,
2,
2,
3,
0,
5,
4,
3,
5,
4,
1,
4,
0,
3,
3,
2,
1,
5,
4,
4,
2,
3,
1,
4,
0,
5,
3,
4,
0,
2,
4,
5, 3,
4, 0,
4, 5, 0
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0, 0,
0, 0,
0, 0, 0
- Een nulvector
In[29]:= Table 0,
Out[29]=
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
100
0,
0,
0,
0,
0,
0,
0,
0,
- Een vector met als i -de component i2 :
In[30]:= Table i ^ 2,
Out[30]=
é
i, 100
1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400,
441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225,
1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304,
2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721,
3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476,
5625, 5776, 5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569,
7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 9801, 10000
Elementaire bewerkingen
Het resultaat van optelling van vectoren en van scalaire vermenigvuldiging wordt gewoonweg uitgerekend:
In[31]:=
4, 3, 5
Out[31]=
6, 4, 8
+
2, 1, 3
Linalg.nb
3
In[32]:= 2 * 4, 3, 5
Out[32]=
8, 6, 10
Maar let op: Mathematica houdt niet altijd zelf bij of symbolen voor een vector, matrix of iets anders staan. Dit
verklaart resultaten zoals
In[33]:=
4, 3, 5
Out[33]=
4 + v, 3 + v, 5 + v
+
v
Gebruik het commando Dot of de operator . om het inproduct tussen twee vectoren uit te rekenen.
In[34]:= Dot
x1, x2, x3 ,
y1, y2, y3
Out[34]= x1 y1 + x2 y2 + x3 y3
In[35]:=
a, b, c . x, y, z
Out[35]= a x + b y + c z
Het uitproduct van twee vectoren kan als volgt berekend worden:
In[36]:= Cross
Out[36]=
-
x1, x2, x3 ,
y1, y2, y3
x3 y2 + x2 y3, x3 y1 - x1 y3,
-
x2 y1 + x1 y2
Om een component van een vector te kiezen gebruik je dubbele rechte haken. Een voorbeeld maakt dit duidelijk:
In[37]:= v
a, b, c, d ; v
=
3
Out[37]= c
é
Basis, som en doorsnede van vectorruimten
We bekijken de volgende vier vectoren:
In[38]:= u1
=
u2
w1
w2
=
2,
3,
1,
5,
=
=
3,
4,
- 1,
- 4,
-
1,
0,
1,
0,
0
1
0
3
;
;
;
;
Maak een matrix met de vectoren u1 en u2 als rijvectoren:
In[42]:=
u1, u2
2,
Out[42]=
-
3, 1, 0 , 3,
In[43]:= MatrixForm %
Out[43]//MatrixForm=
2
3
-
3 1 0
4 0 1
Bereken de kern van deze matrix:
-
4, 0, 1
Linalg.nb
4
In[44]:= NullSpace %%
Out[44]=
-
3,
-
2, 0, 1 , 4, 3, 1, 0
Dit betekent dat het opspansel van u1 en u2 de oplossingsverzameling is van het stelsel
- 3 x1 - 2 x2 + x4 = 0, 4 x1 + 3 x2 + x3 = 0 is.
Het uitrekenen van een basis voor de som van twee vectorruimten is eenvoudig. Zet voortbrengers van de
vectorruimten als rijvectoren in een matrix.Veeg met rijen tot kanonieke vorm. De niet-nulrijen vormen een basis
van de somruimte. Als voorbeeld berekenen we een basis van het opspansel van u1, u2, w1 en w2.
In[45]:=
u1, u2, w1, w2
2,
Out[45]=
-
3, 1, 0 , 3,
-
4, 0, 1 , 1,
-
1, 1, 0 , 5,
-
4, 0, 3
In[46]:= MatrixForm %
Out[46]//MatrixForm=
2
3
1
5
3
4
-1
-4
1
0
1
0
-
0
1
0
3
Vegen met rijen levert een basis op:
In[47]:= RowReduce %%
Out[47]=
1, 0, 0, 1 , 0, 1, 0,
1
, 0, 0, 1,
2
þþþþ
1
, 0, 0, 0, 0
2
- þþþþ
In[48]:= MatrixForm %
Out[48]//MatrixForm=
1 0 0
0 1 0
0 0 1
0 0 0
1
1
2
1
- þþþþ
2
þþþþ
0
0
1
1
0
De somruimte is 3-dimensionaal met basis
,
en
0
0
1
1
þþþþ
2
1
0
0
0
2
0
Of voor wie niet van breuken houdt:
,
en
.
0
0
2
1
1
-1
0
0
1
.
1
2
- þþþþ
Het uitrekenen van de doorsnede van twee vectorruimten is ingewikkelder. Als voorbeeld nemen we de
doorsnede van de vectorruimten opgespannen door u1, u2 en door w1, w2.
In[49]:= NullSpace
Out[49]=
-
3,
-
2, 0, 1 , 4, 3, 1, 0
In[50]:= NullSpace
Out[50]=
-
3,
-
u1, u2
w1, w2
3, 0, 1 , 4, 5, 1, 0
Linalg.nb
5
In[51]:= Join %%, %
Out[51]=
-
3,
-
2, 0, 1 , 4, 3, 1, 0 ,
-
3,
-
3, 0, 1 , 4, 5, 1, 0
In[52]:= NullSpace %
Out[52]=
1, 0,
-
4, 3
In[53]:= MatrixForm %
1
Out[53]//MatrixForm=
1
0
-4
3
1
0
De doorsnede is 1-dimensionaal en wordt opgespannen door de vector
.
-4
3
é
1. Vectorruimte
In ¶5 beschouwen we twee deelvectorruimten V1 en V2 . V1 is de oplossingsruimte van het stelsel vergelijkingen
3 x1 - 2 x2 + 2 x3 + 2 x4 - 3 x5 = 0, 2 x1 + 5 x2 - 5 x3 - 5 x4 - 2 x5 = 0,
-
x1 - x2 + x3 + x4 + x5 = 0
V2 is het opspansel van v1 , v2 , v3 en v4 gegeven door
v1 =
1
2
1 , v2 =
3
3
3
2
- 1 , v3 =
1
1
1
3
2 en v4 =
2
2
3
1
-2
2
2
Bereken een basis van V1 , V2 , V1 + V2 en V1
Å
é
V2 . Ga in dit voorbeeld na dat de dimensiestelling klopt.
Matrices
Definiëren van matrices
In[54]:= Clear "ë"
Een matrix wordt in Mathematica gerepresenteerd als een lijst van lijsten. Bijvoorbeeld:
In[55]:=
1, 2, 5 , 3, 4, 3
Out[55]=
1, 2, 5 , 3, 4, 3
In traditionele matrixnotatie komt dit overeen met:
Linalg.nb
6
In[56]:= MatrixForm %
Out[56]//MatrixForm=
1 2 5
3 4 3
Let op: MatrixForm is alleen bedoeld voor mooie matrixnotatie, niet om mee te rekenen. Kijk maar:
In[57]:= A
MatrixForm
=
1, 2 , 3, 4
Out[57]//MatrixForm=
1 2
3 4
In[58]:= A
Out[58]= 2
+
A
1 2
3 4
Met behulp van het Mathematica commando’s Table en Outer kun je een matrix soms op een slimmere manier
definiëren. Enkele voorbeelden:
In[59]:= Table x ^ i * y ^ j,
i, 4 ,
j, 4
x y, x y2 , x y3 , x y4 , x2 y, x2 y2 , x2 y3 , x2 y4 ,
x3 y, x3 y2 , x3 y3 , x3 y4 , x4 y, x4 y2 , x4 y3 , x4 y4
Out[59]=
In[60]:= MatrixForm %
Out[60]//MatrixForm=
x y x y2 x y3 x y4
x2 y x2 y2 x2 y3 x2 y4
x3 y x3 y2 x3 y3 x3 y4
x4 y x4 y2 x4 y3 x4 y4
In[61]:= Table 0,
5 , 5
0, 0, 0, 0, 0 , 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0 , 0, 0, 0, 0, 0
Out[61]=
In[62]:= MatrixForm %
Out[62]//MatrixForm=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Een matrixcoëfficient kun je kiezen met dubbele rechte haken. Je kunt ook een hele rij aanwijzen. Een voorbeeld
maakt dit duidelijk:
In[63]:= A
=
1, 2, 3 , 4, 5, 6 , 7, 8, 9
Out[63]//MatrixForm=
1 2 3
4 5 6
7 8 9
; MatrixForm A
Linalg.nb
7
In[64]:= A
2, 3
Out[64]= 6
2
In[65]:= A
4, 5, 6
Out[65]=
é
Elementaire bewerkingen
Het resultaat van optelling en vermenigvuldiging van matrices en van scalaire vermenigvuldiging wordt
gewoonweg uitgerekend:
In[66]:= A
=
1, 2 ,
3, 4
; MatrixForm A
Out[66]//MatrixForm=
1 2
3 4
In[67]:= B
=
a, 2 , b, 3
; MatrixForm B
Out[67]//MatrixForm=
a 2
b 3
In[68]:= A + B
Out[68]=
1 + a, 4 , 3 + b, 7
In[69]:= MatrixForm %
Out[69]//MatrixForm=
1+a 4
3+b 7
In[70]:= c * A
Out[70]=
c, 2 c , 3 c, 4 c
In[71]:= MatrixForm %
Out[71]//MatrixForm=
c 2c
3c 4c
Maar let op: Mathematica houdt niet altijd zelf bij of symbolen voor een vector, matrix of voor iets anders staan.
Dit verklaart resultaten zoals
In[72]:=
1, 2 , 3, 4
Out[72]=
1 + M, 2 + M , 3 + M, 4 + M
+
M
Gebruik het commando Dot of de operator . om het product tussen twee matrices of het matrix-vector product
uit te rekenen.
Linalg.nb
8
In[73]:= A
1, 2, 3 , 4, 5, 6
=
; MatrixForm A
Out[73]//MatrixForm=
1 2 3
4 5 6
In[74]:= B
a, 2 , b, 3 , c, 4
=
; MatrixForm B
Out[74]//MatrixForm=
a 2
b 3
c 4
In[75]:= A.B
a + 2 b + 3 c, 20 , 4 a + 5 b + 6 c, 47
Out[75]=
In[76]:= MatrixForm %
Out[76]//MatrixForm=
a + 2 b + 3 c 20
4 a + 5 b + 6 c 47
In[77]:= B.A
8 + a, 10 + 2 a, 12 + 3 a , 12 + b, 15 + 2 b, 18 + 3 b , 16 + c, 20 + 2 c, 24 + 3 c
Out[77]=
In[78]:= MatrixForm %
Out[78]//MatrixForm=
8 + a 10 + 2 a 12 + 3 a
12 + b 15 + 2 b 18 + 3 b
16 + c 20 + 2 c 24 + 3 c
In[79]:= v
=
7, 8, 9 ; MatrixForm v
Out[79]//MatrixForm=
7
8
9
In[80]:= A . v
Out[80]=
50, 122
In[81]:= MatrixForm %
Out[81]//MatrixForm=
50
122
In[82]:= %% . A
Out[82]=
538, 710, 882
In[83]:= MatrixForm %
Out[83]//MatrixForm=
538
710
882
Linalg.nb
9
Nogmaals: het symbool * is voor scalaire vermenigvuldiging en voor elementsgewijze vermenigvuldiging en niet
voor matrix-vermenigvuldiging of voor matrix-vector-rmenigvuldiging.
In[84]:=
1, 2 , 3, 4
Out[84]=
a, 2 b , 3 c, 4 d
*
a, b , c, d
Net zo: Het symbool ^ is bedoeld voor elementsgewijs machtsverheffen en niet voor machtsverheffen van
vierkante matrices. Hiervoor moet je het commando MatrixPower gebruiken.
In[85]:= A
=
1, 2, 3 , 4, 5, 6 ,
7, 8, 9
Out[85]=
1, 2, 3 , 4, 5, 6 , 7, 8, 9
In[86]:= A ^ 2
1, 4, 9 , 16, 25, 36 , 49, 64, 81
Out[86]=
In[87]:= MatrixPower A, 2
30, 36, 42 , 66, 81, 96 , 102, 126, 150
Out[87]=
In[88]:= A . A
30, 36, 42 , 66, 81, 96 , 102, 126, 150
Out[88]=
In[89]:= MatrixPower A, 10
132476037840, 162775103256, 193074168672 ,
300005963406, 368621393481, 437236823556 ,
467535888972, 574467683706, 681399478440
Out[89]=
é
Basisopdrachten
We bekijken de volgende matrix
In[90]:= A
5,
=
-
1 , 3, 1
; MatrixForm A
Out[90]//MatrixForm=
5
3
1
1
-
De getransponeerde van A, genoteerd als At , bereken je met het commando Transpose. Dit stelt je in staat om
matrixoperaties met kolommen te herschrijven in termen van rij-operaties en vice versa.
In[91]:= Transpose A
5, 3 ,
Out[91]=
-
1, 1
In[92]:= MatrixForm %
Out[92]//MatrixForm=
5 3
1 1
-
De inverse bereken je als volgt:
Linalg.nb
10
In[93]:= Inverse A
1
1
, þþþþ ,
8
8
Out[93]=
þþþþ
3
5
, þþþþ
8
8
- þþþþ
In[94]:= MatrixForm %
Out[94]//MatrixForm=
1
8
3
- þþþþ
8
1
8
5
þþþþ
8
þþþþ
þþþþ
In[95]:= MatrixPower A,
1
1
, þþþþ ,
8
8
Out[95]=
þþþþ
-
1
3
5
, þþþþ
8
8
- þþþþ
En niet d.m.v.
In[96]:= A ^
-
1
1
,
5
Out[96]=
þþþþ
-
1 ,
1
,1
3
þþþþ
We bekijken nu de volgende matrix:
In[97]:= M
3, 2, 1 , 2, 1, 0 ,
=
-
1, 2, 5
; MatrixForm M
Out[97]//MatrixForm=
3 2 1
2 1 0
-1
2 5
De kern en een basis van de rijruimte van de matrix worden berekend met de commando’s NullSpace en
RowReduce.
In[98]:= NullSpace M
Out[98]=
1,
-
2, 1
In[99]:= RowReduce M
Out[99]=
1, 0,
-
1 , 0, 1, 2 , 0, 0, 0
De (rij)rang van M lees je af en is gelijk aan 2. Er zijn geen ingebouwde commando’s om een basis van de
kolomruimte van M te bereken. Maar dit kun je eenvoudig zelf doen d.m.v. rijreductie van de getransponeerde
matrix M t .
In[100]:= MatrixForm M
Out[100]//MatrixForm=
3 2 1
2 1 0
-1
2 5
In[101]:= Transpose M
Out[101]=
3, 2,
-
1 , 2, 1, 2 , 1, 0, 5
Linalg.nb
11
In[102]:= RowReduce %
1, 0, 5 , 0, 1,
Out[102]=
-
8 , 0, 0, 0
In[103]:= Transpose %
1, 0, 0 , 0, 1, 0 , 5,
Out[103]=
-
8, 0
In[104]:= MatrixForm %
Out[104]//MatrixForm=
1
0
5
0 0
1 0
-8
0
Het is gemakkelijk om zelf een procedure kolomreductie te introduceren:
In[105]:= kolomreductie a_
:= Transpose RowReduce Transpose a
In[106]:= kolomreductie M
1, 0, 0 , 0, 1, 0 , 5,
Out[106]=
-
8, 0
Waarschuwing: waar je wel op moet letten is dat Mathematica geen speciale gevallen onderscheidt. Stel dat we
in de matrix M het element op plaats (3,3) vervangen door een onbepaalde, zeg x.
In[107]:= M
3, 3
=
x; MatrixForm M
Out[107]//MatrixForm=
3 2 1
2 1 0
-1
2 x
Als we nu om een basis van de rijruimte vragen, dan krijgen we 3 basisvectoren! Dit antwoord is correct voor alle
waarden van x behalve voor x= 5.
In[108]:= RowReduce M
Out[108]=
1, 0, 0 , 0, 1, 0 , 0, 0, 1
Mathematica lost dus alleen het algemene geval op en laat speciale gevallen buiten beschouwing. Kortom,
wanneer een matrix behalve getallen ook symbolen bevat, dan moet je heel erg goed op je tellen passen.
Je kunt natuurlijk wel zelf het veegproces aansturen en Mathematica alleen als rekenhulp gebruiken.
In ons voorbeeld: begin met vegen m.b.v. eerste rij in M. We werken in een kopie, zeg m.
Linalg.nb
12
In[109]:= m
= M;
MatrixForm m
m 2
= m
1, 1
MatrixForm m
*
m
2
-
m
2, 1
*
m
1
;
m 3
= m
1, 1
MatrixForm m
*
m
3
-
m
3, 1
*
m
1
;
Out[110]//MatrixForm=
3 2 1
2 1 0
-1
2 x
Out[112]//MatrixForm=
3
0
-1
2
1
2
-
1
2
x
-
Out[114]//MatrixForm=
3
0
0
2
1
1
-2
8 1+3x
-
Ga nu door met vegen m.b.v. de tweede rij:
In[115]:= m
1
= m
2, 2
MatrixForm m
*
m
1
-
m
1, 2
*
m
2
;
m 3
= m
2, 2
MatrixForm m
*
m
3
-
m
3, 2
*
m
2
;
Out[116]//MatrixForm=
3
0
0
0
3
1
-2
8 1+3x
-
-
Out[118]//MatrixForm=
3
0
0
0
3
1
-2
0 15 - 3 x
-
-
Nu zie je een nulrij ontstaan als 15 - 3 x = 0, oftwel als x = 5.
é
2. Matrixrekening
Neem de volgende vijf matrices:
0 0 0 9
-3 2
1
þþþþ
0
0
0
0 1
2
A=
,B=
,C=
1
7 4
0 þþþþ3 0 0
1 2
0 0 þþþþ2 0
3
(i) Bereken A 1 , A B, A5 - A, Bt A.
-
3
4
4
-
1
7
3
-
0
-2
10 , D = 12
-3
6
-
2 -5
7 20 en E =
-4
11
-
2
1
1
-
14
10
- 13
8
6
-8
Linalg.nb
13
(ii) Bereken M 2 , M 3 , M 4 en M 5 voor M
willekeurig gekozen natuurlijk getal n.
Å
=
C, M
=
D en M
=
E . Geef een formule voor M n , voor een
Stelsels van lineaire vergelijkingen
Mathematica kent commando’s waarmee je een stelsel vergelijkingen kunt omzetten in matrix- en in vectorvorm.
We beginnen met een schone lei en introduceren 3 vergelijkingen in 3 onbekenden:
In[119]:= Clear "ë" ;
v1
v2
v3
=
=
=
3 * x + 2 * y + z ç 39;
2 * x + 3 * y + z ç 34;
x + 2 * y + 3 * z ç 26;
Met het volgende commando maken we een matrix m en een vector b uit het gegeven stelsel vergelijkingen.
Eerst laden we nog het nodige pakket:
In[123]:=
LinearAlgebra‘;
m, b = LinearEquationsToMatrices
<<
3, 2, 1 , 2, 3, 1 , 1, 2, 3
Out[124]=
v1, v2, v3 , x, y, z
, 39, 34, 26
Je kunt nu met m en b verder werken:
In[125]:= MatrixForm m
Out[125]//MatrixForm=
3 2 1
2 3 1
1 2 3
In[126]:= MatrixForm b
Out[126]//MatrixForm=
39
34
26
We maken een vector w voor de onbekenden:
In[127]:= w
=
x, y, z ;
Het stelsel vergelijkingen is nu als volgt te schrijven met behulp van matrixvermenigvuldiging (punt!):
In[128]:= m.w
Out[128]=
ç
b
3 x + 2 y + z, 2 x + 3 y + z, x + 2 y + 3 z
==
39, 34, 26
Je ziet hier drie vergelijkingen in één. Het is een vergelijking in vectorvorm. Het resultaat zou je zelf waarschijnlijk als
volgt noteren:
In[129]:= Map MatrixForm, %
Out[129]=
3x+2y+z
2x+3y+z
x+2y+3z
==
39
34
26
Linalg.nb
14
We kunnen deze vergelijking in vectorvorm nog steeds oplossen.
In[130]:= Solve %%,
x“
Out[130]=
é
x, y, z
37
17
11
, y “ þþþþþþþ , z “ þþþþþþþ
4
4
4
þþþþþþþ
3. Stelsel van lineaire vergelijkingen
Veronderstel dat het volgende stelsel van vergelijkingen in x, y en z oplosbaar is.
3 x - 5 y + 7 z = 11
4 x - 6 y + 8 z = 12
5 x - 8 y + 11 z = a
6 x - 9 y + 12 z = 18
Bepaal a en de oplossingsverzameling hiervoor.
Å
Lineaire afbeeldingen
In[131]:= Clear "ë"
Mathematica is handig in het gebruik om rij- en kolom-operaties op matrices uit te voeren. Dus ook om lineaire
afbeeldingen te bestuderen. Ter illustratie nemen we de lineaire afbeelding van ¶4 naar ¶3 met de volgende
matrix:
In[132]:= A
=
3, 2, 1, 1 , 2, 3, 2,
MatrixForm A
-
1 ,
1,
-
1,
-
1, 2
;
Out[133]//MatrixForm=
3
2
1
2
3
-1
1
2
-1
1
1
2
-
Dit is het voorbeeld uit hoofdstuk 3, paragraaf 4 van het dictaat ’Lineaire algebra 1A’, dat de dimensieformule
voor lineaire afbeeldingen behandelt. We bepalen een basis voor de kern en het beeld van de afbeelding op een
manier zoals beschreven in het dictaat. Er zijn twee verschillen:
1) In Mathematica werekn we bij voorkeur met rijoperaties i.p.v. met kolomoperaties: we zullen dus steeds naar
getransformeerde matrices kijken.
2) We voegen de identiteitsmatrix niet aan de bovenkant van de gegeven matrix toe, maar aan de onderkant
omdat de rijreductie in Mathematica alleen van boven naar beneden werkt en niet zoals in het dictaat op een
deelmatrix slaat.
Eerst voegen we aan deze matrix met het commando Join aan de onderkant een identieke matrix toe.
Linalg.nb
15
In[134]:= a
=
Join A, IdentityMatrix 4
; MatrixForm a
Out[134]//MatrixForm=
3
2
1
1
0
0
0
2
3
-1
0
1
0
0
1
2
-1
0
0
1
0
1
1
2
0
0
0
1
-
We transponeren de matrix en gaan dan met rijen vegen:
In[135]:= a
=
RowReduce Transpose a
; MatrixForm a
Out[135]//MatrixForm=
1 0
0 1
1
-
1
3
1
þþþþ
3
5
- þþþþ
3
5
- þþþþ
3
0 0
þþþþ
1 0 0
0 0
0
1 0
0 0
0
0 1
2
3
1
- þþþþ
3
4
- þþþþ
3
1
- þþþþ
3
þþþþ
We transponeren opnieuw.
In[136]:= a
=
Transpose a ; MatrixForm a
Out[136]//MatrixForm=
1
0
1
0
0
0
1
-1
0
0
1
3
2
þþþþ
3
1
3
1
- þþþþ
3
þþþþ
þþþþ
0
0
0
1
0
5
3
4
þþþþ
3
0
0
0
0
1
5
3
1
þþþþ
3
- þþþþ
- þþþþ
-
-
Wat we gedaan hebben kun je ook zien als kolom-operaties losgelaten op a.
1
De eerste drie rijen vormen de kolom-gereduceerde matrix van A. Een basis van Im(A) is dus 0 ,
1
controle:
0
1 . Ter
-1
In[137]:= Transpose RowReduce Transpose A
1, 0, 0, 0 , 0, 1, 0, 0 , 1,
Out[137]=
-
1, 0, 0
In[138]:= MatrixForm %
Out[138]//MatrixForm=
1
0
1
0 0 0
1 0 0
-1
0 0
De kolommen van de onderste 4×4 submatrix vormen een basis van
4
en worden door de lineaire transformatie
1
0
0
1
afgebeeld op de kolommen erboven. Dus is een basis van ker(A ) gevonden:
5 ,
5
¶
- þþþþ
3
4
- þþþþ
3
- þþþþ
3
1
- þþþþ
3
Linalg.nb
16
3
0
0
3
of voor wie niet van breuken houdt:
,
.
-5
-5
-4
-1
We controleren dat deze vectoren inderdaad op 0 worden afgebeeld:
In[139]:= A. 3, 0,
Out[139]=
é
5,
-
4
-
5,
-
1
0, 0, 0
In[140]:= A. 0, 3,
Out[140]=
-
0, 0, 0
4. Lineaire afbeelding
De lineaire afbeelding L :
4
¶
3
¶
is gedefinieerd door:
x1
x2
L
x3
x4
(i) Bepaal bases van beeld en kern van L
(ii) Wat is de matrix van L
1
0
als basis in ¶4 :
,
1
0
en als basis in
3
¶ :
wanneer je kiest
1
1
-1
1
-1
1
,
,
0
1
0
0
0
1
2
1 ,
-1
-
1
1
1 en 1
2
1
-
=
x1 + 2 x2 - x3
2 x1 + 2 x3 - x4
3 x1 + 2 x2 + x3 - x4
Download