Exempelsamling :: Gram-Schmidt Mikael Forsberg :: 16 oktober 2008 1. Vektorerna a 1, a 2 och a nedan är en bas för ett delrum W av R 4. Använd Gram-Schmidt för att göra om dessa till en ortonormal bas för W. a 1 = (1, 0, 1, 1), a 2 = (1, 1, 0, 1), a = (1, 1, 1, 0). 2. Vektorerna v 1 = (1, 1, 0, 1), v 2 = (0, 1, 1, 1)) och v = (1, 0, 1, 1) bildar en bas för ett delrum W till R. Använd Gram-Schmidts ortonormaliseringsmetod för att beräkna en ON-bas för detta delrum.. Beräkna en ON-bas för kolonnrummet till följande matris: A = 2 1 2 4 1 1 1 2 0 0 1 1 4. Bilda ON-bas för kolonnrummet till följande matris: 2 1 0 1 1 1 1 2 1 1 0 1 0 1 2. Bilda ON-bas för radrummet till följande matris: 2 1 2 1 A = 0 1 1 1 6. Beräkna en ON-bas till radrummet till följande matris 1 1 1 1 1 2 1 1 1 1 1 1 1 1 0 0
Exempelsamling :: Gram-Schmidt:: Svar :: 1. o 1 = 1 (1, 0, 1, 1) o 2 = 1 (1,, 2, 1) o = 1 (1,,, 4) 2. e 1 = 1 ( 2, 1,, 1), e 2 = 1 ( 2, 1,, 1) och e = 1 (, 4,, 1). Se lösningen 4.. 6.
Exempelsamling :: Gram-Schmidt:: Lösningar 1. Vi börjar med att göra en ortogonal bas och på slutet normera dessa vektorer så att vi på så sätt får en ortonormal bas. Steg 1: Tag en av de tre vektorerna som första vektor; jag väljer a 1 och kallar denna för b 1 Steg 2: Jag tar nu a 2 och projicerar denna på b 1. Sedan drar jag bort denna projektion från a 2 och resultatet blir en vektor som är ortogonal mot b 1. Denna vektor kallar jag nu för b 2 : b 2 = a 2 proj b1 a 2 = 1 (1,, 2, 1) Eftersom jag ännu inte bryr mig om vektorernas längd tar jag som andra vektor b 2 = (1,, 2, 1). Detta för att slippa släpa på så många bråk. Steg : jag har nu två ortogonala vektorer b 1 och b 2. För att få en tredje vektor så tar jag nu a och projicerar den på b 1 och b 2. När jag sedan subtraherar dessa projektioner från a får jag en vektor som är ortogonal mot både b 1 och b 2. Denna vektor kallar jag då för b. Vi får: b = a (proj b1 a + proj b2 ) = (1, 1, 1, 0) 1 (4, 2, 2, 4) = 1 (1,,, 4) Nu tar jag b = (1,,, 4) och noterar att denna verkligen är otogonal mot b 1 och b 2. Dessa tre vektorer är nu en ortogonal bas. Vi behöver nu bara normera dessa vektorer för att ha erhållit en ON-bas: o 1 = o 2 = o = b 1 b 1 = 1 (1, 0, 1, 1) b 2 b 2 = 1 (1,, 2, 1) b b = 1 (1,,, 4) 2.. Sätt först e 1 = 1 (1, 1, 0, 1). (man kan även välje någon av v 2 och v som startvektor) Låt u 2 = v 2 v 2 e 1 e 1 2 e 1 = 1 ( 2, 1,, 1) och normera för att få e 2 = u 2 u 2 = 1 ( 2, 1,, 1). Vi ser att e 1 och e 2 är ortogonala och har båda längden 1. För att beräkna den sista basvektorn så beräknas u = v proj e1 v proj e2 v = v (v e 1 )e 1 (v e 2 )e 2 = 1 (, 4,, 1) Normering av u ger vår sista vektor: e = u u = 1 (, 4,, 1) En snabb kontroll ger att e 1, e 2 och e bildar en ON-bas för vårt delrum W.. Vi har två möjligheter: (a) Gausseliminera, identifiera de ledande kolonnerna, välj bas från A s kolonner (b) Gausseliminera A T och tag basen från den eliminerade matrisen. Notera att A s första två kolonner är ortogonala. Nedan följer en maplelösning: > with(linalg);
c Mikael Forsberg 16 oktober 2008 är. > A:=matrix(4,4,[1,1,2,,2,-1,2,4,1,1,1,2,0,0,1,1]); 2 1 2 4 A := 1 1 1 2 0 0 1 1 > gausselim(a); 0 2 2 0 0 1 1 De ledande elementen står i kolonn nummer 1, 2 och. Vi får därför att en kolonnrumsbas > v1:=vector([1,2,1,0]);v2:=vector([1,-1,1,0]);v:=vector([2,2,1,1]); v1 := [1, 2, 1, 0] v2 := [1, 1, 1, 0] v := [2, 2, 1, 1] > GramSchmidt([v1,v2,v],normalized); [[1/6 6, 1/ 6, 1/6 6, 0], [1/, 1/, 1/, 0], [1/6 2, 0, 1/6 2, 1/ 2]] > simplify(%); [[1/6 6, 1/ 6, 1/6 6, 0], [1/, 1/, 1/, 0], [1/6 2, 0, 1/6 2, 1/ 2]] > At:=transpose(A); > gausselim(at); 1 2 1 0 At := 2 2 1 1 4 2 1 1 2 1 0 0 0 0 0 0 1 1 Notera att rad 2 och rad är ortogonala varför Gram-Schmidt bör starta med dessa > w1:=vector([0,1,0,0]);w2:=vector([0,0,-1,1]);w:=vector([1,2,1,0]); w1 := [0, 1, 0, 0] w2 := [0, 0, 1, 1] w := [1, 2, 1, 0] > GramSchmidt([w1,w2,w],normalized); [[0, 1, 0, 0], [0, 0, 1/2 2, 1/2 2], [1/ 2, 0, 1/6 2, 1/6 2]] 4
c Mikael Forsberg 16 oktober 2008 4. Bestäm radbas för A t. Denna blir v 1 = (1, 1, 1, 0), v 2 = (0, 1, 1, 1) och v = (0, 0, 7, 2). Utnyttja sedan att de två första är ortogonala så underlättas räkningarna.. Bestäm radbas för A genom att Gausseliminera A. 2 1 2 1 A = 0 1 1 1 Notera att rad 2 och är linjärt oberoende och dessutom ortogonala. Vi byter plats på raderna så att dessa två hamnar högst upp, dvs vi får följande matris 0 1 1 1 A 1 = 2 1 2 1 som såklart har samma radrum som A. Gausseliminera nu A 1 så får vi 0 1 1 1 0 0 7 2 från vilket vi får basvektorerna v 1 = (1, 1, 1, 0), v 2 = (0, 1, 1, 1) och v = (0, 0, 7, 2). Utnyttja sedan att de två första är ortogonala så underlättas räkningarna. En ortogonal bas blir a 1 = v 1, a 2 = v 2 tillsammans med följande vektor (som vi får mha gram-schmidt) a = v proj span(a1,a 2 )v = v ( v a 1 a 1 2 + v a 2 a 2 2 a 2)) = =... lite räkningar ger... = 1 ( 7, 2,, ) Slutligen normerar vi vår ortogonala bas för att få den sökta ortonormala basen b 1 = b 2 = b = a 1 a 1 = 1 (1, 1, 1, 0) a 2 a 2 = 1 (0, 1, 1, 1) a a = 1 ( 7, 2,, ) 87 6. Gausseliminera och ta de kvarvarande tre nollskilda raderna som startbas. Man ser att två av dem redan är ortogonala. Normera dessa och använd sedan Gram-Schmidt för att se till att den sista är ortogonal.