HH/ITE/BN Matriser och Mathematica 1 Något om Matriser och Mathematica Bertil Nilsson 2016-08-15 Denna väntan varje jul xi 1 1 1 x mod 1 1 2 i x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 x28 x29 x30 x31 x32 x33 x34 x35 x36 x37 x38 x39 x40 x41 x42 x43 x44 x45 x46 x47 x48 x49 x50 x51 x52 x53 x54 x55 x56 x57 x58 x59 x60 x61 x62 x63 x64 x65 x66 x67 x68 x69 x70 x71 x72 x73 x74 x75 x76 x77 x78 x79 x80 x81 x82 x83 x84 x85 x86 x87 x88 x89 x90 x91 x92 x93 x94 x95 x96 x97 x98 x99 x100 x101 x102 x103 x104 x105 x106 x107 x108 x109 x110 x111 x112 x113 x114 x115 x116 x117 x118 x119 x120 x121 x122 x123 x124 x125 x126 x127 x128 x129 x130 x131 x132 x133 x134 x135 x136 x137 x138 x139 x140 x141 x142 x143 x144 x145 x146 x147 x148 x149 x150 x151 x152 x153 x154 x155 x156 x157 x158 x159 x160 x161 x162 x163 x164 x165 x166 x167 x168 x169 x170 x171 x172 x173 x174 2 Matriser och Mathematica HH/ITE/BN ť Förord På följande sidor presenteras en elementär "streetwise guide" till matriser med flitig användning av Mathematica. Framställningen är fåordig, fri från pedanteri men i någon mening fullständig. Det man väsentligen behöver veta om begrepp, terminologi, beteckningar och teori för att modellera och lösa problem i framtida kurser och yrkesliv som ingenjör, naturvetare eller lärare klarläggs och typiska exempel ges. ť Matrisbegreppet En uppsättning av element, oftast vanliga tal, ordnade "rektangulärt" i rader och kolonner kallas för en matris. En sådan betecknas nästan alltid med stora "feta" bokstäver, t.ex. . Om en matris innehåller m rader och n kolonner säger vi att den är av "typen m gånger n" och skriver typ m n. Inte sällan brukar man dekorera matrisens namn med ett index som förtydligar dess typ, m n . Elementen i matrisen anges sedan med motvarande "lilla" bokstav och ett index som talar om dess position. Exempelvis har vi en matris med m rader och n kolonner m n aij m a11 a12 a21 a22 a1n a2n am1 am2 amn n Elementet aij är elementet i i:te raden och j:te kolonnen räknat uppifrån respektive från vänster. Man säger att element aij befinner sig på plats i, j . Ofta ser man att elementet också refereras med skrivsättet ij vilket är inspirerat av att matrisen ibland skrivs ut i full form med hakparenteser [] istället för runda (). Exempel: För matrisen 3 2 gäller att typ 2 1 7 5 3 2 3 2 eftersom den har 3 rader och 2 kolonner. Vidare är exempelvis elementen a21 Definition. Två matriser nA nB . Detta skrivs typ och för vilka typ = typ . mA nA och typ Exempel: Antag att och är matriser sådana att typ är inte av samma typ, det vill säga typ typ . 4 2 och typ 1 och a32 2. mB nB , säges vara av samma typ om mA 2 4. Då har båda matriserna 4 2 mB och 8 element, men de Om en matris har lika många rader som kolonner, det vill säga n n , kallas den av naturliga skäl kvadratisk. Sådana är mycket vanliga i tillämpningar, vilket vi får anledning att återkomma till. En matris som består av endast en rad kallas av uppenbara skäl för en radmatris eller radvektor och en matris som består endast av en kolonn för en kolonnmatris eller kolonnvektor. Slutligen faller det sig då naturligt att ibland tolka en matris av typen 1 1 som en skalär eller ett tal. Denna dualitet med lite liberalare syn på typerna gör att räkningarna "flyter" på lite enklare i löpande text. Men när man verkligen genomför beräkningar måste man vara på sin vakt. I Mathematica skrivs feta bokstäver, t.ex. A eller , med "fet" font respektive dsA , där ds står för double-struck. Författaren brukar vara konsekvent och använda det senare både i Mathematica och för hand. Det går naturligtvis lika bra att använda vanliga tecken! Internt i Mathematica representeras en matris som en vektor med vektorer men presenteras på den form vi känner igen från ovan. För att mata in en matris föreslås att man börjar med ny matris i paletten varefter man mekar om till rätt typ och fyller i sina element enligt nedan. Samma gäller naturligtvis för redigering av redan befintlig matris, se nedan. Om man inte får snygga output cellerna, utan , Ny matris från palette: , , , så ändra i Edit>Preferences>Evaluation>Format type of output cells>TraditionalForm. Ny rad under markörens läge: Ny kolonn till höger om markörens läge: Hoppa till nästa : i ͓ ͔ ͓, Ny rad ett: ställ markören till vänster om a11 och Ny kolonn ett: ställ markören till vänster om a11 och Ta bort hel rad kolonn: svärta med markören, sedan ͓ ͔ ͓, HH/ITE/BN Matriser och Mathematica 3 Så när som vissa funktionsnamn ansluter sig Mathematica väldigt smidigt till definitionerna i matrisalgebra. 4 3 1 ; 1 5 2 Dimensions 2, 3 Att välja ut ett eller flera element ur matrisen brukar kallas att indexera. Detta anges med dubbla hakparenteser [[...]]. De två hakparenteserna kan göras lite kompaktare med och , vilket använts i exemplen nedan. 2, 3 Hämta element a23 2, All Hämta rad 2 2 1, 5, 2 All, 3 Hämta kolonn 3 1, 2 2, 3, 1 Hämta delmatris a23 a21 i denna ordning 2, 1 1, 2 , 3, 1 1 2 Hämta delmatris a13 a11 a23 a21 4 1 1, 3 7 Tilldela element a13 nytt värde 7 4 3 7 1 5 2 100 200 300 400 1, 2 , 3, 2 Tilldela delmatrisen a12 a13 nya värden a22 a23 100 200 300 400 4 200 100 1 400 300 ť Likhet för matriser Definition. Två matriser och säges vara lika, vilket skrivs , om de är av samma typ och elementen på motsvarande platser i de båda matriserna är lika, det vill säga aij bij för alla förekommande i och j. Om dessa villkor inte är uppfyllda säger vi att matriserna är olika och skriver . Exempel: Matriserna 2 3 2 5 1 3 uppfyller uppenbarligen kraven för likhet så vi kan skriva 2 5 1 3 True 7 2 2 5 1 3 7 2 7 2 och 2 3 2 5 1 3 7 2 . I Mathematica används naturligtvis två likhetstecken! 4 Matriser och Mathematica HH/ITE/BN ť Nollmatris Definition. Om samtliga element i en matris är 0 kallas matrisen för nollmatris och reserverar namnet finns oändligt med nollmatriser, en för varje typ. för denna. Notera att det Exempel: Matriserna 3 2 är exempel på nollmatriser, men 3 2 2 2 0 0 0 0 0 0 och 0 0 0 0 2 2 eftersom de är av olika typ. ť Addition och subtraktion av matriser Definition. Antag att för vilken typ typ och är två matriser av samma typ. Med summan av typ och cij aij bij för alla förekommande i och j. och , betecknat , menas den matris Addition sker alltså elementvis vilket kräver att matriserna måste vara av samma typ. Så med a11 a12 a21 a22 a1n a2n och m n am1 am2 b11 b12 b21 b22 b1n b2n bm1 bm2 bmn m n amn har vi a11 a21 m n m n b11 b21 a12 a22 b12 b22 a1n a2n b1n b2n m n m n am1 bm1 am2 bm2 amn m n bmn Exempel: Följande kalkyl går tydligen bra. Inte fel att använda stödlinjer när man "räknar"... 2 5 4 1 3 0 2 5 4 1 3 0 1 2 11 8 1 2 11 8 2 2 7 1 1 5 11 3 2 4 8 2 0 7 3 7 2 10 11 7 2 7 3 7 2 10 11 7 Räknelagar: Om 1 2 3 , , och är matriser av samma typ gäller kommutativa lagen associativa lagen Subtraktion av matriser får vi nu odramatiskt genom att snegla på addition ovan och byta alla "+" till " ". Definition. Antag att och är två matriser av samma typ. Med subtraktion mellan och , betecknat , menas den matris för vilken typ typ typ och cij aij bij för alla förekommande i och j. Som vanligt är subtraktion inte kommutativ, det vill säga . a11 a21 m n m n b11 b21 a12 a22 b12 b22 a1n a2n b1n b2n m n m n am1 bm1 am2 bm2 amn bmn m n HH/ITE/BN Matriser och Mathematica 5 Exempel: Följande kalkyl går tydligen bra 2 5 4 1 3 0 2 5 4 1 3 0 1 12 3 5 1 2 11 8 1 2 11 8 2 2 7 1 1 5 11 3 2 4 8 2 0 1 12 7 3 5 6 7 2 7 6 7 ť Multiplikation av matris med en skalär Definition. Med produkten av skalären s och matrisen s ij s ij för alla förekommande i och j. Detta betyder helt enkelt att varje element i m n s m n , betecknat s , menas den matris för vilken typ s multipliceras med s och resultatet ärver typen från s a11 a12 a21 a22 a1n a2n sa11 sa12 sa21 sa22 sa1n sa2n am1 am2 amn sam1 sam2 samn typ och . m ns Exempel: Dé blir bara svårare och svårare 3 3 2 5 4 1 3 0 6 15 12 3 9 0 Räknelagar: Om 1 s s 2 s t s 3 st ts 2 5 4 1 3 0 3 2 3 1 3 5 3 4 3 3 3 0 6 15 12 3 9 0 , är matriser av samma typ och s och t godtyckliga tal gäller distributiva lagen t distributiva lagen st associativa lagen s ť Multiplikation av matriser Matrismultiplikation är något mer komplicerad än de nästan självklara operationer vi har sett hittills. Den är dock vald med omsorg för att vara så användbar som möjligt i diverse tillämpningar. Definition. Multiplikation av och , skrivet utan multiplikationstecken, är tillåtet endast då antalet kolonner i är lika med antalet rader i . Resultatet blir då en ny matris som ärver antalet rader från och antalet kolonner från . Alltså matrismultiplikationen p m p q n m n är utförbar endast om p q. Elementet cij aik bkj k 1 Elementet cij fås alltså som skalärprodukten mellan den i:te raden i och den j:te kolonnen i , vilket förklarar att antalet kolonner i måste vara lika med antalet rader i . Matrismultiplikation är i allmänhet inte kommutativ, det vill säga nen säger vi att eftermultipliceras av och omvänt att förmultipliceras av . . I konstruktio- Exempelvis bestämning av elementet c32 vid eftermultiplikation av en 4 3-matris med en 3 2-matris. Lägg märke till typerna för såväl och som resultatmatrisen . 6 Matriser och Mathematica b12 b22 b32 a31 a32 a33 4 3 HH/ITE/BN a31 b12 a32 b22 a33 b32 3 2 4 2 Exempel: Låt 6 4 3 5 2 3 1 2 och 7 5 3 3 2 4 8 6 så har vi 2 2 2 3 6 4 3 5 3 2 6 7 1 2 2 4 5 3 7 5 5 7 5 3 3 1 3 4 8 6 32 6 4 4 2 3 3 4 8 1 6 5 8 2 6 2 2 59 10 14 40 3 3 30 54 0 48 20 42 2 2 eller 3 3 3 2 7 5 3 2 3 4 6 4 1 8 3 5 2 6 32 7 6 4 3 7 4 5 6 3 6 Vi ser att 8 6 3 3 5 4 3 4 2 3 4 5 7 8 5 5 6 5 1 4 2 1 6 2 1 3 8 2 1 21 9 3 3 trots att båda multiplikationerna i just detta fall är tillåtna. De får ju inte ens samma typ. Matrismultiplikation i Mathematica anges med vanlig punkt likt skalärprodukt mellan vektorer (som ju faktiskt är lite inblandad). Observera att punkten inte får utelämnas eftersom detta tolkas som elementvis listmultiplikation, det vill säga cij aij bij . Vi provkör med matriserna i föregående exempel. 6 4 3 5 1 ; 2 7 5 3 4 8 ; 6 . 59 10 14 40 . 30 54 0 48 20 42 1 21 9 Avslutningsvis poängteras ännu en gång att faktorernas ordning i produkten är väsentlig, det vill säga är något helt annat än . Eftersom multiplikation av matriser är definierad endast om antalet kolonner i den första matrisen är lika med antalet rader i den andra så är det inte säkert att produkten är definierad även om är det. Om både och är definierade behöver de ändå inte vara lika. Ett fall då båda produkterna och alltid är definierade är då och båda är kvadratiska matriser av samma typ. behöver dock inte heller i detta fall vara lika med . Räknelagar: Om , 1 C 2 3 och är matriser gäller under förutsättning att ingående operationer är tillåtna distributiva lagen distributiva lagen associativa lagen HH/ITE/BN Matriser och Mathematica 7 ť Matristransponering Definition. Den matris som bildas av en given matris om man låter rader och kolonner byta roller (det vill säga raderna görs till kolonner och tvärtom), kallas transponatet till och betecknas med , vilket utläses "A-transponat". Om typ m n, så är alltså typ n m. I Mathematica finns Transpose, vilket också kan skrivas lite kompaktare som " " som resultat. Detta ska inte förväxlas med " upphöjt till T"; T . tr direkt efter matrisen med ett litet dekorativt 2 5 4 1 3 0 2 5 4 1 3 0 I ingenjörslitteratur ser man ofta skalärprodukt mellan två vektorer skriven som . Detta grundar sig på att vektorer då ömsom betraktas som kolonnmatriser. Exempelvis får vi med god kontroll över ingående typer 2 1 3 3 1 1 1 2 2 1 3 3 1 1 3 1 1 2 2 1 1 1 3 2 1 1 7 1 1 3 1 För att det ska bli just en skalärprodukt är det nu naturligt att betrakta den sista matrisen med en rad och en kolonn som en skalär, det vill säga ett tal. Det finns uppenbara risker med denna liberala syn på typbegreppet och det finns datorprogram som tillåter det. Mathematica tillhör inte dessa utan gör alltid en mycket rigorös typkontroll inför varje operation. För den seriöse användaren är detta inget problem utan en trygghet. Använd indicering för att hämta ut önskat tal. 2 1 3 aTb 1 1 2 . 7 tal aTb 1, 1 7 För att transponera en vektor, vilket egentligen är omöjligt eftersom den bara har en dimension, måste den i Mathematica först göras till en radmatris, det vill säga en matris med en rad. Eftersom en matris representeras internt som en vektor med vektorer, raderna, är det bara att "stänga in" vektorn inom {}. InputForm 1 2 3 3 4 5 1, 2, 3, 3, 4, 5 1, 2, 3 1 2 3 1, 2, 3 1 2 3 Räknelagar: Om 1 2 och är matriser och s ett tal gäller 3 s s 4 Notera ordningen i högerledet ť Kvadratisk matris Om en matris har lika många rader som kolonner, det vill säga n n , kallas den inte oväntat kvadratisk. För sådana matriser är det lite "tårta på tårta" att säga typ n n, så inte sällen säger man istället ordning n. Då och då brukar man också höra ordning som synonym för typ, vilket inte brukar vålla någon förvirring. Kvadratiska matriser är mycket vanligt förekommande i tillämpningar, vilket vi får anledning att återkomma till. 8 Matriser och Mathematica HH/ITE/BN I en kvadratisk matris kallas elementen aii för huvuddiagonalen i . Om alla element under huvuddiagonalen är noll kallas den högertriangulär eller övertriangulär och vänstertriangulär eller undertriangulär om alla element över huvuddiagonalen är noll. 2 5 9 Exempel: Matrisen 0 7 1 är högertriangulär och 0 0 3 7 1 8 1 0 5 9 3 0 0 4 5 0 0 är vänstertriangulär. 0 3 Om det för en kvadratisk matris gäller att kallas matrisen symmetrisk och antisymmetrisk om . Diagonaleleaii 2aii 0 aii 0. Varje kvadratisk matris kan skrivas som summan menten i en antisymmetrisk matris är alltid noll, ty aii av en symmetrisk och en antisymmetrisk matris. Produkten av en godtycklig matris och dess transponat är symmetrisk, ty och . Exempel: För godycklig matris inte ens blir av samma typ. 2 5 4 . 1 3 0 är alltid och symmetriska matriser, dock inte nödvändigtvis lika eftersom de vanligtvis 2 5 4 1 3 0 45 13 13 10 2 5 4 1 3 0 . 2 5 4 1 3 0 5 7 8 7 34 20 8 20 16 Summan av talen i huvuddiagonalen kallas för spåret (eng. trace). Tydligen har vi för i senaste Exemplet. Tr 55 Huvuddiagonalen själv hämtas med en liten variant av samma funktion. Tr , List 5, 34, 16 ť Diagonalmatris och enhetsmatris Om en matris är kvadratisk och alla element utom de på huvuddiagonalen är noll kallas matrisen för en diagonalmatris. Ett . vanligt sätt att ange en sådan är diag a11 , a22 , DiagonalMatrix 3, 6 3 0 0 6 Om en diagonalmatris har enbart ettor på huvuddiagonalen kallas den enhetsmatris. För denna brukar man reservera namnen (identity matrix) eller (enhetsmatris). Namnet kommer sig av att den tjänar ungefär som en etta gör vid "vanlig" räkning. Notera liksom för nollmatris att det finns oändligt med sådana här matriser, en för varje typ. IdentityMatrix 2 1 0 0 1 Exempel: Effekten av att förmultiplicera en matris element i . . 1 1 1 1 1 1 1 1 3 3 3 3 6 6 6 6 med en diagonalmatris är att multiplicera varje rad i med motsvarande HH/ITE/BN Matriser och Mathematica Effekten av att eftermultiplicera en matris element i 1 1 1 1 3 3 3 3 med en diagonalmatris 9 är att multiplicera varje kolumn i med motsvarande 1 1 . 1 1 6 6 6 6 ť Potenser Kvadratiska matriser är de enda matriser man kan utsätta för upprepad multiplikation med sig själv. Om vi låter vara enhetsmatrisen definierar vi naturligt potenser som 0 , 1 , 2 , 3 och så vidare. Eller mera formell rekursiv definition om n n n 1 0 om n är ett positivt heltal Negativa eller brutna exponenter befattar vi oss inte med. Givetvis gäller de vanliga potenslagarna m n m n och m n mn . Exempel: När det gäller potenser av matriser så skriv inte upphöjt till i Mathematica. Detta tolkas då som att varje element i matrisen skall upphöjas till angiven exponent. 2 4 2 4 3 5 3 5 2 4 9 16 25 . 16 28 21 37 Då exponenten n blir stor finns funktionen MatrixPower som tröst. . . . . . . . . . . . . . . 2 549 464 720 604 4 482 738 450 156 MatrixPower 3 362 053 837 617 5 911 518 558 221 , 15 2 549 464 720 604 4 482 738 450 156 3 362 053 837 617 5 911 518 558 221 ť Matrisvärd funktion av en variabel I tidigare kurs har vi stiftat bekantskap med en funktion av en reell variabel. Vi har sett att detta begrepp kan enkelt spilla över till en vektorvärd funktion av en reell variabel. Då är steget litet till en matrisvärd funktion av en reell variabel. Vi låter helt enkelt varje element i matrisen vara en funktion av samma variabel, säg x a11 x a21 x a12 x a22 x Definition av derivation och integration gör knappast någon förvånad. 10 Matriser och Mathematica a11 x x a21 x x x x a12 x x a22 x x x x HH/ITE/BN a11 x x a12 x x a21 x x a22 x x Naturligtvis kan man ha bestämd integral om så önskas. Exempel: Mathematica är naturligtvis kunnig som vanligt x2 2x D Sin x Log x Cos x ArcTan x ; ,x 2x cos x 2x 2 sin x 1 1 x x2 1 x x3 cos x 3 sin x 2x x log x 2 x x tan 1 x 1 2 log x2 1 ť Determinant Varje kvadratisk matris kan tilldelas ett bestämt tal, som kallas matrisens determinant. Detta tal kan beräknas med en formel som innehåller alla matrisens element. Determinanter har mest teoretiskt värde och kommer till användning i diverse kvalitativa överläggningar, bland annat vid lösning av linjära ekvationssystem som vi kommer att studera i ett senare avsnitt. Låt beteckna en kvadratisk matris av ordning n a11 a12 a21 a22 a1n a2n an1 an2 ann n n Till denna matris skall vi definiera ett enda tal som vi kallar determinanten till matrisen . Detta tal betecknar vi med och skrivs ut med samma element som i fast med raka parenteser istället för runda. det a11 a12 a21 a22 a1n a2n an1 an2 ann eller det Benämningarna element, rad, kolonn, ordning och huvuddiagonal används på samma sätt för determinanter som för matriser. Hur räknas då detta tal ut? Vi börjar från början Definition. (1) Om är av ordning 1 så är (2) Om är av ordning 2 så är a11 a11 . a11 a12 a21 a22 a11 a22 a12 a21 . Determinater av högre ordning måste utvecklas enligt en visst mönster till en följd av determinanter av ordning 2. Vi beskriver här hur denna utveckling av determinanter går till. Antag att determinanten är av ordning n. Vi kan välja att utveckla den längs vilken rad eller kolonn som helst. Säg att vi väljer rad i. För varje element aij i denna rad skapar vi en ny determinant genom att stryka rad i och kolonn j. Det som återstår är en ny determinant av ordning n Cij 1 i j ij 1 som kallas för underdeterminanten till plats (i, j). ij med avseende på plats (i, j). Bilda komplementet (eng. cofactor) är nu slutligen skalärprodukten mellan elementen i rad i och deras komplement. Om n 1 2 måste alla dessa n 1 determinanter utvecklas enligt samma recept till n 1 determinanter av ordning n 2, å igen å igen ända till dess man kommit ner till (kanske duktigt många) determinanter av ordning 2 som beräknas enligt definitionen ovan. Färdig HH/ITE/BN Talet 1 i j Matriser och Mathematica 11 kan anta två värden 1 och 1 och uppträder i ett mönster som liknar ett "schackbräde" Ŝ Ŝ Ŝ ś ś ś Ş Detta hjälper oss att genomföra kalkylen som klarnar efter ett 2 4 1 Exempel: Bestäm 1 7 6 5 3 . 8 Lösningsförslag: Eftersom vi har en determinant av ordning 3 måste vi utveckla. Då väljer man en rad eller kolonn som innehåller många nollor. Detta reducerar arbetsinsatsen dramatiskt. Men inga nollor i sikte här så vi väljer lite slumpartat att utveckla längs rad 2. Tecknen framför termerna i skalärprodukten mellan elementen och underdeterminanterna hämtar vi från "schackbrädet" ovan. Redan efter en utveckling är vi framme vid 3 stycken determinanter av ordning 2 som vi kan "räkna" ut direkt. Vi får Ʋ Ŝ Ŝ Ŝ ś ś ś 2 4 1 1 7 6 5 3 8 4 4 4 1 8 2 1 4 7 1 6 1 5 6 8 5 6 4 38 5 3 8 2 1 7 2 8 7 11 7 Ş 5 3 8 5 2 1 3 8 1 6 5 1 3 2 6 3 13 114 7 2 4 1 1 7 6 3 2 4 1 1 7 6 5 3 8 1 1 Detta sätt att beräkna en determinant är mycket kostsamt vid stora n. Om vi som illustration väljer att bestämma determinanten för en, kan man tycka måttligt stor, determinant av ordning 25 med hjälp av en dator som klarar 1 miljon multiplikationer per sekund (1 Mflops) så får vi vänta en stund vid datorn; ca 1017 sekunder, vilket är ungefär universums ålder ! Vid all seriös numerisk analys med dator är metodval mycket viktigt och kanske helt avgörande för att lyckas. I ett senare avsnitt ska vi se hur vi kan få svaret på bråkdelar av en sekund. I Mathematica används en funktion med självdokumenterande namnet Det som väljer olika algoritmer beroende på determinantens storlek och utseende. Lägg märke till att den ska matas med en matris. Här senaste exemplet. 2 Det 4 1 1 7 6 5 3 8 114 Räknelagar: Om 1 2 3 4 5 6 7 och är matriser av ordning n och s ett tal gäller Om alla element i en viss rad kolonn multipliceras med samma faktor, multipliceras a11 sa12 a11 a12 determinanten med samma faktor, t.ex. s . a21 sa22 a21 a22 s sn Determinantens värde ändras inte om man gör en linjärkombination av rader eller kolonner, a11 a12 a11 sa21 a12 sa22 t.ex. . a21 a22 a21 a22 Om två rader eller kolonner byter plats, byter determinanten tecken. Om två rader eller kolonner är lika, är determinanten noll. 12 Matriser och Mathematica HH/ITE/BN ť Invers matris Om är en kvadratisk matris och det existerar en (kvadratisk) matris matrisen kallas inversen till sådan att 1 . För denna använder vi beteckningen 1 säger vi att är inverterbar och . Alltså 1 Man kan visa att om 1 existerar så är den unik, det vill säga det finns bara en enda. Ty om är en invers till och även gör 0. anspråk på att vara det, har vi , vilket visar att faktiskt . Om är inverterbar så är I någon mening kan man säga att invers matris fungerar som inverterade värdet gör för vanliga tal, vilket också skrivs "upphöjt till 1"; 7 7 1 7 7 7 7 1 1 1, så kanske inte helt fel att viska matrisdivision även om man aldrig får skriva Med hjälp av inversen kan vi skriva ner den symboliska lösningen till matrisekvationer, t.ex. söks. Lösningen får vi genom att förmultiplicera båda sidor med inversen till 1 1 1 1 eller , där . och är givna och . I Mathematica beräknas inversen med hjälp av funktionen Inverse. 3 2 Inverse 4 6 2 7 17 13 16 71 2 71 11 71 19 71 16 71 17 71 10 71 71 71 1 5 3 En matris av typ 2 2 ska man kunna invertera för hand, 1 a11 a12 a21 a22 1 1 a22 a21 a12 a11 1 a11 a22 a12 a21 a22 a21 a12 a11 En enkel kalkyl verifierar detta 1 a11 a22 a12 a21 a22 a21 a12 a a . 11 12 a11 a21 a22 1 0 0 1 Exempel: Lös matrisekvationen 2 2 2 1 och 1 0 då 4 6 . Lösningsförslag: Stuva om och lös ut . Notera speciellt efter andra ekvivalenspilen att det vid faktoriseringen är nödvändigt att skjuta in en enhetsmatris av passande typ. 2 2 2 2 2 2 2 2 1 . Nu låter vi Mathematica göra räknandet. 2 1 ; 1 0 Inverse 4 ; 6 . 2 IdentityMatrix 2 . 16 7 10 7 En ängslig koll . . 2 True En symmetrisk matris kallas ortogonal om . För en sådan matris är alltså 1 . Ett nödvändigt och tillräckligt villkor för att skall vara ortogonal är att :s kolonnvektorer är normerade och parvis ortogonala. HH/ITE/BN Matriser och Mathematica 13 Liksom determinanter förekommer inversen nästan aldrig i praktiken utan används mest vid diverse teoretiska överläggningar. Om man mot förmodan behöver beräkna den finns effektiva algoritmer. Detta återkommer vi till i ett senare avsnitt. Räknelagar: Om vektorer gäller 1 1 1 1 2 3 4 5 1 1 och är matriser av samma ordning, och ortogonala matriser av samma ordning och 6 1 Notera ordningen i högerledet speciellt 1 ortogonal 8 9 1 passande ortogonal 7 1 och Enhetsmatrisen är ortogonal 10 ť Linjära ekvationssystem System av linjära ekvationer utgör grunden för den linjära algebran på ungefär samma sätt som gränsvärden utgör grunden för analysen. I princip alla modeller inom tillämpad matematik, allt från hållfasthetsberäkningar med finita elementmetoden via ekonomisk resursteori till flödesproblem i en blodåder eller runt ett flygplan utmynnar alltid i ett stort linjärt ekvationssystem. Att utveckla effektiva lösningsalgoritmer för sådana problem har därför sysselsatt matematiker i 70 år och kommer att bli än mer aktualiserat i framtiden. Men vi börjar från början. Med en linjär ekvation i två obekanta x och y menar vi en ekvation av typen ax by c där a, b och c är givna reella tal. Ordet linjär syftar på att de obekanta endast får förekomma på formen x, y. Sammansättningar och funktionsuttryck är inte tillåtet. Som exempel har vi en linjär ekvation 6x 2y 10 medan 6x2 2y 10 och x 2 y 1 och x y y 3 inte är linjära. Vi ser att t.ex. x 1, y 2 satisfierar ekvationen 6x 2 y 10 ovan och man säger att detta är en lösning. En annan är x 0, y 5. Man kan hitta fler, i själva verket oändligt många eftersom för varje x har vi ett tillhörande y 5 3x. Detta beror på att vi har fler obekanta än ekvationer. Med ett linjärt ekvationssytem menar vi ett antal linjära ekvationer som gäller samtidigt. Även här kan man ha fler obekanta än ekvationer, färre eller lika många. Man talar då om underbestämt, överbestämt respektive kvadratiskt linjärt ekvationssystem. Alla fallen är mycket vanliga i diverse tillämpningar, speciellt det sistnämnda. Här ett exempel med tre ekvationer och tre obekanta. 2x 3x 4x 3y 4y 2y 9z 5z 2z 5 1 6 3 4 2 9 5 2 x y z Det är brukligt att skriva linjära ekvationssystem på matrisform 2x 3x 4x 3y 4y 2y 9z 5z 2z 5 1 6 2 3 4 5 1 6 där kallas koefficientmatris, högerled och lösningsvektor. Om högerledet är nollvektorn säger vi att ekvationssystemet är homogent. För stunden ska vi koncentrera oss på kvadratiska system och eftersom dessa dominerar branchen brukar de också lägga beslag på namnet linjära ekvationssystem. Vill man prata om under- eller överbestämt linjärt ekvationssystem får man lov att nämna detta explicit. Senare kommer vi att studera överbestämda system i samband med minsta kvadratmetoden och underbestämda vid linjärprogrammering. Det ser sunt ut med lika många ekvationer som obekanta, men vi kan faktiskt ha allt från entydig lösning, ingen lösning till oändligt och . En geometrisk betraktelse av situationen blir speciellt åskådlig för ett många lösningar! Vilket fall som inträffar beror på linjärt ekvationssystem med två ekvationer och två obekanta x, y. Varje ekvation blir en rät linje i planet. 14 Matriser och Mathematica x x y y 3 x x 2 y y y 2 HH/ITE/BN 3 2 x x y y y y 5 5 5 4 4 4 3 3 2 2 1 1 1 1 2 x 2 3 2 1 0 unik lösning 3 3 1 2 x 2 0 ingen lösning 1 0 1 2 x 0 oändligt med lösningar Vilket fall som inträffar beror på Om 0 säger vi att ekvationssystemet är illa konditionerat. Genom att studera figurerna ovan förstår vi att små störningar av elementen i eller ger en dramatisk ändring av lösningsvektorn . Sunda ekvationslösare, exempelvis Solve i Mathematica, signalerar en varning när så är fallet. Vanligtvis beror detta på svagheter i modelleringen av det problem som man vill lösa. Exempel: Betrakta de båda ekvationssystemen x x Det första systemet har lösningen x, y 1 2 a y y 1, a a 1 och x y x 999 1000 1 och det andra x, y a y 1 1000 999a, 1000 a 1 . För a 1 har båda systemen samma lösning, x, y 1, 0 . Men om vi nu ändrar a något lite till a 1.05, så ändras det första systemets lösning obetydligt till x, y 1.025, 0.025 , medan det andra ändras våldsamt till x, y 48.95, 50 . Det första systemet är därför väl konditionerat, det vill säga okänsligt för små störningar, medan det andra systemet är illa konditionerat. Vi fortsätter med några exempel på modellering som leder till linjära ekvationssystem. Vi koncentrerar oss på detta för den praktiserande ingenjören viktigaste momentet och överlåter åt Mathematica att uttala sig om lösningsmängder. Dock ska vi i ett senare avsnitt orientera om den vanligaste datoranpassade lösningsalgoritmen. Exempel: AB Len&Fin tillverkar en kräm som enligt reklamen sägs motverka rynkor. Denna kräver tre olika råvaror. Inköpspriset per gram råvara är 1 kr, 1.50 kr respektive 2 kr. Fraktkostnaderna per gram råvara är 2 kr, 1 kr respektive 1.50 kr. Till kund levereras burkar med kräm som väger 50 gram och betingar ett pris av 80 kr i råvarukostnad och 70 kr i fraktkostnad. Hur många gram av de olika råvarorna går det åt för att tillverka en burk? Lösningsförslag: Antag att råvarornas storlekar är x, y respektive z. Informationen räcker för att möblera ett ekvationssystem med tre ekvationer, en för vikten, en för råvarukostnad och slutligen en för fraktkostnaden. x y z 50 1x 1.5 y 2z 2x 1 y 1.5z 80 70 Inte helt oväntat är det vår gamle arbetshäst Solve i Mathematica som gör jobbet. Fördelen är bland annat att den lägger sig väldigt nära modelleringen. Inga riskabla omlastningar av ekvationerna till formen vilket många datorprogram kräver, t.ex. Matlab. Solve x x y z 50, 1 x 1.5 y 2 z 2 x 1 y 1.5 z 10., y 20., z 80, 70 20. Vilket är svaret på den brännande frågan angående antal ingående gram av de olika råvarorna. Exempel: Tre vätskor blandas i volymförhållande 1:2:4 varvid blandningen får densiteten 0.9. Om de blandas i volymförhållande 2:3:1 blir densiteten 0.8 och om de blandas 3:1:5 blir den 1.1. Ställ upp och lös det ekvationssystem som bestämmer densiteterna för de i blandningen ingående tre vätskorna. Lösningsförslag: Antag att densiteterna är Ρ1 , Ρ2 respektive Ρ3 . Informationen räcker för att meka ihop ett ekvationssystem med tre ekvationer, en för varje soppa Solve 1 Ρ1 2 Ρ1 2 Ρ2 3 Ρ2 4 Ρ3 1 Ρ3 1 2 2 3 4 0.9, 1 0.8, HH/ITE/BN Matriser och Mathematica 3 Ρ1 Ρ1 1 Ρ2 1.41429, Ρ2 5 Ρ3 0.3, Ρ3 3 1 15 5 1.1 1.07143 Exempel: För att bestämma temperaturfördelningen i en kvadratisk platta indelas denna i sexton mindre kvadratiska plattor arrangerade i fyra rader och fyra kolonner. Temperaturen i plattorna längs randen är kända. Se fig Bestäm temperaturen i de fyra inre plattorna om man antar att temperaturen i en sådan platta är medelvärdet av temperaturen i de fyra kantgrannarna. Metoden kallas finita differensmetoden FDM och differentialekvationen vi tillämpat den på heter Laplace differentialekvation och är mycket vanlig i fysik. 38 46 20 19 35 T1 T2 15 10 T3 T4 5 8 1 5 0 C Lösningsförslag: Vi får en ekvation för var och en av de fyra inre plattorna enligt meningen "Bestäm " 1 T1 4 SolveT1 1 46 T2 T3 35 , T2 20 4 1 T3 T1 T4 5 10 , T4 T2 4 T1 28, T2 18, T3 15 T4 T1 , 4 1 13, T4 5 0 T3 First 4 9 38 46 20 19 35 T1 T2 15 ListContourPlotReverse . T1 4 , InterpolationOrder 10 T3 T4 5 8 5 0 1 2, ContourLabels True Exempel: En tunn rektangulär glasskiva med massan m hålls i horisontellt läge av tre personer enligt figur, där koordinatsystem och diverse mått är angivna. a Sök ortsvektorerna A , B , C till personerna och G till skivans tyngdpunkt. b Frilägg glasskivan med informationen att personerna endast lyfter i z–led. c Bestäm med Solve de tre lyftkrafternas z–komponenter ur mekanikens jämviktssamband och . i i i i Lösningsförslag: Det är bara att följa receptet. Först a) Mekanik räknas alltid i 3D. A B C G 360, 0, 0 ; 720, 480 720, 0 ; 720 1680, 480, 0 ; 1 720 1680, 480 720, 0 ; 2 b) Personernas sökta lyftkrafter, enligt uppgift verkande endast i z–led. Slutligen tyngdkraften som verkar på glasskivan i negativ z– led. A B C G 0, 0, 0, 0, 0, FAz ; 0, FBz ; 0, FCz ; 0, mg ; c) Först jämviktssambandet med två vektorekvationer i och i i i . 16 Matriser och Mathematica jämvikt A B 0 1200 FBz 600 mg G, C A A B B C C G 0 480 FCz 1200 mg 360 FAz 0, motsvarande för momentjämvikt Mx My 0 mg 720 FBz 2400 FCz Första raden i matrisen är kraftjämvikt i de tre koordinatriktningarna 2 3 G HH/ITE/BN 0 och Mz Fx FBz FAz FCz 0 0, Fy 0 och Fz 0 0. Andra raden är 0. De två vektorekvationerna expanderar alltså till 6 skalära ekvationer. Så blir det alltid i mekanik. Nu är det bara att lösa ut de sökta kraftkomponenterna. Solve jämvikt, FAz , FBz , FCz 23 mg FAz 57 mg , FBz 79 158 55 mg , FCz 2 Exempel: Lös matrisekvationen 158 2 då 2 1 och 1 0 4 6 . Lösningsförslag: Detta är en repris på ett exempel under avsnittet "Invers matris". Jämför med tidigare lösningsmetod när vi denna gång istället betraktar matrisekvationen som ett linjärt ekvationssystem och låter Solve direkt bestämma de obekanta elementen i . Det enda vi behöver göra är att ansätta rätt. En titt i högerledet övertygar oss om att typ typ , så smidigt och lätt 2 1 ; 1 0 ekv . . 5 x11 2 x21 2 x11 x21 4 ; 6 x11 ; x21 2 2 x11 2 x21 . Solve ekv 4 6 First 16 7 10 7 I Mathematica finns väsentligen två funktioner som löser ekvationssystem. Vilken man väljer beror lite på hur problemet är formulerat. Om vi har koefficientmatris och högerled färdigmöblerade passar LinearSolve bra. Exempelvis exemplet med AB Len&Fin x y z 50 1x 1.5 y 2z 2x 1 y 1.5z 1 1 1 LinearSolve 1 1.5 2 , 2 1 1.5 80 70 50 80 70 10. 20. 20. 1 1 1 LinearSolve 1 1.5 2 , 50, 80, 70 2 1 1.5 10., 20., 20. Annars blir oftast valet den gamla välbekanta arbetshästen Solve. Den har fördelen att den ligger nära "modelleringen" och ger ett självdokumenterat svar på regelform, vilket underlättar fortsatt användning. Dessutom är den smart nog att dra nytta av svagt kopplade ekvationer, det vill säga många nollor i koefficientmatrisen, och sparar systemet i så kallat glest format. Detta sänker lösningstiden dramatiskt om man har väldigt många obekanta. I många tillämpningar är det vardag att lösa ekvationssystem med flera miljoner obekanta. Vi ser att även då det är bäddat för LinearSolve är kanske ändå Solve att föredra. 1 1 1 x Solve 1 1.5 2 . y z 2 1 1.5 x 10., y 20., z 50 80 70 20. När man matar Solve gäller att båda sidor om tecknet ska ha identisk struktur eller att den ena sidan är en skalär. HH/ITE/BN Matriser och Mathematica 17 ť Rotation (vridning) av vektor kring en koordinataxel Låt vara en tvådimensionell vektor och studera en rotation av denna kring origo. Positiv rotation en vinkel Θ definierar vi som moturs rotation. I figuren återges situationen före och efter rotationen. Eftersom vektorns längd bevaras får vi med summaformler för sinus och cosinus följande kalkyl Θ , sin Θ vΘx , vΘy Θ Θ cos cos cos Θ cos Θ Θ cos cos Θ sin Θ sin Θ cos Θ Θ sin Θ , sin cos Θ cos sin Θ sin Θ , Θ sin cos Θ Θ sin Θ cos cos Θ sin Θ cos Θ Θ sin sin Θ cos Θ Θ y vΘ v sin Θ sin Θ vx vy x Nu generaliserar vi till det tredimensionella fallet och inser efter en stunds eftertanke att vi just hanterat positiv vridning kring zaxeln, eftersom positiv vridning runt en koordinataxel innebär medurs rotation när vi tittar i koordinataxelns riktning. Eftersom vz bevaras i detta fall, gäller det bara att expandera matrisen ovan till typen 3 3 och meka in en 1:a på rätt ställe. På samma sätt kan analysen genomföras för rotation kring x- och y-axlarna. Vi lämnar detta som övning. Så, till slut får vi de tre fundamentala rotationsmatriserna kring respektive koordinataxel. Notera att det inte är feltryck i y Θ Mathematica håller med! x 1 0 0 cos Θ 0 sin Θ Θ 0 sin Θ , cos Θ MatrixForm RotationMatrix Θ, 1 0 0 cos Θ 0 sin Θ 0 sin Θ cos Θ , cos Θ 0 sin Θ y & 0 sin Θ 1 0 0 cos Θ cos Θ 0 sin Θ Θ 0 sin Θ 1 0 , 0 cos Θ z cos Θ sin Θ 0 Θ sin Θ cos Θ 0 0 0 1 IdentityMatrix 3 cos Θ , sin Θ 0 sin Θ cos Θ 0 0 0 1 Exempel: Bestäm matrisen för den avbildning som erhålls om man först roterar 30 kring x-axeln och sedan 60 kring y-axeln. Lösningsförslag: Notera att ordningen vid matrismultiplikation är viktigt som vanligt! Så den sammansatta avbildningen blir , där a y 60 x 30 RotationMatrix 60 , 0, 1, 0 1 3 3 2 4 4 3 0 .RotationMatrix 30 , 1, 0, 0 1 2 2 3 1 3 2 4 4 Om vi tar rotationerna i omvänd ordning får vi något helt annat... RotationMatrix 30 , 1, 0, 0 1 2 0 .RotationMatrix 60 , 0, 1, 0 3 2 3 3 4 2 1 4 3 1 3 4 2 4 ť Basbyte och koordinattransformation Låt vara en vektor och låt , , och , , vara två olika baser i rummet. Vi söker ett samband mellan :s komponenter vx , v y , vz respektive vx , v y , vz i de två baserna. Baser i planet kommer som vanligt ut som ett specialfall genom att bara betrakta de två första basvektorerna, vilket också är lättare att åskådliggöra. Eftersom en vektor, som ju ofta har en fysikaliskt tolkning, måste vara densamma oberoende av "vem" som mäter den med sin "linjal", får vi sambandet mellan :s komponenter i de två baserna vx vy För att komma vidare måste vi veta hur basvektorerna , , vz och , , vx vy y y j j x i i vz ligger i förhållande till varandra. Antag att x 18 Matriser och Mathematica där tij är komponenterna för basvektorerna , , t11 t21 t31 t12 t22 t32 t13 t23 t33 HH/ITE/BN med avseende på basvektorerna , , . Sätter vi in detta i uttrycket ovan för :s representation i de två systemen och identifierar koefficienter framför , och i höger och vänster led får vi vx t11 vx t12 v y t13 vz vy t21 vx t22 v y t23 vz vz t31 vx t32 v y t33 vz Detta är det sökta sambanden mellan komponenterna vx , v y , vz och vx , v y , vz i de två baserna. Detta kan skrivas på matrisform Matrisen vx t11 vx t12 v y t13 vz vy t21 vx t22 v y t23 vz vx vy vz t31 vx t32 v y t33 vz vz t11 t12 t13 t21 t22 t23 t31 t32 t33 vx vy vx vy vx vy vz vz vz kallas transformationsmatrisen mellan de två systemen. Den talar alltså om hur basvektorerna , och är riktade i förhållande till basvektorerna , och . Observera att elementen i :s första kolonn utgör :s komponenter med avseende på basen , och . Analogt bildas andra och tredje kolonnen i med hjälp av komponenterna för respektive med avseende på basen , och . Om båda baserna är ortonormerade, alltså ON-system, så är kolonnerna i matrisen parvis ortogonala och normerade, det vill säga är en ortogonal matris, så 1 . Därmed är det inte så "kostsamt" att "gå" mellan de olika representationerna. Även de tre rotationsmatriserna x Θ , y Θ och z Θ i föregående avsnitt är ortogonala. Vi ska nu använda detta för att bestämma ett samband mellan koordinaterna x, y, z och x, y, z för en punkt P i koordinatsystemen O, , , y O, , , . Om origo O för det senare systemet har koordinaterna xO , yO , zO med avseende på systemet O, , , x xO , y yO , z j y så har vektorn OP komponenterna zO med avseende på basen , , j O och komponenterna i där xO y yO z zO x O kan vi så äntligen teckna sambandet mellan koordinaterna x, y, z och x, y, z x x i x, y, z med avseende på basen , , . Med hjälp av teorin ovan för basbyte för en punkt P i koordinatsystemen O, , , .P respektive respektive O, , , x y z x y z xO x yO y z zO x x y z y z xO , yO , zO avslutningsvis är ortsvektorn för O med avseende på basen , , . Exempel: I ett tvådimensionellt fall är koordinaterna y för punkten P givna i systemet O, , som är vridet 30 moturs i förhållande till O, , . Sök koordinaterna för motsvarande punkt P i O, , . y .P j i O i Lösningsförslag: Vi har origo och transformationsmatrisen 3, 1 ; 3 1 2 2 1 3 2 2 Cos 30 Sin 30 Sin 30 Cos 30 x 30 j O 1.3,0.9 3,1 x ; , det vill säga och är kolonner. HH/ITE/BN Matriser och Mathematica så motsvarande punkt P i O, , P 19 . Naturligtvis finns motsvarande övning i Mathematica. . 1.3, 0.9 3.67583, 2.42942 AffineTransform , 1.3, 0.9 3.67583, 2.42942 En sista ängslig kontroll att vi kommer tillbaka till P i O, , med vetskapen att .P är ortogonal. 1.3, 0.9 ť Egenvärden och egenvektorer y Låt vara en given kvadratisk matris. Om det finns en vektor och ett reellt eller komplext tal Λ så att Λ kallas Λ för ett egenvärde till och en till Λ hörande egenvektor. I dessa sammanhang bortser vi från den ointressanta, så kallade triviala lösningen att är nollvektorn. Vidare ska vi betrakta komplexa egenvärden lite styvmoderligt eftersom Λ då inte ligger i samma rum som . Med ett språkbruk från vektorernas värld kan man alltså säga att en egenvektor till Ax Λx x x är en vektor som efter transformation är parallell med sig själv, det vill säga Λ . Egenvärdesanalys används mycket flitigt inom de flesta tillämpningar. Här några enkla observationer av lineariteten som ofta kommer till användning 1 2 Om 1 och 2 är egenvektorer till för samma egenvärde Λ, så är också 1 2 egenvektor till för samma egenvärde Λ, ty Λ 1 Λ 2 Λ 1 1 2 1 2 2 . Om är egenvektor till för egenvärde Λ och s ett reellt tal så är också s egenvektor till för samma egenvärde Λ, ty s s sΛ Λ s . Egenvektorer är alltså bara bestämda så när som på en syftlinje. Vi får efter omstuvning ett homogent ekvationssystem Λ Λ Ett nödvändigt och tillräckligt villkor för att detta system ska ha icke-triviala lösningar är att koefficientmatrisens determinant är noll. Detta kallas för sekularekvationen och är en polynomekvation av grad n i Λ om är av ordning n. Λ 0 Denna ekvation har alltid n rötter om dessa räknas med multiplicitet. Mängden av alla egenvärden till Exempel: Bestäm egenvärden och motsvarande egenvektorer till kallas :s spektrum. 3 2 . 1 2 Lösningsförslag: Vi får sekularekvationen 3 2 1 2 Λ 1 0 0 1 Λ2 Egenvektor till Λ1 1. Ansätt e1 3 0 x så får vi y Λ 2 1 5Λ 3 x 4 2 0 0 Λ Λ1 3 1 och Λ2 1 x 2y 0 2 1 y 0 x x y y Λ 2 Λ 2 1 0 4 0 . Ekvationerna är parallella som sig bör. Annars 0 är det felräknat! Vi kan nu välja exempelvis x 1 och y 1. Egenvektorerna är bara bestämda med avseende på syftlinje! Man brukar välja så man får "smidiga" tal eller så är man konsekvent och normerar egenvektorerna. Så första paret med egenvärde och tillhörande egenvektor Λ1 1, e1 1, 1 . Egenvektor till Λ2 4. Ansätt e2 x så får vi y 3 x 4 x 2y 0 2 4 y 0 andra paret med egenvärde och tillhörande egenvektor Λ2 4, e2 x x 2, 1 . 2y 0 . Ok! Välj exempelvis x 2y 0 2 och y 1, varav 20 Matriser och Mathematica HH/ITE/BN I Mathematica gör Eigensystem hela jobbet eller Eigenvalues och Eigenvectors för portionsvis leverans Eigensystem 4 2, 1 3 2 1 2 1 1, 1 Egenvärdena till en reell symmetrisk matris är alla reella och egenvektorerna är parvis ortogonala. Reella symmetriska matriser är mycket vanliga i diverse tillämpningar. 1 2 . 2 1 Exempel: Bestäm egenvärden och motsvarande egenvektorer till Lösningsförslag: Vi får sekularekvationen 1 2 2 1 Λ 1 0 0 1 Λ2 Egenvektor till Λ1 1. Ansätt xe1 1 0 2 2Λ 3 1 2x x så får vi y Λ 2 1 0 0 Λ Λ1 1 Λ 1 1 och Λ2 3 0 0 y y 1 x 2y 1 1 y x x Λ 2 2 0 0 . Ekvationerna är parallella som sig bör. 0 Annars är det felräknat! Vi kan nu välja exempelvis x 1 och y 1. Egenvektorerna är bara bestämda med avseende på syftlinje! Man brukar välja så man får "smidiga" tal eller så är man konsekvent och normerar egenvektorerna. Så första paret med egenvärde 1, xe1 1, 1 . och tillhörande egenvektor Λ1 Egenvektor till Λ2 3. Ansätt xe2 1 3 x 2y 2x 1 3 y x så får vi y andra paret med egenvärde och tillhörande egenvektor Λ2 3, xe2 0 0 x x 1, 1 y y 0 0 . Ok! Välj exempelvis x 1 och y 1, varav . Vi låter Mathematica kontrollera riktigheten i vår kalkyl Eigensystem 3 1, 1 1 2 2 1 1 1, 1 I många tillämpningar finner vi ofta system bestående av flera delar, vilka är ömsesidigt beroende av varandra genom regelbundet utbyte av förnödenheter och tjänster. Det kan vara ett biologiskt system, växter och djur, som livnär sig på varandra eller på annat sätt är beroende av varandra. Det kan vara ett ekonomiskt system med ömsesidigt utbyte av varor, tjänster och kapital. Ett sådant system kan åtminstone på ett ytligt plan beskrivas genom att man anger utbytet av förnödenheter vid varje tidsperiod. Detta leder naturligt till så kallade utbytesdiagram och dess övergångsmatris. Vi exemplifierar först med en äng, följt av ugglor och råttor i skogen för att avsluta med Leslies djurhållningsmodell. Exempel: På en äng som lämnats åt sitt öde finns bara gräs och buskar. Man har observerat att a Under en växtsäsong övertar buskar 30 av den mark som var bevuxen med gräs. b Under en växtsäsong dör 20 av buskarna och marken återgår till att vara gräsbevuxen. Hur länge dröjer det innan halva ängen är bevuxen med buskar om det var 10 från början ? Finns det något jämviktstillstånd? Hur ser i så fall fördelningen av gräs och buskar ut ? Lösningsförslag: Låt xg vara andelen gräs och xb andelen buskar på ängen, det vill säga xg ett år och n xb 1, så är n 1 året därpå. De två observationerna ger oss då xg 0.3xg 0.2xb xg xb a n 1 xg b xb 0.2xb 0.3xg b a xb n Så tillståndet från ett år till nästa ges av överföringsmatrisen . 1 10 7 2 ; 3 8 n 1 0.7 0.2 0.3 0.8 xg xb n 1 n n xg , xb tillståndet HH/ITE/BN Matriser och Mathematica 21 Nu är det bara att starta med 10% buskar år 0 och se hur det ser ut efter ett år efter två år och efter tre år. 0.9, 0.1 , . 0.9, 0.1 , . . 0.9, 0.1 , . . . 0.9, 0.1 0.9 0.65 0.525 0.4625 0.1 0.35 0.475 0.5375 Kanske går det mot ett jämviktstillstånd? En bild över utvecklingen under de första 20 åren ger stöd åt vår förmodan. år 20; p NestList . &, 0.9, 0.1 , år ; ListPlot p, PlotRange 0, 1.01 , 0, 1 , Joined True, PlotStyle Red, AxesLabel GridLines Automatic, GridLinesStyle Directive GrayLevel 0.8 , Epilog Red, MapThread Text 1, 2, Background White &, Range 0, år , p xg , x b , xb 1.0 0.8 0.6 17 16 15 20 19 18 14 13 12 11 10 987654 3 2 0.4 1 0.2 0 xg 0.0 0.0 0.2 0.4 0.6 0.8 1.0 Verkar hopa sig vid 0.4, 0.6 . Vi gör en ängslig test några år senare tiotusen år MatrixPower , 10 000 . 0.9, 0.1 0.4, 0.6 Ja, så här brukar modellering med dator gå till. Oftast räcker det och man kommer kanske inte längre teoretiskt. Men här kan vi dock späka oss lite till Typiskt är att vi har en följd av vektorer 0 , 1 , 2 , och, bortsett från "startvektorn" 0 , så gäller det att varje vektor kan fås ur föregående genom multiplikation med en konstant matris enligt n 1 n för n 0, 1, 2, 3, n Vi vill undersöka vad som händer med följden n , när n . Vi har redan insett att upprepad användning av formeln ger n 0, så vårt problem skulle också kunna sägas vara att undersöka potenserna av matrisen . Vi ska se att vi kan skaffa oss en formel för n ! Vår kvadratiska matris har naturligtvis egenvärden och tillhörande egenvektorer Eigensystem 1 1 2 2 , 1 1, 1 3 Låt oss skriva vår startvektor 0 som en linjärkombination av egenvektorerna bestämmer tal c1 och c2 sådana att 0 c1 e1 c2 e2 9 1 Solve , 10 3 c1 5 2 c1 , 1 3 10 2 3 n 3 5 och e2 , det vill säga vi gör ett basbyte och 1, 1 c2 1 , c2 2 Nu är det lätt att meka ihop en formel för 1 e1 0 3 5 1 3 5 2 3 5 1n e1 e1 1 e1 12 1 2 1 2 1 1 2 2 e1 e2 1 2 1 n 2 e2 n: 3 5 e1 e2 3 5 1 2 2 3 5 1 3 5 e2 1 2 e1 12 1 n 1 e1 2 Vi testar på några tillstånd vi känner sedan tidigare e2 e2 e1 3 5 1 e1 1 1 2 2 för alla n e2 1 2 1 1 2 2 1 2 2 0, 1, 2, 3 5 e2 12 e1 e2 3 5 13 1 2 e1 1 2 2 e2 1 2 1 3 2 e2 22 Matriser och Mathematica 3 2 , 1 5 3 1 HH/ITE/BN n 1 1, 1 .n 0, 1, 2, 3, 10 000 N 2 0.9 0.65 0.525 0.4625 0.4 0.1 0.35 0.475 0.5375 0.6 Om matrisen n n har egenvektorerna c1 Λn1 e1 c2 Λn2 0 och e1 e2 med egenvärden Λ1 respektive Λ2 och 0 c1 e1 c2 e2 , så gäller allmänt att e2 Så här ser det ut om är en 2 2-matris. Om är en 3 3-matris har man 3 egenvektorer, 3 egenvärden och en summa av tre termer och så vidare. Sedan finns det tyvärr "undantagsmatriser", för vilka egenvektorerna inte räcker till för att varje 0 skall kunna skrivas som en linjärkombination av egenvektorerna. Sagan är sann även då egenvärdena är komplexa. Nu drar vi oss till minnet att Λn Λ n 0, när n , om Λ 1 . Av detta kan vi inse följande , när n , om Λ 1 , varmed menas att alla komponenter i vektorerna n 0. Detta Om alla egenvärden har absolutbeloppet 1, så n 0, när n är en slags stabilitet. Om något Λ har absolutbelopp 1, har vi termer i summan som (utom i undantagsfallet då motsvarande koefficient c 0). Detta är instabilitet. Om ett av egenvärdena, säg Λ1 1 och övriga är till absolutbeloppet 1, så får vi att n c1 e1 , när n . Stabilitet. I vårt fall gäller tydligen det sistnämnda, så olika starttillstånd 0? n c1 e1 3 2 , 5 3 1 2 3 5 , 5 vilket stämmer bra! Kvarstår bara en stilla oro angående 2 3 Vi kan starta i vilket tillstånd som helst, alla går mot 5 , 5 ! Det finns gott om tillämpningar där man vill att överföringsmatrisen ska ha egenvärden enligt det sista alternativet ovan, exempelvis sluten ekonomi och stabil djurpopulation. Det vi har studerat är ett så kallat diskret dynamiskt system, (vi återkommer till kontinuerliga i samband med differentialekvationer). Följden av vektorer 0 , 1 , 2 , kallas bana eller trajektoria och en stabil punkt för attraktor. Figuren ovan är exempel på en trajektoria med en attraktor. Exempel: I storskogen är populationen av ugglor U och råttor R , räknat i tusental, kopplade från månad k till nästföljande månad k 1 av ekvationerna Uk 1 0.5Uk 0.4Rk Rk 1 pUk 1.1Rk Förklara utförligt innebörden av de fyra ingående koefficienterna Plantera nu lite U och R i skogen och undersök utvecklingen under några månader för lite olika värden på p. Förklara Bestäm sedan p så att det blir en stabil uppsättning djur över tiden. Om det då finns 20 ugglor i skogen, hur många är råttorna då ? Lösningsförslag: Vi börjar med de fyra koefficienterna. 0.5Uk innebär att vid avsaknad av råttor i storskogen så kommer hälften av ugglorna att dö under månaden. På motsvarande sätt innebär 1.1Rk att vid avsaknad av ugglor så ökar antalet råtter med 10% under en månad. Om nu båda arterna är närvarande så ökar ugglorna sin population med 0.4Rk medan pUk innebär att råttornas antal minskar beroende på de jagande ugglorna, i snitt blir alltså 1000 p råttor uppätna av en uggla varje månad. Sedan har vi parametern p. Av föregående exempel har det framgått att det vore en idé att titta på egenvärdena till överföringsmatrisen för olika värden på p. 0.5 0.4 ;Λ p 1.1 0.2 4. 2.25 Eigenvalues 10. p , 0.2 2.25 10. p 4. Eftersom vi inte här befattar oss med komplexa egenvärden så måste 0 p 0.225. Undre gränsen är naturlig eftersom ugglornas närvaro knappast bidrar till att öka antalet råttor. Studera nu de två egenvärdena Λi som funktion av p i en graf Plot Λ, p, 0, 0.225 , PlotStyle Λ1 ,Λ2 1.1 1.0 0.9 0.8 0.7 0.6 p 0.05 0.10 0.15 0.20 Blue, Red , AxesLabel "p", "Λ1 ,Λ2 " HH/ITE/BN Vi ser att 0 Matriser och Mathematica Λ1 1 och för något kritiskt värde pc har vi 23 Λ2 1, för p pc . Så följande fall utkristalliserar sig 0 Λ2 1, för p pc För p pc brakar antal ugglor/råttor mot oändligheten (instabilitet). Modellen gäller inte så länge eftersom det varken finns mat eller utrymme här på jorden till "så" många. För p pc dör såväl ugglor som råttor ut. Med tanke på den biologiska mångfalden så är detta en något tråkig form av stabilitet. För p pc har vi Λ2 1 och 0 Λ1 1 och vi går mot ett stabilt jämviktstillstånd i storskogen, oberoende av hur många djur vi planterar ut i "begynnelsen". Detta kritiska värde är med tillhörande egenvärden pc p Solve Λ 2 1 , Λ . pc 0.125 0.6, 1. Kontrollera ovanstående förutsägelser genom att "simulera systemet", det vill säga räkna fram antalen ugglor/råttor ett antal tidsenheter framåt för olika p. Skriv ut var tolfte månad. Det går bra (nästan bättre) att räkna för godtyckliga startvärden U och R. Vi börjar med p pc och ser att både ugglor och råttor ökar över tid. f x Nest . .p NestList f, U, R , 5 0.05 &, x, 12 ; Simplify U 1.60134 R 0.141263 U 2.26074 R 3.39401 R 0.30058 U 4.79043 R 7.19165 R 0.636908 U 10.1506 R 15.2386 R 1.34956 U 21.5083 R 32.2894 R 2.85962 U 45.5745 R Sedan p R 0.200167 U 0.424251 U 0.898956 U 1.90482 U 4.03618 U pc och ser att både ugglor och råttor dör ut. f x Nest . .p NestList f, U, R , 5 0.2 &, x, 12 ; Simplify U R 0.537176 R 0.254747 U 0.551018 R 0.268588 U 0.15915 R 0.0793833 U 0.159341 R 0.0795749 U 0.0450515 R 0.0225231 U 0.0450541 R 0.0225257 U 0.0127253 R 0.00636261 U 0.0127253 R 0.00636265 U 0.00359402 R 0.00179701 U 0.00359402 R 0.00179701 U Sist det intressant stabila p pc som säger oss att oberoende vad vi startar med U, R kommer vi så småningom att få ett stabilt läge R 0.25U, 1.25R 0.3125U . f x Nest . . pc &, x, 12 ; NestList f, U, R , 4 Simplify U R 0.997823 R 0.247279 U 1.24946 R 0.31182 U 0.999995 R 0.249994 U 1.25 R 0.312499 U 1. R 0.25 U 1.25 R 0.3125 U 1. R 0.25 U 1.25 R 0.3125 U Avslutningsvis har vi frågan om det jämviktstillstånd som motsvarar 20 ugglor. Eigensystem Λ, 1. 0.624695, 0.780869 . pc 0.6 0.970143, 0.242536 U och R ska alltså förhålla sig som 1 1, 1 1., 1.25 Så 20 ugglor motsvarar 20 1.25 1000 25 000 råttor i storskogen. 24 Matriser och Mathematica HH/ITE/BN Exempel: Leslies populationsmodell P. H. Leslie 1945 är ett försök att beskriva utvecklingen hos en population med hänsyn tagen till åldersstrukturen. Modellen räknar vanligen endast med hondjuren, eftersom de är avgörande för reproduktionen. Man tänker sig således att populationen handjur hela tiden kan hållas på en tillräckligt hög nivå för att modellens antaganden skall vara rimliga. Vi beskriver modellen med tre olika åldersgrupper. Generellt tillåter modellen ett godtyckligt antal åldersgrupper. Låt hondjuren delas in i tre åldersgrupper G0 de nyfödda , G1 och G2 . Vi skall sätta upp en modell för antalet djur i dessa tre olika grupper vid tidpunkterna 0, 1, 2, 3, . Alla djur som vid en viss tidpunkt befinner sig i den sista åldersgruppen G2 kommer vid nästa tidpunkt av vara döda. En viss andel pi av de hondjur som befinner sig i gruppen Gi kommer att överleva till nästa tidpunkt. Vidare kommer varje hondjur i åldersgruppen Gi i genomsnitt föda fi hondjur. Om det nu vid tidpunkten n finns xn 0 , xn 1 , xn 2 hondjur i de tre ålders– grupperna får vi följande samband mellan kullarna vid tidpunkt n och nästföljande tidpunkt n 1. xn xn xn 1 1 1 0 1 2 f0 xn 0 p0 xn 0 p1 xn 1 Om vi nu samlar åldersgrupperna i n xn 0 , xn 1 , xn 2 trisen som alltid är kvadratisk. Vi får direkt i vårt fall f0 f1 f2 p0 0 0 0 p1 0 f1 xn 1 f2 xn 2 kan sambandet skrivas n 1 och inser att den vid fler åldersgrupper generaliseras till n, där är den så kallade Lesliema- f0 f1 f2 p0 0 0 0 p1 0 0 0 p2 f3 0 0 0 Vi provkör med lite siffervärden på parametrarna p0 p1 f0 f1 f2 0.5 50 av de nyfödda överlever 0.8 80 av ettåringarna överlever 0 inga hondjur i G0 reproducerar sig 1.6 1.6 honor föds i genomsnitt av varje ettåring 0.5 0.5 honor föds i genomsnitt av varje tvååring 0 1.6 0.5 0.5 0 0 0 0.8 0 Vi antar att åldersstrukturen vid tidpunkten 0 är känd. På grund av en miljökatastrof finns inga djur i grupperna G0 och G2 . Antalet djur i G1 är 100. Det betyder att 0 0, 100, 0 . Följande tabell visar hur åldersstrukturen förändras under de första tjugo åren. 0 1.6 0.5 ; NestList Round 0.5 0 0 0 0.8 0 . &, 0, 100, 0 , 20 0 160 40 128 64 110 77 101 83 95 87 94 89 93 89 91 89 91 89 91 89 100 0 80 20 64 32 55 38 50 42 48 44 47 44 46 44 46 44 46 44 46 0 80 0 64 16 51 26 44 30 40 34 38 35 38 35 37 35 37 35 37 35 Frågan är nu om åldersfördelningen konvergerar, det vill säga med tiden närmar sig en viss stabil jämviktsfördelning. Ser så ut efter lite svajig inledning. Då måste det gälla att och fördelningen ges av den egenvektor som motsvarar egenvärdet ett. Λ, e Eigensystem 1. 0.842152, 0.421076, 0.336861 0.723607 0.696556, 0.481308, 0.532121 Så den sökta stabila jämviktsfördelningen blir e 1 Total e 1 0.526316, 0.263158, 0.210526 0.276393 0.177642, 0.321358, 0.930146 HH/ITE/BN Matriser och Mathematica 25 Exempel: I mekanik används egenvektorerna för att peka ut ett naturligt koordinatsystem för en kropp. Vi känner igen begreppet masströghets xx yx m yy y2 m m r m. Detta kan utvidgas m yx m m xy m x2 m y till att man bestämmer den så kallade masströghetsmatrisen med analog m m 2 moment för en kropp runt en given axel I uppbyggnad i 3D. Integralerna xy y xy m kallas deviationsmoment. Samma j j struktur och egenvärdesanalys finner man exempelvis i hållfasthetslära, statistik och i sökmotorn Google som använder egenvektorer för att ta x i genvägar när den söker genom enorma datamängder. Även egenvärdena kan ges en fysikalisk tolkning. Men först modellen. En smal stång med längden L och massan m är placerad i vårt xy koordinatsystem enligt vidstående figur. Sök masströghetsmatrisen . i 30 x Lösningsförslag: Börja med att bestämma stångens "funktion" y Tan 30 x; Sedan tröghetsmatrisen. Vi har m L Cos30 2 L Cos30 2 L2 m xy x2 Ρ y '2 1 m 1 D y, x x i färskt minne 2 x L L2 m 48 16 L2 m L2 m 16 y2 xy Ρ s 3 16 3 Eigensystem L2 m 12 1 0 , 1 3 , 1 3 Vi ser att egenvektorerna precis pekar ut det naturliga x y-systemet för kroppen! Dessa kallas för kroppens huvudtröghetsriktningar. Vidare är egenvärdena lika med masströghetsmomenten (huvudtröghetsmomenten) runt respektive riktning, det vill säga de berättar om kroppens utsträckning i respektive riktning. Lite mer om egenvektorer och egenvärden 1 2 Om Om har en egenvektor med egenvärdet Λ så har n en egenvektor med egenvärdet Λn . inverterbar alla egenvärden till är skilda från noll. 3 Om inverterbar och egenvektor till 4 Om alla element i är positiva har minst ett positivt egenvärde och alla komponenter i motsvarande egenvektor är ickenegativa. Perrons sats . 5 Låt Ci till 6 z : z aii i j med egenvärdet Λ så är också egenvektor till 1 1 med egenvärdet Λ . aij vara cirklar i det komplexa talplanet. Då ligger samtliga egenvärden i unionen av Ci , det vill säga i Ci . Gerschgorins sats . satisfierar sin sekularekvation. Cayley–Hamiltons sats . Detta märkliga resultat betyder alltså om sekularekvationen är Λn cn 1 Λn 1 c1 Λ c0 0 så gäller att n cn 1 n 1 c1 c0 2 Exempel: Undersök om Gerschgorin fungerar på matrisen 3 5 3 1 4 5 . 8 7 z: z 2 5 8 Lösningsförslag: Gerschgorins tre cirklar får vi med receptet (5) ovan. C1 C2 z : z 4 3 5 z: z 4 8 och till sist C3 z : z 7 dena med sekularekvationen 2 3 5 3 1 4 5 8 7 Λ 1 0 0 Λ 0 1 0 0 0 1 1 Λ2 4Λ 2 80 Λ 3 5 0 0 Λ1 . 21 3 1 4 Λ 5 8 7 Λ 0 21 , Λ2 21 Λ3 5Λ2 3 1 z: z 7 76Λ 21 och Λ3 80 1 z: z 2 4, 13 . Sedan egenvär- 0 26 Matriser och Mathematica HH/ITE/BN En liten bild över situationen som bekräftar Gerschgorin kan inte skada. Vi låter Mathematica göra grovjobbet 2 3 5 2 1 3 1 4 5 ;Λ 8 7 21 , 2 1 Eigenvalues 21 , 1 Graphics Table c i, Blue, Green, Orange Red, PointSize 0.025 i, 3 , AspectRatio i , 0 ; r Plus i , Circle c, r , , Point Λ i , 0 Automatic, Axes Abs i Abs i, i ; Text Ci , c r 0.73 1, 1 , 1, 0 , , Text Subscript "Λ", i , Λ i , 1.3 True, AxesLabel x, y , y 10 C3 C2 5 Λ2 10 Λ3 5 C1 5 Λ1 10 15 20 x 5 10 Vi ser att egenvärdena Λ j , j 1, , n till matrisen 3 i 1Ci . ligger i unionen ť Gauss eliminationsmetod för lösning av linjära ekvationssystem Eftersom lösning av ekvationssystem är vardagsmat för alla världens datorer är det viktigt att ha stabila och effektiva algoritmer, inte minst då antalet obekanta kanske uppgår till flera millioner. Man skiljer på iterativa och direkta ekvationslösare. Exempel på en iterativ metod hittar vi i ett senare avsnitt. Här ska vi studera den vanligaste direkta metoden som också varit förhärskande under många decennier. Men innan vi går vidare ska vi betrakta ett litet ekvationssystem med två ekvationer och två obekanta 2x 4x 6y 7y 3 8 1 2 och göra följande mer eller mindre triviala observationer. Lösningen till ett ekvationssystem ändras inte om vi 1. Byter plats på två rader. 2. Multiplicerar en rad med ett tal skilt från noll. 3. Adderar en rad till en annan. Detta kallas för elementära radoperationer. Ekvationssystem som kan omformas i varandra med elementära radoperationer kallas radekvivalenta och har alltså samma lösning. Egentligen borde man kanske prata om ekvationer i stället för rader men denna nomenklatur hör samman med att vi lite längre fram kommer att genomföra arbetet i en matris. Punkt 1 är självklar och punkt 2 känner vi igen som "man ska göra samma sak på båda sidor", det vill säga i exempelvis ekvation (2): 123 4x 7 y 123 8. Punkt 3 vilar på samma argument, så ekvation (2) igen: 4x 7 y 2 3 8 2 3. Men enligt ekvation (1) är 2x 6 y 3, vilket vi nu utnyttjar för att byta ut 3:an i vänsterledet i senaste versionen av ekvation (2): 4x 7 y 2 2x 6 y 8 2 3 5 y 2. Genom att på ett sådant här smart sätt utnyttja väsentligen punkterna 2 och 3 kan man reducera ett ekvationssystem till en enkel form som är lätt att lösa. Denna systematiska metod kallas Gauss eliminationsmetod och man kan på grund dess enkelhet lätt dressera en dator att härma den. Häng mé! 2x 4x Om vi multiplicerar ekvation (1) med 4 2 6y 7y 3 8 1 2 och subtraherar den från ekvation (2) får vi 2x 4x 6y 3 7y 4 2 1 2x 6y 8 4 2 3 2 HH/ITE/BN Matriser och Mathematica 27 vilket hyfsas till 2x 6y 5y 3 2 1 2 Det är nu uppenbart att det "smarta" utnyttjandet av punkt 2 och 3 bestod i valet av just 4 2 så att x elimineras från ekvation (2) efter multiplikation och subtraktion av ekvation (1). Strategin är att med elementära radoperationer arbeta sig systematiskt igenom kolonnerna i med syfte att göra den högertriangulär, det vill säga så att alla element under huvuddiagonalen blir noll. Detta är själva eliminationssteget (eng. elimination). Elementen på huvuddiagonalen i som används flitigt i nämnaren på den lämpliga faktorn kallas pivotelement (eng. pivot element). De obekanta kan nu enkelt bestämmas genom successiv bestämning "underifrån", så kallad bakåtsubstitution (eng. back substitution). 2 : 5y 2 2 5 y 1 : 2x 6 2 5 3 x 27 10 Gauss eliminationsmetod är därmed ett systematiskt sätt att bestämma lösningen till ekvationssystemet utan att använda sig av inversen till . Det brukar vara praktskt att utföra räkningarna i totalmatrisen eller utökade matrisen (eng. augmented matrix), bestående av med en extra kolonn , vilket skrivs som kolonnkatenering . Efter eliminationssteget säger man att totalmatrisen har trappform (eng. row-echelon form). Som "biprodukt" efter eliminationssteget har vi även determinanten till som produkten av talen i huvuddiagonalen. Man kan visa att Gauss eliminationsmetod är den som kräver minst antal operationer (multiplikationer och additioner) för att lösa ett givet ekvationssystem, lösningstiden är proportionell mot n3 , det vill säga T kn3 där n är antalet obekanta och k en konstant som beror på datorn. Därför är Gauss en typisk "arbetshäst" i numerisk analys. Vi illustrerar metoden med ytterligare ett exempel, denna gång med tre ekvationer och tre obekanta. Exempel: Sök lösningen till ekvationssystemet 2 4 4 6 6 8 , där 1 5 , 4 2 3 och 6 x1 x2 . Använd Gauss eliminationsx3 metod. Lösningsförslag: Först tittar vi i facit 2 4 Solve 4 6 6 8 1 x1 5 . x2 x3 4 13 x1 7 1 , x2 2 2 3 6 2 , x3 7 2 4 Sedan raskt över till Gauss med totalmatrisen 4 6 6 8 1 2 5 3 . Använd systematiskt elementära radoperationer för att göra 4 6 högertriangulär. Med k menas talen i rad k i totalmatrisen och med Kolonn 1: 2 2 4 4 6 6 8 4 2 2 1 2 5 3 4 6 2 0 0 4 2 4 1 7 7 4 2 6 2 4 6 4 2 Kolonn 2: 3 6 2 1 , sedan 3 2 1 0 1 : 4 2 6 2 8 4 2 6 2 1 4 5 4 4 4 2 6 2 2 1 3 1 6 28 4 2 6 2 2 0 0 2 2 4 2 4 1 7 7 2 1 0 2 0 0 4 2 0 1 7 7 7 28. Undrar ändå 2 : 2 0 0 4 2 4 4 2 1 7 2 7 4 2 2 1 7 0 Vi är nu färdiga med eliminationssteget och noterar att 2 4 Det 4 6 6 8 menas att systemen är radekvivalenta. 1 5 4 4 2 1 2 2 2 1 2 28 Matriser och Mathematica Slutligen bestämmer vi Ekv 3 : 7x3 2 Ekv 2 : 2x2 7 genom bakåtsubstitution 2 7 x3 2 7 1 2 Ekv 1 : 2x1 4 1 1 x2 2 7 Om vi skapar totalmatrisen 2 4 4 6 6 8 M HH/ITE/BN 2 1 2 13 , 7 1 , 2 2 7 13 7 x1 , kan vi sedan betrakta skådespelet som följande programsnutt i Mathematica spelar upp. 1 2 5 3 ; 4 6 n Length M ; Print " Elimination " DoPrint "j ", j, ": ", M ; M i, j ;M i Doq qM j ; M j, j a10 i j a10 j j Print"j ", j, ", i ", i, ", ", , i, j , " ", q, " ", M; 1, n ; , j, 1, n Print " Bakåtsubstitution Table 0, n 1 ; Do i M i, n 1 M i . Print xi , " ", i ; , i, n, 1, 1 " M i, i ; Elimination 2 4 j 1: 4 6 6 8 j 1, i 2, a21 1 2 5 3 4 6 2 2 0 6 4 2 8 1 7 4 2 1 6 3 2 0 0 4 2 4 1 7 7 2 1 0 4 2 0 1 7 7 2 1 2 a11 j 1, i 3, a31 a11 2 j 2: 0 0 j 2, i 3, 4 2 4 a32 1 7 7 2 a22 2 j 3: 0 0 4 2 0 1 7 7 2 1 0 2 0 0 2 1 2 Bakåtsubstitution 2 x3 7 1 x2 2 13 x1 7 I allmänhet erhåller man det bästa numeriska resultatet genom att välja så stort pivotelement som möjligt och för att åstadkomma detta är det ibland nödvändigt att sortera om raderna enligt elementära radoperationer punkt 1. Detta kallas pivotering. En god implementering av Gauss eliminationsmetod, exempelvis Solve i Mathematica, tar hänsyn till detta. HH/ITE/BN Matriser och Mathematica 29 ť Jacobis metod för beräkning av invers matris 1 . Då väljer I praktiken används inversen nästan aldrig explicit. Ofta dyker den upp i sällskap med multiplikation av vektor, man istället att med hjälp av Gauss eliminationsmetod lösa ekvationssystemet . Anledningen till detta är att det krävs väsentligt mindre arbete i en dator. Om vi trots allt är intresserade av inversen, så kan vi använda en till Gauss eliminationsmetod snarlik metod, nämligen Jacobis bildar vi totalmatrisen . Med samma elementära radoperationer som vid Gauss omformar vi sedan metod. Istället för 1 denna till 1 . Att detta blir rätt inses av följande kalkyl där är den sökta inversen till ; 1 1 . 3 2 4 6 2 7 Exempel: Bestäm inversen till 1 5 . Använd Jacobis metod. 3 Lösningsförslag: Först tittar vi i facit 3 2 Inverse 4 6 2 7 17 13 16 71 2 71 11 71 19 71 16 71 17 71 10 71 71 71 1 5 3 3 2 Sedan raskt över till Jacobi. Vi får totalmatrisen 4 6 2 7 1 1 0 0 5 0 1 0 . Använd nu elementära radoperationer för att systematiskt 3 0 0 1 arbeta igenom de tre första kolonnerna så att dessa bildar en enhetsmatris. Med k menas talen i rad k i totalmatrisen och med menas att systemen är radekvivalenta. Kolonn 1: Dividera 1 med 3, sedan 2 3 2 4 6 2 7 1 1 0 0 5 0 1 0 3 0 0 1 1 1 1 3 19 10 11 3 0 1 0 17 3 1 3 2 5 2 3 1 0 0 1 0 0 1 3 5 2 5 16 71 5 3 10 , 3 1 0 3 10 0 1 0 1 5 3 10 17 71 71 , 10 n 0 1 0 0 0 1 0 8 5 19 10 11 3 2 3 3 5 2 5 2 3 1 0 0 0 0 1 0 0 1 1 1 3 4 3 0 0 1 1 0 0 3 0 0 1 0 17 3 1 5 3 10 0 1 0 0 0 1 0 1 0 0 8 5 0 10 71 2 1 : 1 3 19 3 2 , slutligen 3 17 71 2 5 16 71 19 10 2 3 10 3 2 7 Om vi skapar totalmatrisen 3 2 4 6 2 7 1 sedan 1 Vi är nu färdiga och kan direkt avläsa M 0 0 17 3 0 0 1 1 3 sedan 1 0 0 Kolonn 3: Dividera 3 med 8 5 19 10 1 3 4 6 2 7 Kolonn 2: Dividera 2 med 2 3 2 3 4 1 , slutligen 3 17 71 2 71 16 71 3 , slutligen 2 13 71 3 10 17 71 16 71 13 71 11 71 17 71 3 5 2 5 8 5 19 10 0 1 0 10 71 0 0 1 16 71 19 71 10 71 1 3 19 3 11 3 1 3 4 3 2 3 0 0 1 0 0 1 2 : 8 5 19 10 71 10 1 0 0 0 2 3 10 3 17 3 1 5 3 10 17 10 0 0 1 3 : 17 71 2 71 16 71 13 71 11 71 17 71 16 71 19 71 10 71 . , kan vi sedan betrakta skådespelet som följande programsnutt i Mathematica spelar upp. 1 1 0 0 5 0 1 0 ; 3 0 0 1 Length M ; DoPrint "j ", j, ": ", M ; 30 Matriser och Mathematica HH/ITE/BN M j p ; M j, j ; M j p Print "j ", j, ", ", a10 j j , " ", p, " ", M ; Do If i j, q M i, j ; M i qM j ; Print "j ", j, ", i ", i, ", ", a10 i j , " ", q, " , i, 1, n , j, 1, n 3 2 j 1: 4 6 2 7 1 1 0 0 5 0 1 0 3 0 0 1 1 j 1, a11 3 2 1 1 3 3 3 4 6 2 7 5 3 1 j 1, i 2, a21 4 0 2 1 0 j 1, i 3, a31 2 0 1 j 2: 0 0 2 1 3 10 3 19 1 3 4 3 17 3 11 3 2 3 3 3 0 0 2 1 3 10 3 19 3 3 7 3 1 3 10 3 19 3 4 3 17 3 11 3 2 3 3 3 1 3 19 3 2 17 10 11 5 2 3 3 3 0 0 1 10 11 5 2 10 3 3 3 3 1 5 2 5 3 10 71 5 8 10 17 10 5 10 0 0 0 10 17 5 19 0 1 0 3 5 3 8 0 1 10 0 1 3 1 0 1 5 2 5 3 10 71 5 8 10 17 10 5 10 0 1 0 1 1 5 3 10 5 16 10 17 71 71 1 0 0 0 0 5 2 0 1 1 3 3 5 0 0 5 19 8 0 5 19 8 1 0 0 19 0 1 0 10 0 0 1 0 10 71 13 16 71 2 71 3 71 5 16 10 17 71 71 1 1 0 0 0 17 10 19 j 3, i 2, a23 0 1 5 2 1 71 j 3, i 1, a13 1 0 3 0 0 j 3, a33 0 0 5 19 17 0 0 1 8 0 1 0 j 3: 0 1 1 3 3 8 0 1 0 1 0 1 0 1 0 3 0 2 2 j 2, i 3, a32 0 0 3 4 1 0 1 j 2, i 1, a12 1 0 0 1 3 0 1 0 0 0 1 2 1 10 j 2, a22 0 0 0 10 71 17 13 16 71 2 71 11 71 19 71 16 71 17 71 10 71 71 71 ", M ; HH/ITE/BN Matriser och Mathematica 31 ť En iterativ metod för lösning av linjära ekvationssystem Fördelen med Gauss eliminationsmetod är att den i ett ändligt antal operationer ger rätt resultat på given tid T kn3 . Emellertid hamnar man i stora svårigheter då problemstorleken ökar och inte länge får plats i datorns minne utan måste delas upp i delmatriser (partioneras) och lagras på disk. Detta ökar lösningstiden drastiskt till mycket längre än formeln ovan antyder. Vidare kan man ju fråga sig om det är rimligt att bestämma en lösning med full maskinnoggrannhet, kanske 15-20 digitala siffror, om man betänker att vid matematisk modellering gör man ju en modell av verkligheten, kanske full av diverse idealiseringar? Då kan det vara dax att fundera på en iterativ lösare. Iterativa metoder baserar sig väsentligen på att man minimerar kvadratsumman . Detta kan göras mycket snålt eftersom algoritmen vanligtvis endast kräver vektorn explicit. Vid mycket stora problem är detta en dramatisk reduktion av minnesbehovet i datorn jämfört med själv, n jämfört med n2 tal. Denna situation har man exempelvis vid hållfasthetsberäkningar med den så kallade finita elementmetoden där är lättare att beräkna än . Den bakomliggande idén är enkel. Gissa en lösning 0 , mata algoritmen och ut kommer 1 som är en bättre lösning till ekvationssystemet. Denna skickar man naturligtvis in igen å igen ända till dess ingen förändring sker. Detta kallas att iterera (efter engelskans behöver iterate = upprepa). Man får alltså en sekvens av allt bättre i . Den stora fördelen är den tidigare nämnda att endast levereras från problembeskrivningen samt att man själv kan bestämma lösningens noggrannhet genom att avbryta itererandet när Ε, där Ε är ett på förhand bestämt litet tal. detta är uppnått. Vanligtvis testas noggrannheten efter iteration i som i i 1 När(/om) detta inträffar har vi konvergens. Naturligtvis finns det nackdelar. Den största är ju frågan hur många iterationer som behövs innan önskad noggrannhet Ε uppnås? Detta avgörs av det så kallade konditionstalet för , som i sin tur beror på hur utspridda egenvärdena till är. Genom så kallad förkonditionering med en matris som ''liknar'' 1 ökar prestandan rejält. Stor möda ägnas att finna dylika ''billiga'' förkonditioneringar. Detta sökande tillsammans med utveckling av effektiva iterativa metoder har varit mycket framgångsrikt på senare år. Redan för små problem har de blivit konkurrenskraftiga och för de riktigt stora har de varit den enda framkomliga vägen. En enkel medlem i denna klass av metoder brukar kallas steepest descent och kan enkelt beskrivas med en analogi från verkliga livet. Antag att du befinner dig på en alpsluttning och vill komma ned i dalen (minimering!). På grund av dimma är sikten begränsad till några meter. En strategi är då att gå i den riktning som lutar som mest nedåt. Fortsätt att gå rakt i denna riktning ända till det börjar luta uppåt. Tag ut ny riktning nedåt. Upprepa (iterera!) till dess att du kommer till en punkt där det är uppförsbacke i alla riktningar. Du har då kommit till dalens lägsta punkt! Nu klär vi denna strategi i något mera precis matematisk dräkt. Metoden med steepest descent är som sagt helt enkelt en metod att söka lokalt minimum till en funktion. Strategin är att från aktuell punkt i 1 förflytta sig i negativa gradientens riktning . Man kan med hjälp av figurerna nedan dra sig till minnes att detta innebär i en riktning vinkelrät mot den i 1 i 1 nivåkurva man befinner sig på. Det optimala steget i denna riktning är ju att gå så länge funktionen avtar. Detta ges av Αi i 1 . Från denna nya punkt i Αi i 1 tar man så ut en ny riktning och så vidare till dess man kommit till en punkt där ingen negativ i 1 gradientriktning kan hittas. Vi har då kommit till minpunkten. Metoden fungerar speciellt bra på kvadratiska funktioner, vilket det är frågan om här. Steglängden Αi , vars uppbyggnad vi inte fördjupar oss i för tillfället, är utformad för att vara optimal i detta fall, det vill säga vi tar hela den aktuella nerförsbacken i ett steg. Vetskapen att en kvadratisk funktion bara har ett enda lokalt och därmed globalt minimum ökar tryggheten ytterligare. Vektorn i 1 brukar kallas residualen (felet) eller residualvektorn eftersom den är just skillnaden mellan vänsterled och i 1 2 högerled i ekvationssystemet. Så den utgör därmed också ett mått på lösningens kvalitet eftersom 0 då vi har konvergens. Detta illustreras i nästa exempel. Nivåkurvor 5 30 30 4 50 3 y 58 61 2 61.6 6 1 20 55 10 0 0 1 30 2 42 3 x 4 5 32 Matriser och Mathematica Exempel: Dressera Mathematica till att lösa ekvationssystemet 4 2 2 7 x y HH/ITE/BN 20 med steepest descent. Figurerna ovan vilar på 22 detta exempel där man tydligt ser vägen ned i dalen med optimal steglängd. Lösningsförslag: Vi kör igång direkt, starta i 4 2 ; 2 7 20, 22 ; 0 0, 0 häng mé 0.0, 0.0 ; track ; 1, 1 ; 10 6 , While . . ; . ; . . Α ; Print , Α, , Α , . AppendTo track, ; Α ; 2.62004, 2.88204 , 0.131002, 20., 22. , 2.62004, 2.88204 , 884. 3.73566, 1.86783 , 0.297043, 3.75578, 3.41434 , 1.11563, 1.01421 , 25.7636 3.90881, 2.05829 , 0.131002, 1.32168, 1.45385 , 0.173143, 0.190457 , 3.86052 3.98253, 1.99127 , 0.297043, 0.248197, 0.225634 , 0.0737253, 0.067023 , 0.112513 3.99397, 2.00385 , 0.131002, 0.0873422, 0.0960764 , 0.011442, 0.0125862 , 0.0168593 3.99885, 1.99942 , 0.297043, 0.0164019, 0.0149108 , 0.00487207, 0.00442915 , 0.000491354 3.9996, 2.00025 , 0.131002, 0.00577193, 0.00634912 , 0.000756133, 0.000831746 , 0.0000736265 3.99992, 1.99996 , 0.297043, 0.0010839, 0.000985368 , 0.000321966, 0.000292697 , 2.1458 10 6 3.99997, 2.00002 , 0.131002, 0.000381433, 0.000419576 , 0.0000499684, 0.0000549652 , 3.21535 10 7 Vilken väg tog vi? track 0. 2.62004 3.73566 3.90881 3.98253 3.99397 3.99885 3.9996 3.99992 3.99997 0. 2.88204 1.86783 2.05829 1.99127 2.00385 1.99942 2.00025 1.99996 2.00002 Stegen är markerade med röda punkter i figuren ovan. Lägg speciellt märke till att vi väsentligen är framme redan efter några iterationer. Till slut stillar vi vår oro Solve x 4, y . x, y 2 Avslutningsvis nöjer vi oss med att nämna att liknande iterativa algoritmer kan konstrueras för att bestämma inverser samt egenvärden och egenvektorer.