Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos

mlLinis – Matlab-tehtäviä lineaarialgebrasta

1. mlLi001.tex Ohjetiedosto, poimi mukaan tehtäväpaperiin tarpeen mukaan.

Matlab-ohjeita

• Komennon suorittama tulos tulee ruudulle ENTER-painalluksen jälkeen (kuvat erilliseen ikkunaan). Jos haluat estää tulostuksen, päätä komento puolipisteeseen. Jos myöhemmin haluat katsoa muuttujan sisällön, kirjoita sen nimi (ilman puolipistettä). Jos muuttuja on suuri matriisi, kannattaa ensin katsoa sen koko size(A) tai sen jotain osaa, esim. A(1:10,1:10)

• Edellisen komennon tulos on muuttujassa ans. Yleensä on suositeltavaa antaa tulokselle oma nimi tyyliin nimi= ...

• format long : Tulostetaan enemmän numeroita (n. 16). Laskutarkkuuteen tämä ei vaikuta. format rational laskee rationaaliluvuilla. format short: Paluu oletustulostukseen.

• Matriisin A transpoosi: A'

• Kokonaislukuvektori: Esim 1:10 tai 1:2:20. Myös linspace. Pystyvektoriksi transponoimalla.

• A(i,j) A:n alkio (i,j).

A(2,:) A:n 2. rivi A(:,3) A:n 3. sarake A(1:4,1:4) osamatriisi Matriisin osaa voi päivittää, vaikkapa:

A(1:4,1:4)=ones(4,4) tai

A(2,:)=A(2,:)-2*A(:,1) (Gaussin rivioperaatio).

• Matriisien liittäminen: Jos A:lla ja B:llä on yhtä monta riviä, ne voidaan liittää peräkkäin: [A b] (tai [A, b]) Jos yhtä monta saraketta, niin allekkain: [A;B]

• Laskutoimitukset tarkoittavat matriisilaskua. Siis esim.

 A*B, A^p

• Vektorien ja matriisien (samankokoisten) pisteittäinen eli alkioittainen laskenta tapahtuu lisäämällä eteen piste. Esim:

u=[1 2 3], v=[-2 -2 -2], u.*v.

Toinen operandi voi olla skalaari.

Siten esim. vektorin u kaikki komponentit voidaan korottaa toiseen komennolla

 u.^2

Avainsanat: Ohjetiedosto, Harjoitusohjeita, Lineaarialgebra, Matlabperusteet,

2. mlLi002.tex Olkoon

A = [ \begin{matrix}5 & −13 & −13 & −2 & 7 \\ 18 & −4 & 30 & −1 & −12 \\ −23 & 3 & 7 & 15 & 7 \\ 9 & 36 & −1 & 14 & 16 \\ 3 & 28 & 7 & 14 & 5 \end{matrix} ]

ja

b = [ \begin{matrix}−196 \\ 435 \\ 11 \\ 111 \\ 195 \end{matrix} ] .

Ratkaise yhtälösysteemi Ax = b ja tarkista tulos matriisikertolaskulla.

Avainsanat: Lineaarinen yhtälöryhmä, Matlabperusteet, Matlabalkeet,perusmatriisilaskenta 3. mlLi003.tex [myös Maple, Mathematica]

a) Ratkaise lineaarinen yhtälöryhmä ja tarkista tulos kertolaskulla.

\{ \begin{matrix}4x − 5y = 11 \\ 2x + y = 9 \end{matrix}

Vihje: Matlab: "Matriisijako": A\b

b) 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. Tarkoitus on kirjoittaa kertoimien a ja b määräämiseksi lineaarinen yhtälösysteemi, joka ratkaistaan Matlab:n takakenolla (\).

c) Muodosta matriisi, jonka 1. sarake on C-asteet −50:sta 5:n asteen välein 100 :aan ja toinen sisältää vastaavat F-asteet.

Vihje: Tarkan rationaalilukukaavan saat komentamalla format rat. Tee mtiedosto kommentteineen. Huomaa, että taulukkoa ei ole mukavaa katsoa koknaisuutena, esim. 10 ekaa riviä näet näin: taulukko(1:10,:) (eikö vain?). Hivelevää on myös mennä “Workspace-ikkunaan” ja kaksoisklikata taulukko-ikonia.

