[Up]
http://www.math.hut.fi/teaching/p3/luentomateriaali/L1.html

Luennot 1-2

to 11.9, ti 15.9.

Matriisit ja lineaariset yhtälösysteemit,Maple ja Matlab-perusteita

KRE: 7.1 - 7.4 

1. Matriisialgebraa

Kertaa KRE 7.1 - 7.3
-  Matriisitulo: A (m x n), B (n x p), C=AB (m x p)
                 c[i,j]=sum(a[i,k]*b[k,j],k=1..n)
 
- Vain neliömatriiseille A ja B voidaan muodostaa sekä AB että BA, silloinkaan
  eivät yleensä samat.

 Maple 

> with(linalg):  # Ladataan lineaarialgebrapakkaus
> A:=matrix(3,4,[a[1,1],a[1,2],...,a[3,4]]); 
          3 x 4 - matriisi täytetään vaakariveittäin.
> B:=matrix(4,5,[...]);

Matriisialgebra toimii + ja - laskuissa normaaliin tapaan. Skalaarilla
kertomisoperaatio on *

Matriisikertolaskun symboli on &*
Normaali tapa laskea on
> C:=evalm(A &* B);

Maplessa tarvitaan aina loppumerkki (; tai :), kaksoispiste (:) estää
tulostuksen.

Maple käsittelee sekä symbolisia että numeerisia matriiseja.
Rationaaliluvuilla se operoi tarkasti, ellei erityisesti pyydetä
liukulukulaskentaa.


 Matlab 

>> A=[...;...;...]
>> B=...
>> C=A*B

Matlab:ssa ei tarvita loppumerkkiä. Jos tulostus halutaan estää, lopetetaan
puolipisteeseen (;)
Matlab käsittelee vain numeerisia matriiseja, mutta niitä sitten tehokkaasti.


2. Lineeriset yhtälösysteemit, Gaussin eliminaatio

KRE 7.4, SKK AG, luku 4 (Kivelä: Alg ja geom)
   A x =b, missä
     A on kerroinmatriisi (m x n) (m yhtälöä, n tuntematonta)
     x on tuntemattomien muodostama sarakevektori     (n x 1)
     b on annettujen lukujen muodostama sarakevektori (m x 1)

Ratkaisujen lukumäärä voi olla 0, 1 tai ääretön, kuten jo 2 x 2 systeemeistä tiedetään (yhdensuunt. suorat, leikkaavat suorat, yhtyvät suorat).

Riviajattelu: Suorien leikkauspiste
Sarakeajattelu: Etsitään annetun vektorin (b) koordinaatit matriisin sarakevektorien avulla esitettynä.

Gaussin eliminaatio, s. 347 Alkeisrivioperaatiot

   1. rivi[i] <-->  rivi[k]  (rivien vaihto)
   2. rivi[i] <--  c*rivi[i] , c ei ole 0
   3. rivi[i] <--  rivi[i]+c*rivi[k] , c ei ole 0
Rivioperaatioissa yhtälösysteemi säilyy ekvivalenttina (samat ratkaisut). Tähän perustuu ratkaisu Gaussin menettelyllä. Muunnetaan systeemi yläkolmiomuotoon. Rivioperaatiot voidaan helpoimmin kohdistaa suoraan matriisiin, jossa A:n perään liitetään b-sarake. Tätä sanotaan liitännäismatriisiksi, "augmented matrix"

Maple


> with(linalg):
> A:=matrix(m,n,[a[1,1],...,a[m,n]]);
> b:=vector([b[1],...,b[m]);
> Ab:=augment(A,b);

 Matlab 

>> A=[...;...; ... ];b=[....]';Ab=[A b]

Luennolla katsotaan esimerkkejä, kts. myös Esimerkki rivioperaatioista Maplella tehtynä .

Porrasmuoto, Echelon form

Gaussin algoritmi johtaa aina muotoon:

   a[1,1]  a[1,2]       ...           a[1,n]   b[1]
     0     c[2,2]       ...           c[2,n]   bmato[2]
     0       0
     0       0
     
     

     0       0   0.. 0  k[r,r] ...      k[r,n]  bmato[r]
     0       0    ....    0    ...        0     bmato[r+1]

     0       0    ....    0    ...        0     bmato[m]

Tässä "päälävistäjän" alkiot a[1,1], c[2,2], ..., k[r,r] ovat nollasta poikkeavia. "Päälävistäjällä" voi olla "pitkiä portaita". Olennaista on, että siirryttäessä seuraavalla riville alaspäin, 1. nollasta poikkeva alkio siirtyy oikealle ainakin 1. askeleen.

Toisaalta usein tulos esitetään muodossa, jossa kaikki "pitkät portaat" on siirretty oikealle, ts. on vaihdettu sarakkeiden järjestystä niin, että laskeutuminen tapahtuu 1:n pituisin portain ja "lopuksi on tasaista". Tämä on teoreettisten johtopäätösten teon kannalta selkeämpi muoto. Käytännön laskuissa sarakevaihtoja ei yleensä tehdä.

Ratkaisujen olemassaolo ja lukumääräkysymykset ovat kaikki luettavissa tästä kaaviosta. (KRE s. 351, GREE s. 10 (GREE:ssä r:n sijasta q))
Tapaukset ovat

 (a) r < m ja jokin bmato[i] # 0, r+1 <= i <= m
     Ei ratk.  
Esimerkki  

(b) r=n ja bmato[i]=0, i=r+1 .. m (tai nämä (i > r)bmadot puuttuvat (tap.  m=n))
      yksikäs. ratk. 
Esimerkki 

 (c) r < n ja bmato[i]=0, i=r+1 .. m (tai "kriittiset" bmadot puuttuvat
                                      (tap. m < n ja r = m) )
      äärettömän monta ratkaisua 
Esimerkki  (Myös (a)-kohdassa oli jo yksi.)

Tärkeä seurauslause homogeenisille systeemeille Ax=0

Seuraus. Jos homogeeniyhtälössä (b=0) on m < n , niin aina on äärettömän monta ratkaisua. Sillä tällöinhän bmato=0 ja r <=m < n .

Havainnollistus (kesken )

  a)
                       m                         m
      ------------------                 ----------
     |                 |                 |        |
     |                 |                 |        |
     |                 |                 |        |
     |                 |                 |        |
  r   ------------------               r ----------
     |  0 ...       0  |                 | 0..0   |
     |  0 ...       0  |                 | 0..0   |
  m   ------------------               m ----------



