[Edellinen] [Seuraava] [Sisällys]

Lineaariset yhtälösysteemit

Edellä esitellyistä matriisioperaatioistan puuttuu vielä jakolasku. Sepä onkin yksi Matlabin "voimaoperaattori", jolle on varattu molemmat kenoviivat. Tärkeämpi niistä on takakeno ( \ ).
Lineaarisen yhtälöryhmän Ax=b ratkaisu saadaan jakolaskulausekkeella:

x=A\b

Huomaa muistisääntö: "Jakajamatriisi" A on jakoviivan alapuolella.

Olkoon ratkaistavana yhtälöryhmä:

     x1 + 2x2 + 3x3 = 4
    2x1 + 2x2 + 4x3 = 5
    4x1 + 2x2 + 5x3 = 1
Matriisimuodossa Ax = b, missä
>> A=[1 2 3;2 3 4;4 2 5]
A =
     1     2     3
     2     2     4
     4     2     5
>> b=[4;5;1]

b =
     4
     5
     1
Matlabin takakeno \ -operaattori suorittaa "matriisijakolaskun".
>> x=A\b
x =
   -5.0000
   -4.5000
    6.0000
Tarkistus:
>> [A*x b]
ans =
    4.0000    4.0000
    5.0000    5.0000
    1.0000    1.0000
Lue tästä lyhyestä lisää. Siellä käsitellään myös ongelmatapauksia, kuten (lähes) singulaarisuutta. Funktioita: det,cond,rcond,rank

Käänteismatriisi

Funktio inv muodostaa ei-singulaarisen neliömatriisin käänteismatriisin. Edellinen ratkaisu käy myös näin:
>> inv(A)
ans =
    1.0000   -2.0000    1.0000
    3.0000   -3.5000    1.0000
   -2.0000    3.0000   -1.0000
>> x=ans*b
x =
   -5.0000
   -4.5000
    6.0000
Takakeno on suositeltavampi, tehokkaampi ja numeerisesti tarkempi. (Emmehän luvuillakaan laske osamäärää a/b tyyliin (1/a)*b.)

Tehtävä [linyht1/Lap1] Ratkaise lineaarinen yhtälösysteemi Ax=e1, missä A on 1-ulotteisen Laplacen operaattorin diskretointimatriisi ja e1 on koordinaattiyksikkövektori 1. koordinaattiakselin suuntaan. Ts. A:n päälävistäjällä on kakkoset (2) ja ylä- ja alalävistäjillä -1, muuten 0. Tutki myös matriisin A häiriöalttiutta.

Tee ratkaisua varten m-tiedosto Lap1.m, jossa matriisin kokoa N voit muutella. (Muista käyttää puolipistettä riittävästi.) Tee (ihan manuaalisesti) pieni matriisi, jonka riveinä on
n cond(A)
Tutkiskele vaikkapa luokkaa 10,100,1000 olevilla n:n arvoilla,
Tutki työtilan muuttujia komennolla who, whos ja muuttujaeditorilla. Editori aukeaa kaksoisklikkaamalla "workspace"-ruudussa näkyviä muuttujien kuvakkeita.

Huom! Työtilassa olevaa isoa matriisia kannattaa tutkia osissa. Jos matriisi A on vaikka 100x100, sitä ei todellakaan kannata katsoa tyyliin | >> A | ,vaan esim.
| >> A(1:10,1:10) | .

Muista myös ennen mainittu muuttujaeditori.
Kokeile vielä

    Aharva=sparse(A);
    spy(Aharva)     % zoomaile
    help sparse

Tehtävä [linyht2/Fahrenheit] Tiedetään, että Celsius-asteiden ja Fahrenheit-asteiden välillä on lineaarinen yhteys:

            C = aF + b
Lisäksi tiedetään, että vesi jäätyy 32 F:ssa ja -40 on sama kummassakin asteikossa. Johda kaava.
Vihje: Tarkan rationaalilukukaavan saat komentamalla format rat
Tee m-tiedosto kommentteineen, voit kokeilla sen ajamista myös html:ksi, kunhan ensin testailet sen kuntoon. (Koulumatikkatehtävä, mutta tarkoitus on totutella Matlab-työkalujen käyttöön)
 

[Edellinen] [Seuraava] [Alkusivu]