Kokeile sen ajamista myös pdf:ksi publish(Fahrenheit,pdf)-komennolla (jos skripti on Fahrenheit.m), kunhan ensin testailet sen kuntoon.

4. mlLi004.tex Matlab/Maple/Mathematica

Tarkastellaan yhtälösysteemejä:

\{ \begin{matrix}10x_{1} + 7x_{2} + 8x_{3} + 7x_{4} = 32 \\ 7x_{1} + 5x_{2} + 6x_{3} + 5x_{4} = 23 \\ 7x_{1} + 6x_{2} + 10x_{3} + 9x_{4} = 33 \\ 7x_{1} + 5x_{2} + 9x_{3} + 10x_{4} = 31 \end{matrix}

ja

\{ \begin{matrix}2x_{1} + x_{2} + 5x_{3} + x_{4} = 9 \\ x_{1} + x_{2} − 3x_{3} − x_{4} = −5 \\ 3x_{1} + 6x_{2} − 2x_{3} + x_{4} = 8 \\ 2x_{1} + 2x_{2} + 2x_{3} − 3x_{4} = 3 \end{matrix}

a) Ratkaise molemmat systeemit.

b) Muuttamalla vähän yhtälön dataa (oikeaa puolta ja/tai kerroinmatriisia), voidaan tutkia systeemin herkkyyttä pienille virheille (datassa ja pyöristyksessä).

Ratkaise 1. systeemi oikean puolen vektoreilla

 [32.1, 22.9, 32.9,31.1]' ja [32.01, 22.99,32.99,31.01]'

ja 2. systeemi vektoreilla

[9.1 -5.1, 7.9, 3.1]' ja [9.01, -5.01, 7.99, 3.01]' .

Mitä nämä pienet häiriöt vaikuttavat ratkaisuihin?

c) Muuta kerroinmatriiseja lisäämällä matriisien kuhunkin alkioon pieni satunnaisluku 0.1*rand . Ratkaise systeemit alkuperäisillä oikeilla puolilla. Mitä nämä muutokset vaikuttavat ratkaisuihin.

d) Lineaarisen yhtälösysteemin herkkyyttä pienille virheille sanotaan häiriöalttiudeksi (“ill-conditioned “). Laske kummankin matriirin häiriöalttius.

Suhteellisen virheen suurtenemisypäyhtälö:

\frac{||Δx||}{||x||} ≤ κ\frac{||Δb||}{||b||}

Pahimmillaan ratkaisun suhteellinen virhe voi olla luokkaa κ× (datan suhteellinen virhe) (κ = cond(A))

Luokittelu:

mplteht/mplLinis/mplLixx.tex, matlabteht/mlLinis/mlLixx.tex

Avainsanat: Numeerinen lineaarialgebra, matriisit, lineaariset yhtälöryhmät, häiriöalttius

A = [ \begin{matrix}5 & 1 & 1 \\ 1 & 5 & 1 \\ 1 & 1 & 5 \end{matrix}] , b = [ \begin{matrix}10 \\ 14 \\ 18 \end{matrix}] .

Varmista ensin, että matriisi A on kääntyvä laskemalla det(A). Tutki, mitä muita keinoja on matriisin ei-singulaarisuuden tarkistamiseen. Kokeile vaikka rank, rref, lu, cond, rcond (katso helpillä). (Huomaa, että “oikeissa tehtävissä” tärkeämpi käsite on “lähes singulaarisuus”, tähän det ei ole yleispätevä työkalu.)

Ratkaise yhtälöryhmä Ax = b käyttämällä

a) Käänteismatriisia inv

b) MATLABin matriisijakoa x = A\b.

Opetus: Huomaa, että “matriisijako” on numeerisen tarkkuuden ja laskentatehon kannalta yleensä parempi tapa (mikä ei pienissä, hyvänlaatuisissa tehtävissä tule ilmi).

Opettajalle: Tehtävään voidaan lisätä myös A-matriisin muodostaminen diagonaaleittain diag -funktiolla (vaikkei mene hyödyn puolelle näin pienessä tehtävässä).