Gauss-resepti
 Askel 1: Oletetaan, että a[1,1] # 0 (uudelleenjärjestämällä).
          Valitaan kertoimet c[2]=-a[2,1]/a[1,1],...,c[m]=-a[m,1]/a[1,1]
          ja suoritetaan rivioperaatiot:
           rivi[2] <--  c[2]*r[1] + r[2]
           ...

           rivi[m] <--  c[m]*r[1] + r[m]

          Näin saadaan alkion a[1,1] alle 0-sarake.

 Askel 2: Jos amato[2,2] ja kaikki sen alapuoliset alkiot ovat
          sattumoisin = 0,  niin kaikki on hyvin. Tällöin syntyy
          "pitkä porras" ja siirrytään katsomaan samalla silmällä
          amato[2,3]:a ja sen alapuolista saraketta.
         
          Ellei, niin vaihdetaan tarvittaessa rivejä niin, että
          uusi amato[2,2] # 0. (Numeerisessa käytännössä vaihdetaan
          itseisarvoltaan mahdollisimman suuri.)
          Sitten jatketaan kohdasta [2,2] alkavalle alimatriisille
          samoin kuin Askel 1:ssä.

 Näin jatketaan niin kauan, kunnes kaikki on nollaa alapuolella tai
 törmätään jompaan kumpaan reunaan (r=m tai r=n).

Huom Yllä esiintyvää r-lukua ei sattumalta merkitä r:llä, vaan siihen liittyy termi rank .

Takaisinsijoitus

Kun systeemi on saatu porrasmuotoon, saadaan ratkaisut heti lasketuksi, tai nähdään välittömästi, että ratkaisuja ei ole.

Gaussin algoritmi on sikäli miellyttävä, että sen avulla sadaan sekä ratkaisut lasketuksi (jos niitä on) että olemassaolo- ja lukumäärätieto (ellei numeerisia vaikeuksia oteta huomioon).

Systemaattinen tapa laskea ratkaisut on katsoa ensin alhaalla olevat 0-rivit. Jos jonkun 0-rivin kohdalla bmato-sarakkeessa on nollasta poikkeava luku, ei homma jatku, vaan todetaan, että ratkaisuja ei ole. (Tapaus (a) yllä )

Jos ristiriitaisia yhtälöitä ei ole, käydään käsiksi alimmaiseen ei-0-riviin, rivi[r] . Siitä lasketaan x[r] (joko 1-käs tai ottamalla vapaiksi parametreiksi x[r+1], ... , x[n] ). Näin edetään alhaalta ylös.

Maple

Kun Gaussin algoritmia on joitakin kertoja harjoiteltu rivi riviltä, addrow ja swaprow - tyyppisillä komennoilla (vrt. Perus-Gauss ), voidaan ryhtyä käyttämään komentoja

     gausselim   ja  backsub 

3. Gauss-Jordan, redusoitu porrasmuoto, rref

KRE s. 366, Exa 1, GREE s. 13 Takaisinsijoitus voidaan myös toteuttaa rivioperaatioina, jolloin päädytään muotoon, josta ratkaisut ovat luettavissa vielä suoremmin kuin alakolmiomuodosta. Siitä käytetään nimitystä redusoitu porrasmuoto, "reduced row echelon form" (siitä lyhenne rref, jota mekin käytämme). Tässä nollataan yläkolmiota myös niin paljon kuin mahdollista. Ei-singulaarisen neliösysteemin tapauksessa päädytään diagonaalimatriisiin.

Tämä on erityisen hyödyllinen tapa silloin, kun on laskettava annetun neliömatriisin käänteismatriisi.

Redusoitua porrasmuotoa luonnehditaan näin

Kaikki nämä matriisit ovat rref-muodossa, johtavat sarakkeet on merkitty *:llä.

 *    *    *       *    *            *         *

[1    0    0]     [1    0    2]     [1    5    0    0]
[           ]     [           ]     [                ]
[0    1    0]     [0    1    6]     [0    0    1    2]
[           ]     [           ]
[0    0    1]     [0    0    0]     [0    0    0    0]

                                    [0    0    0    0]
                              
     *         *    *    *

    [1    1    0    0    0     6]
    [                           ]
    [0    0    1    0    0    -1]
    [                           ]
    [0    0    0    1    0     3]
    [                           ]
    [0    0    0    0    1     1]
Maple ja Matlab

Maplen linalg-pakkauksessa on funktio gaussjord ja Matlab:ssa funktio rref . Tosin Matlab:n rref toimii joissakin tilanteissa väärin, liekö korjattu versiossa 5.

Esimerkkejä käänteismatriisin laskemisesta

Luennolla ja KRE s. 366 Exa 1.


This page created by < Heikki.Apiola@hut.fi>
Last update Tue Sep 16 17:13:40 EET DST 1997