Øving Matrisealgebra Gå til menyen Edit Preferences... og sett Format type of new output cells til TraditionalForm hvis det ikke allerede er gjort. Start med to eksempelmatriser med samme dimensjon: In[]:= B= ; - - - ; - (Setter du semikolon etter linjene, vises ikke output. Den er jo egentlig uinteressant, da den gjentar input). Addisjon av matriser Her summeres elementvis.det samme gjelder subtraksjon. Eneste krav er at alle matriser har like mange rader og søyler. Sjekk svarene! A+B 6 - - A-B - - - - Multiplikasjon med konstant Her multipliseres også elementvis. A 6-9 Subtraksjon kan derfor oppfattes som addisjon med negativ matrise A + H- BL - - - - Matrisemultiplikasjon Her multipliseres ikke elementvis. Hver rad i A multipliseres med hver kolonne i B som i et skalarprodukt, hvor raden i A oppfattes som radvektor og søylen i B som kolonnevektor. For at Mathematica skal forstå at vi mener matrisemultiplikasjon, må du sette et punktum (dot) mellom A og B. (Uttrykket AB uten dot gir elementvis multiplikasjon, men dette er uten betydning for oss).
Øving uke.nb Her multipliseres ikke elementvis. Hver rad i A multipliseres med hver kolonne i B som i et skalarprodukt, hvor raden i A oppfattes som radvektor og søylen i B som kolonnevektor. For at Mathematica skal forstå at vi mener matrisemultiplikasjon, må du sette et punktum (dot) mellom A og B. (Uttrykket AB uten dot gir elementvis multiplikasjon, men dette er uten betydning for oss). A.B - - 8-8 Øv deg på å gjennomføre beregningen av matriseproduktet for hånd. For eksempel vil tallet i posisjon (,) framkomme ved skalarproduktet mellom rad i A og kolonne i B: 8,, <.8-,, < Når du regner med vanlige tall, spiller rekkefølgen ingen rolle. + = + =, * = * = 6. Vi sier at algebraen med reellle tall er kommutativ. NB! Matrisemultiplikasjon er generelt ikke kommutativ. Derfor er rekkefølgen viktig fordi A.B ¹ B.A. Bare unntaksvis er disse produktene like. Dette er derfor til stor forskjell fra den multiplikasjonen med reelle tall du er vant til. Vi sjekker med eksemplet ovenfor: B.A -8 - - - 9 A.B B.A False Matrisemultiplikasjon er ikke begrenset til kvadratiske matriser. Men operasjonen kan bare gjennomføres når antall kolonner i A matcher antar rader i B. Ellers går ikke skalarproduktene i hop. En matrise A med dimensjon m x n kan multipliseres med en matrise B med dimensjon n x r. Resultatet er en matrise A.B med dimensjon m x r. Dersom r ¹ m, er ikke produktet B.A definert. A.B - ; B=K O; - B.A Her var m = r =, n =, så begge muliplikasjoner var mulige. Men igjen ser du at svarene er forskjellige. Matrisepotensering Dette er et spesialtilfelle av matrisemultiplikasjon, hvor B = A. Du kan multiplisere matrisen A med seg selv k ganger ved kommandoen MatrixPower[A,k]
Øving uke.nb Dette er et spesialtilfelle av matrisemultiplikasjon, hvor B = A. Du kan multiplisere matrisen A med seg selv k ganger ved kommandoen MatrixPower[A,k] In[]:= Out[]= MatrixPower@A, D -9-7 -8-7 -9 - Du kan selvfølgelig bruke dot - notasjonen, men dette er lite hensiktsmessig når eksponenten er høy. In[]:= Out[]= A.A.A -9-7 -8-7 -9 - Legg merke til at i tekst vil vi naturlig skrive A for å beregne A.A.A. I Mathematicakode vil derimot uttrykket A bety at alle elementer i A blir opphøyd i tredje potens. Dette er ikke matrisemultiplikasjon. In[]:= Out[]= A 6 8-7 Unntaket er diagonalmatriser. Der vil matrisemultiplikasjon være det samme som å multiplisere de enkelte elementene In[8]:= D = DiagonalMatrix@8,, <D D = DiagonalMatrix@8,, 6<D D.D Out[8]= Out[9]= 6 Out[]= 8 In[6]:= Out[6]= In[7]:= Out[7]= D 8 7 MatrixPower@D, D 8 7 Matrisetransponering Matrisealgebraen har en regneoperasjon som ikke finnes blant de reelle tall, kalt transponering. Det betyr ganske enkelt at du bytter om rader og kolonner. Den transponerte matrise skrives AT i vanlig litteratur, men Mathematica betegner den Transpose[A]
Øving uke.nb Matrisealgebraen har en regneoperasjon som ikke finnes blant de reelle tall, kalt transponering. Det betyr ganske enkelt at du bytter om rader og kolonner. Den transponerte matrise skrives AT i vanlig litteratur, men Mathematica betegner den Transpose[A] A Transpose@AD - - Dersom AT, sies matrisen å være symmetrisk. Symmetriske matriser har spesielle egenskaper som viser seg spesielt nyttige i anvendelser. Mer om dette seinere. K O; A Transpose@AD True Matriseinvertering Det gir ikke mening i å snakke om divisjon av matriser. Men for kvadratiske matriser A finnes en matrise A- som tilsvarer den resiproke verdien a- = a av et reelt tall a ¹. Vi har at a- a =, der er identitetselementet på den reelle tallinjen. Vi definerer A- slik at A-. A.A- = I, der I er identitetsmatrisen av samme dimensjon som A. Den består av bare enere på diagonalen, og nuller ellers. Dette er altså et av unntakene der multiplikasjonen er kommutativ. IdentityMatrix@D Inverse@AD.A Løsning av likningssett Vi vil fortsette eksemplet fra øving og skriver inn ( eller kopierer) matrisen A og vektoren b ; - b = 7 ; - Vi vil løse likningssystemet A.x = b. Husk at venstre side indikerer matrisemultiplikasjon. Multipliserer vi likningen A.x = b fra venstre med A-, får vi : A-. A. x = I. x = x = A-. b
Vi vil løse likningssystemet A.x = b. Husk at venstre side indikerer matrisemultiplikasjon. Multipliserer vi likningen A.x = b fra venstre med A-, får vi : Øving uke.nb A-. A. x = I. x = x = A-. b Straks vi har bestemt den inverse matrisen A-, kan vi lett finne løsningene på likningssystemet ved en enkelt matrisemultiplikasjon: x = Inverse@AD.b Denne metoden er implementert i programmet ved koden LinearSolve : LinearSolve@A, bd Denne løsningsmetoden er derfor et alternativ til den algoritmiske løsningen ved Gausseleiminasjon som vi benyttet i øving. Men dersom matrisen har dimensjon n > vil du kanskje benytte Gausseliminasjon for å finne den inverse matrisen, og da er løsningsmetodene bare variasjoner over samme metode. ( Det finnes en annen metode for å beregne inverse matriser kalt kofaktormetoden. Enda et løsningsalternativ er å bruke Cramer s regel, som gir en formel for løsningene uttrykt ved determinanter. Se øving.) Den inverse matrisen finner vi enklest ved å skrive A på redusert trappeform og gjennomføre nøyaktig de samme rekkeoperasjoner underveis på identitetsmatrisen I. Vi utvider derfor matrisen A til sammensetningen {A I} og foretar Gausseliminasjon på den sammensatte matrisen: m = ArrayFlatten@88A, IdentityMatrix@D<<D - RowReduce@mD - - 8 - - - Når A er redusert til I, vil I være tilsvarende omformet til A-. Høyre del av kombinasjonen er derfor den søkte inverse matrisen A-. Mathematica benytter innebygde algoritmer for å beregne den inverse matrisen, så vi kan sjekke svaret ved å sammenlikne med programmets interne beregningsrutine: Inverse@AD - - 8 - - - Bare kvadratiske matirser kan inverteres. Det ser du av den reduserte trappeformen til A, enhetsmatrisen er diagonal og derfor kvadratisk. En annen måte å forstå det på, er at et likningssett har bare entydig løsning når du har like mange likninger som ukjente. Det krever en kvadratisk koeffisientmatrise. I øving vil du lære at selv kvadratiske matriser ikke nødvendigvis er invertible. (Likningssettene kan være selvmotsigende).
6 Øving uke.nb Oppgave Gitt matrisene - - ; B = K O; - - Hvilke operasjoner er gyldige? Tenk gjennom svarene før du sjekker med programmet. Ugyldige operasjoner gir feilmeldinger. A.A A.B B.B B.A BT B- A.BT Oppgave Invertering av x matriser kan gjøres via en formel. K a b O c d Beregn A-. Resultatet kan du pugge som en formel, så slipper du Gausseliminasjon i dette tilfellet. Hvilke krav må du stille til elementene a,b,cog d? Oppgave Løs likningssystemet A.x = b der - - ; b= - ;