6. mlLi006.tex Tasapainolämpötilajakauma metallilevyssä. Kuva esittää metallilevyä, joka on ylä- ja alapinnoiltaan lämpöeristetty ja jonka reunojen lämpötilat on kiinnitetty. (Lämpöä virtaa vain reunojen kautta.) Tasapainolämpötilajakauma saadaan Laplacen yhtälön Δu = 0 ratkaisuna. Numeerinen approksimaatio voidaan laskea ns. differenssimenetelmällä: Jaetaan levy sopivilla hilaviivoilla osiin ja numeroidaan näin muodostuvat solmupisteet. Menetelmä: Kunkin hilasolmun lämpötila on naapurisolmujen lämpötilojen keskiarvo. (Johdetaan kurssin lopulla.)

Muodosta 4 × 4− yhtälösysteemi solmujen 1, 2, 3, 4 lämpötilojen likiarvoille u_{1}, u_{2}, u_{3}, u_{4}. Ohje: Aloitetaan solmusta 1: u_{1} = \frac{1}{4}(30 + u_{2} + u_{3} + 10). Vastaavasti muut kolme solmua.

               20      20
        |----- o  ----  o ------|
        |                       |
        |                       |
     10 o      o 3      o 4     o  40
        |                       |
        |                       |
     10 o      o 1      o 2     o  40
        |                       |
        |                       |
        |----- o ------ o ------|
               30       30

(a) Ratkaise yhtälösysteemi ja sijoita ratkaisulämpötilat ao. hilapisteisiin.

(b) Muodosta 4 × 4− matriisi, jossa on reunalämpötilat ja ratkaisemasi sisäpistelämpötilat sekä nurkissa lähinnä olevien kahden reunasolmun keskiarvot tä-

     hän tapaan: U=[5 20 20 30;10 u3 u4 40; 10 u1 u2 40; 20 30 30 35];

Piirrä ratkaisupinnan approksimaatio: mesh(U) tai surf(U).

Avainsanat:Lämpötilamatriisi, Laplacen yhtälön diskretointi, differenssimenetelmän alkeellisin perustehtävä, lineaarinen yhtälöryhmä.

7. mlLi007.tex Oheinen kuva esittää liikenneverkkoa. Kuhunkin solmuun A,B,C,D tulevien ja siitä lähtevien ajoneuvojen lukumäärien summa pysyy samana (solmuun ei häviä eikä siinä synny ajoneuvoja). Kadut ovat yksisuuntaisia nuolien osoittamalla tavalla.

Kuvan saat mukaan tehtävääsi, kunhan kopioit

polku/img/liik.eps-tiedoston omaan img-hakemistoosi. Tässä:

polku=http://www.math.aalto.fi/opetus/Mattie/MattieT/matlabteht/mlLinis/

(a) Muodosta yhtälösysteemi tuntemattomien ajoneuvomäärien x_{1}, …x_{5} suhteen.

(b) Määritä systeemin yleinen ratkaisu.

(c) Jos x_{4}:llä merkitty katuosuus suljetaan, niin mikä on yleinen ratkaisu?

(d) Määritä kohdan (c) tilanteessa pienin x_{1} :n ja suurin x_{3} :n arvo (jotta yhdensuuntaisuutta osoittavia liikennemerkkejä ei tarvitse kääntää).

Huom! Porrasmuotoon saattamisessa saat halutessasi käyttää Matlab/Octavefunktiota rref (kts. help rref).

Avainsanat: Liikenneverkko, lineaarinen yhtälöryhmä, (redusoitu)porrasmuoto, rref.

8. mlLi008.tex

1. Muodosta 5 × 5-yksikkömatriisi I. (help eye)

2. Muodosta matriisi E_{1}, jossa on vaihdettu I:n rivit 2 ja 5.

3. Muodosta matriisi E_{2}, joka saadaan kertomalla I:n 4. rivi luvulla 4.

4. Muodosta matriisi E_{3}, joka saadaan I:stä Gaussin rivioperaatiolla:

r_{4} ← r_{4} + 4 r_{1},

missä r_{i} tarkoittaa matriisin riviä numero i.

5. Muodosta matriisit E_{1}^{−1} , E_{2}^{−1} , E_{3}^{−1} käyttäen komentoa inv ja selitä, mitä rivioperaatiota ne vastaavat.

Avainsanat: Alkeismatriisit, LU-hajotelma, Gaussin rivioperaatio, käänteismatriisi.

9. mlLi009.tex (KP3-ii, 2008, harj1) Olkoon

A = [ \begin{matrix}a_{1,1} & a_{1,2} & a_{1,3} \\ a_{2,1} & a_{2,2} & a_{2,3} \\ a_{3,1} & a_{3,2} & a_{3,3} \end{matrix} ]

ja olkoot

E_{0} = [ \begin{matrix}0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{matrix} ] E_{1} = [ \begin{matrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 3 \end{matrix} ], E_{2} = [ \begin{matrix}1 & 0 & 0 \\ 2 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} ] .

Muodosta matriisitulot E_{0}A, E_{1}A, AE_{1} ja E_{2}A ja selvitä, mitä nämä operaatiot tekevät matriisin A riveille/sarakkeille.

Avainsanat: Alkeismatriisit, LU-hajotelma, Gaussin rivioperaatio

Vihje: Käsinlasku ja ajattelutehtävä, tarkistukseen voit hyödyntää Matlabin syms-komentoa tai voit tehdä symboliset matriisioperaatiot Maplella/Mathematicalla.

10. mlLi010.tex Harjoituksen (KP3-II/s. 2006) ohjetta: Seuraavissa tehtävissä voitaisiin johonkin johtopäätökseen päästä determinantin avulla. Näissä harjoituksissa ei kelpuuteta tällaisia ratkaisuja, vaan harjoitellaan johtopäätösten tekoa rivioperaatioiden seurauksena.

Osa tehtävistä on käsinlaskuun tarkoitettu, mutta niiden yhteydessä voidaan harjoitella samalla Matlab/Octave/Scilab-työskentelyä (Kts. MattieO).

Annettuna on 3 × 3−systeemin liitännäismatriisi

[ \begin{matrix}1 & 2 & 3 & 4 \\ 4 & 5 & 6 & 7 \\ 6 & 7 & 8 & 9 \end{matrix} ] .

Muodosta rivioperaatioilla porrasmuoto "ref" — "row echelon form". Merkitse tukisarakkeet ja tukialkioiden paikat. Jatka sitten rivioperaatioita alhaalta ylöspäin päästäksesi redusoituun porrasmuotoon "rref".

Avainsanat: Lineaarinen yhtälöryhmä, Gaussin rivioperaatio, ref, rref, (redusoitu) porrasmuoto, row echelon form.

11. mlLi013.tex Piirretään toisen asteen pintoja. Tätä varten tulee pinnat esittää parametrimuodossa

x_{1} = x_{1}(u, v), x_{2} = x_{2}(u, v), x_{3} = x_{3}(u, v),

missä muuttujat u ja v saava arvoja jostain sopivasta alueesta. Esimerkiksi parametrisointi

\{ \begin{matrix}z_{1} = r_{1} sinu cosv, \\ z_{2} = r_{2} sinu sinv \\ z_{3} = r_{3} cosu, \end{matrix}  \{ \begin{matrix}0 ≤ u ≤ π \\ 0 ≤ v ≤ 2π \end{matrix}

MATLAB ilmoittaa R^{2}:n muuttujat tietyllä tavalla organisoituhin matriiseihin seuraavasti:

[U,V] = meshgrid(linspace(0,pi,21),linspace(0,2*pi,21));

Nyt ellipsoidin r_{1} = r_{2} = r_{3} parametrisointi tehdään seuraavasti

Z1 = sin(U).*cos(V);
Z2 = sin(U).*sin(V);
Z3 = cos(U);

Kuvan tästä saa piirrettyä komennolla surf(Z1,Z2,Z3). Kokeile miten pintä muuttuu, kun asetat kertoimiksi r_{k} eri arvoja. Tutustu myös komentoon axis.

12. mlLi014.tex Tarkastellaan yhtälöryhmää

\{ \begin{matrix}0.0001x_{1} + 2x_{2} = 4 \\ x_{1} + x_{2} = 3 \end{matrix}

Tarkka ratkaisu on [\frac{2}{1.9999} , \frac{3.9997}{1.9999} ]^{T}, joka 5:llä numerolla esitettynä on [1.0001, 1.9999]^{T}.

(a) Ratkaise yhtälösysteemi niin, että suoritat laskut (järjestystä vaihtamatta) 3:lla merkitsevällä numerolla. (Laske laskimella, Matlabilla tms. ja pyöristä kunkin operaation jälkeen tulos 3:een numeroon.)

(b) Tee samoin kuin (a)-kohdassa, mutta vaihda yhtälöiden järjestys.

Selitä, miksi (a)-tapauksessa tulee suuri suhteellinen virhe ( 100%:n suhteellinen virhe toisessa komponentissa), kun taas (b)-tapauksessa virhe on olematon.

Avainsanat: Lineaarinen yhtälöryhmä, Gaussin rivioperaatio, numeerinen ratkaisu, numeerinen lineaarialgebra, pyöristysvirhe.

Olkoon A = [ \begin{matrix}1 & 8 & 6 \\ −1 & −4 & 5 \\ 2 & 4 & −6 \end{matrix} ] ja ¯= [ 8 1 4 ]^{T} . Ratkaise yhtälö Ax = b osit-

taistuentaa (“partial pivoting”) käyttäen. Olkoon P permutaatiomatriisi (rivinvaihtomatriisi), joka määräytyy rivien vaihdoista. Muodosta hajotelma P A = LU.

Matlab:lla: help lu, [L,U,P]=lu(A) (Tämä siis vertailun vuoksi, tarkoitus on laskea käsin.)

Avainsanat: Lineaarinen yhtälöryhmä, Gaussin rivioperaatio, LU-hajotelma, numeerinen lineaarialgebra, (osittais)tuenta, “(partial) pivoting”.

Vihje: Osittaistuenta tarkoittaa itseisarvoltaan suurimman tukialkion valitsemista pienen tukialkion aiheuttamien numeeristen ongelmien välttämiseksi. Matlab saattaa käyttää esim. ns. skaalattua osittaistuentaa, jolloin rivinvaihtostrategia voi olla erilainen.

14. mlLi017.tex Muodosta “ylimääräytyvälle” yhtälöryhmälle

\{ \begin{matrix}x + 3y = 5 \\ x − y = 1 \\ x + y = 0 \end{matrix}

normaaliyhtälöt ja ratkaise pienimmän neliösumman (PNS,LSQ) mielessä. Piirrä suorat ja ratkaisupiste tasoon.

Vastaustarkistuskeino: Huomaa, että Matlab:n yhtälösysteemin ratkaisija: x = A\b on niin älykäs, että se ymmärtää ylimääräytyvässä tapauksessa suorittaa PNSratkaisun.

Avainsanat: Lineaarinen yhtälöryhmä, PNS,LSQ, pienimmän neliösumman menetelmä, LU-hajotelma, numeerinen lineaarialgebra, (osittais)tuenta, “(partial) pivoting”.

Vihje:

15. mlLi018.tex Huom: Käsinlasku täydennettynä pikku Matlab-osuudella.

Eräässä mittauksessa saatiin seuraava data:

      xdata     1    2   3   4   5
      ydata     1.8 2.7 3.4 3.8 3.9

Dataa mallinnetaan polynomilla p(x) = c_{1} x + c_{2} x^{2}.

(a) Muodosta PNS-tehtävän matriisi X ja vektori y siten, että tehtävä saadaan ylimääräytyväksi yhtälöryhmäksi X c = y.

(b) Ratkaise kerroinvektori c. Piirrä data ja PNS-polynomi samaan kuvaan.

Vihje: (b)-kohdassa saat mieluusti käyttää Matlab:ia. Tee kuitenkin vaiheittain matriikertolaskut, transpoosit ym., lopuksi toki voit tarkistaa “takakenolla”. Piirrä samaan kuvaan datapisteet ja polynomi. Piirtäminen käy näin:

 xd=1:5; yd=[1.8 ...]; plot(xd,yd,'x'); hold on; kertoimet=[c2 c1 0]; x=linspace(1,5); y=polyval(kertoimet,x);
 plot(x,y,'r'); xlim([0 6]); grid on

Huomaa, että polyval haluaa kertoimet korkeimmasta potenssista alkaen.

Vast: p(x) = 1.76x − 0.2x^{2}

Avainsanat: PNS,LSQ, pienimmän neliösumman menetelmä, käyrän sovitus, curve fitting, data fitting.

16. mlLi019.tex

Määritä PNS-ratkaisu tehtävälle A x = b, kun A = [ \begin{matrix}1 & −1 \\ 1 & 4 \\ 1 & −1 \\ 1 & 4 \end{matrix} ] ja

b = [ −1 6 5 7 ]^{T} . Hyödynnä QR-hajotelmaa, jonka voit muodostaa seuraavilla komennoilla: (Huom: Yleensä ei lasketa rationaaliaritmetiikalla, mutta opettelussa voi olla hyödyksi.)

>> format rational
>> A=[...]     % Jos kirjoitat [...], olet TONTTU!
>> [Q,R]=qr(A)

Vihje: Matlab muodostaa ns. täyden QR-hajotelman. Kuten huomaat, riittää ottaa Q:n kaksi ensimmäistä saraketta ja R:n 2 ensimmäistä riviä, miten nyt vain haluat. Huomaa siis, että Q on ortogonaalinen ja R on yläkolmiomatriisi.

Avainsanat: PNS,LSQ, pienimmän neliösumman menetelmä,QR-hajotelma.

17. mlLi020.tex Suorita Matlab-komento eigshow. Opiskele helppiteksti ja suorita joitakin kokeiluja kuljettamalla x-vektoria läpi koko yksikköympyrän. (Tämä vain lämmittelyksi.)

Valitse erityisesti matriisit A=[1 3;4 2]/4, B=[3 1;-2 4]/4 ja C=[2 4;2 4]/4. Määritä kuvan perusteella kunkin ominaisarvot ja -vektorit. Saat vektorit tarkemmin komentamalla grid on. Mitä, jos kuvan perusteella ominaisarvoja/vektoreita ei näyttäisi olevan? Määritä kuvan perusteella myös ominaisavaruuden dimensio matriisin C tapauksessa.

Laske kunkin matriisin ominaisarvot ja -vektorit eig-komennolla. (help eig)

Huom: Jos näitä matriiseja ei sattuisi olemaan valmiina valikossa, voit ne sinne lisätä helppiruudun “View code for eigshow”-linkistä. Hae koodista kohta mats = .... Siitä näet, miten matriiseja voi lisätä. Jos editoit koodia, tallenna se omaan hakemistoosi vaikkapa nimelle ominashow, ja sitten vaan ominashow.

Tee joitakin omia kokeiluja erilaisilla matriiseilla oman “ominashow”:n avulla.

Avainsanat: Ominaisarvot, ominaisvektorit, ominaisarvojen graafinen havainnollistaminen, ominaisvektorien graafinen havainnollistaminen, Matlab: eigshow, eig 18. mlLi020a.tex

Ohjeita, ominaisarvo-oppia (Liitettäväksi aiheen tehtäväpaperiin)

• Ominaisarvo on luku, se voi olla kompleksiluku, vaikka matriisi olisi reaalinen.

• Ominaisvektori on (reaalisen matriisin tapauksessa) ℝ^{n}:n tai ℂ^{n}:n vektori sen mukaan, onko vastaava ominaisarvo reaalinen vai kompleksinen.

• Ominaisarvo saa aivan mainiosti olla 0, ominaisvektoriksi emme hyväksy nollavektoria.

• Ominaisarvoon λ liittyvä ominaisavaruus E_{λ} koostuu kaikista λ:aan liittyvistä ominaisvektoreista ja lisäksi nollavektorista. Tällöin kyseessä on vektori(ali)avaruus, nimittäin matriisin A − λI nolla-avaruus, N(A − λI).

• Ominaisarvon λ_{j} algebrallinen kertaluku M_{λ_{j}} on karakteristisen polynomin det(A − λI) juuren kertaluku. Geometrinen kertaluku m_{λ_{j}} on dim(E_{λ_{j}} ). Pätee: m_{λ_{j}} ≤ M_{λ_{j}}

• Jos reaalisella matriisilla A on kompleksinen ominaisarvo λ = α + i β, niin myös \overline{λ} = α −i β on A :n ominaisarvo. Jos v on λ :aa vastaava ominaisvektori, niin liittolukua \overline{λ} vastaava ominaisvektori on \overline{v}. (Tarkoittaa vektoria, jonka koordinaatit ovat v :n koordinaattien liittolukuja.)

• Jos on määrättävä diagonaalimatriisin ominaisarvot ja -vektorit, niin laskentatyötä ei jää lainkaan. Älä siis suotta ryhdy veivaamaan det(A − λI):n kautta. (Koko ominaisarvohomman perustavoite on saattaa lineaarikuvauksen matriisi diagonaalimuotoon. Jos se jo on, niin mitään ei tarvitse enää tehdä, kunhan osaat siitä lukea.)

• Kolmiomatriisin (ylä- tai ala-) ominaisarvot ovat diagonaalialkiot. (Siis yleistys edelliselle, tässä tapauksessa ominaisvektoreista ei voida sanoa mitään yleistä.)

• Kun pyydetään laskemaan johonkin ominaisarvoon liittyvät ominaisvektorit, on sopivaa antaa vastaukseksi ominaisavaruuden kanta. Helpoimmin se saadaan antamalla ratkaisun vapaille muuttujille vuorollaan arvot ( 1, 0, 0) , (0, 1, 0) , (0, 0, 1) (jos kyseessä on 3-ulotteinen ominaisavaruus). Tässähän on kyse nolla-avaruuden kannan määräämistehtävästä.

• Eri ominaisarvoihin liittyvät ominaisvektorit ovat LRT.

• Diagonalisointi: Annettu A. Etsittävä, jos mahdollista, matriisit V ja D, V kääntyvä ja D diagonaalimatriisi siten, että A = V DV^{−1} . Jos tehtävänä on diagonalisoida A, etsitään matriisit V ja D ja perustellaan V:n kääntyvyys. (Yleensä ei vaadita V^{−1} :n laskemista ilman eri kehoitusta, tai jatkotehtävän asettamaa tarvetta.)

• Octave/Matlab-komentoa eig kannattaa käyttää ainakin tarkistukseen. Muoto [V,D]=eig(A) antaa suoraan diagonalisointimatriisit: V :n sarakkeina ominaisvektorit ja D :n diagonaalilla (samassa järjestyksessä) ominaisarvot. Jos A on diagonalisoituva, niin V :n sarakkeet ovat LRT, jolloin voidaan muodostaa V^{−1} ; Matlab/Octavella: inv(V).

Avainsanat: Ominaisarvo-opin perus(lasku)ohjeita 19. mlLi021.tex (käsinlasku, Matlab sopii avuksi/opiksi)

Muodosta matriisin A = [ \begin{matrix}3 & −2 & 4 \\ −2 & 6 & 2 \\ 4 & 2 & 3 \end{matrix} ] ortogonaalinen diagonalisointi (tarkoittaa

ortonormaalia).

Laskutyön vähentämiseksi annetaan (tai pyydetään oppilasta komentamaan):

>> eig(A)
ans =
         -2.00
          7.00
          7.00

Avainsanat: Ominaisarvot, ominaisvektorit, ortogonaalinen diagonalisointi.

Vihje: Muista, että ominaisvektorit eivät automaattisesti ole yksikkövektoreita, ja useampikertaista ominaisarvoa vastaavat ominaisvektorit eivät automaattisesti ole ortogonaaliset. Jos olet saanut samaan ominaisavaruuteen kuuluvat LRT ominaisvektorit v_{1} ja v_{2}, niin ortonormaalin kannan saat

1) geometrisen ajattelun avulla: Muodosta v_{2}:n kohtisuora projektio v_{1}:llä ja vähennä se v_{2}:sta. Tai

2) algebrallisesti: Määritä kerroin kerroin c siten, että (v_{1} + c v_{2}) ⊥ v_{1}.

20. mlLi028.tex Olkoon

A = [ \begin{matrix}5 & 1 & 1 \\ 1 & 5 & 1 \\ 1 & 1 & 5 \end{matrix}]

a) Laske matriisin A diagonalisointiin tarvittavat matriisit P ja D.

b) Varmista, että P on ortogonaalinen, ja D on diagonaalinen ja diagonaalialkiot suuruusjärjestyksessä.

c) Osoita, että spektraalikaava

λ_{1}u_{1}u_{1}^{T} + λ_{2}u_{2}u_{2}^{T} + λ_{3}u_{3}u_{3}^{T} = A

pätee.

Vihje:

21. mlLi029.tex Potenssimenetelmä on eräs keino löytää itseisarvoltaan suurin ominaisarvo ja vastaava ominaisvektori. Menetelmä toimii seuraavasti:

• Valitse alkuarvaus b_{0}. Ainoa vaatimus on, että tällä vektorilla on nollastapoikkeava komponentti ominaisarvon suuntaan – käytännössä kannattaa valita vektori, jonka jokainen alkio on nollasta poikkeava.

• Aseta

b_{k+1} = \frac{Ab_{k}}{||Ab_{k}||}

• Jatka kunnes jono (b_{k}) suppenee. Ominaisarvo λ = ||Ab_{k}|| ja vektori x = b_{k}.

Toteuta menetelmä MATLABissa, ja laske matriisin gallery(5) suurin ominaisarvo ja vastaava ominaisvektori. Testaa tuloksen oikeellisuus.

22. mlLi030.tex Ominaisarvojen laskentamenetelmiä, Power method [KRE^{9}] Sec. 20.8 Sovella potenssimenetelmää (3 kierrosta) matriisiin

A = [ \begin{matrix}3.5 & 2.0 \\ 2.0 & 0.5 \end{matrix} ]

alkuarvolla x_{0} = [1, 1]^{T}. Laske Rayleigh-osamäärät q ja virherajat.

Ratkaisu: Vastaus: q = 4, 4.493, 4.4999; |ϵ| ≤ 1.5, 0.1849, 0.0206

Avainsanat: Potenssimenetelmä, ominaisarvojen laskentamenetelmät, Power method.

23. mlLi031.tex Osoita, että jos x on ominaisvektori, niin δ = 0 virhekaavassa (2) Theorem 1 s. 872 (KRE^{9}, luvun 20.8, Power Method for Eigenvalues alkusivulla) .

Vihje: Päättelytehtävä, ohjelmistoista ei hyötyä.

Avainsanat: Potenssimenetelmä, ominaisarvojen laskentamenetelmät, Power method.

24. mlLi032.tex (a) Päättele Gershgorinin lauseen avulla matriisin

A = [ \begin{matrix}11 & 0.4 & −0.5 \\ 0.4 & 7 & a \\ −0.5 & a & 4 \end{matrix} ]

ominaisarvojen likiarvot ja missä rajoissa ne ovat.

(b) Millä a:n reaaliarvoilla nähdään suoraan, että matriisi on kääntyvä. (Tarkoitus ei ole laskea determinanttia tai ominaisarvoja, korkeintaan halutessasi tarkistukseksi ja varmistuksesi Gershgorinin pätevyydelle.)

Vihje: Käsinlasku, jossa voit harjoitella Matlabin laskinkäyttöä.

Avainsanat: Gershgorinin lause , ominaisarvojen laskentamenetelmät, ominaisarvoarvio.

25. mlLi040.tex Olkoot A kompleksinen n × n matriisi, ja olkoot R_{i} = ∑ _{j≠i} |a_{ij} |, eli rivin alkioiden itseisarvojen summa diagonaalia lukuunottamatta. Gershgorinin kiekkolauseen väite on, että jokainen matriisin A ominaisarvo λ_{i} sijaitsee jossakin kiekossa D(a_{ii}, R_{i}), (kompleksitasoon piirretty kiekko, jonka keskipiste on pisteessä a_{ii}, ja jonka säde on R_{i}). Totea lauseen väite kokeellisesti, kun A=10*randn(12)+ 5*randn(12)*i;

Vihje: Ympyrän, jonka keskipiste on (x, y) ja säde r saa MATLABissa piirrettyä helposti seuraavasti:

x = 0.4; y= -0.34
t = 0:0.02:2*pi;
plot(x+cos(t),y+sin(t));
hold on
%Yksittäinen piste piirretään seuraavasti
plot(x,y,'r.');

26. mlLi050.tex Gram-Schmidtin menetelmä vektorijoukon {v_{1}, v_{2}, …, v_{n}} ortonormalisoimiseksi toimii seuraavasti:

• Ortogonalisoidaan:

u_{1} = v_{1}

u_{2} = v_{2} − \frac{u_{1}·v_{2}}{u_{1}·u_{1}} u_{1}

⋮

u_{n} = v_{n} − ∑ _{k=1}^{n−1} \frac{u_{k}·v_{n}}{u_{k}·u_{k}} u_{k}

• Normitetaan: e_{i} = \frac{u_{i}}{||u_{i}||} , i = 1 …n

Kirjoita MATLAB-funktio B = grmsch(A) joka hakee Gram-Schmidtin menetelmällä ortonormaalin kannan matriisin A sarakeavaruudelle. Testaa ortonormaalius laskemalla B'*B.

Vinkki: Laskutoimitus \frac{u_{k}·v_{n}}{u_{k}·u_{k}} u_{k} vastaa toimitusta (u_{k}^{T}v_{n})u_{k}. Lisätehtävä nopeille: Matriisin sarakeavaruuden normalisointi ei poikkea kovin paljon QR-hajotelman tekemisestä. Jos ehdit, toteuta oma algoritmisi QR-hajotelmalle.