|
MATLAB-tehtäviä liittyen lineaarialgebraan.
Käytön idea: kun löydät mieleisesi tehtävän, sen alapuolella on linkki tex-tiedostoon. Lataa
tiedosto, ja liitä se pääsivulta löytyvään harjoituspohjaan.
- 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,
Tehtava
- 2.
mlLi002.tex Olkoon
ja
Ratkaise yhtälösysteemi Ax = b ja tarkista tulos matriisikertolaskulla.
Avainsanat: Lineaarinen yhtälöryhmä, Matlabperusteet, Matlabalkeet,perusmatriisilaskenta
Tehtava
Ratkaisu
- 3.
mlLi003.tex [myös Maple, Mathematica]
- Ratkaise lineaarinen yhtälöryhmä ja tarkista tulos kertolaskulla.
Vihje: Matlab: ”Matriisijako”: A∖b
-
Tiedetään, että Celsius-asteiden ja Fahrenheit-asteiden välillä on lineaarinen
yhteys:
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 (“).
- 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 m-tiedosto
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.
Tehtava
Ratkaisu
- 4.
mlLi0035.tex Matlab/Maple/Mathematica Hilbertin matriisi koostuu alkioista h( i,j) = 1 ∕( i + j − 1).
Tällaisia syntyy mm. PNS-sovituksessa.
Tarkastellaan 4 × 4 Hilbertin matriisia
ja yhtälöryhmää Hx = b, missä b = b1 = ja b = b2 = ,
ts b2 = b1 +
Tarkoitus on tutkia, mitä pieni muutos systeemin datassa vaikuttaa ratkaisuihin.
- Ratkaise molemmat systeemit.
Mitä nämä pienet häiriöt vaikuttavat ratkaisuihin?
- Lineaarisen yhtälösysteemin herkkyyttä pienille virheille
sanotaan häiriöalttiudeksi (“ill-conditioned “). Laske kummankin matriirin
häiriöalttius.
Suhteellisen virheen suurtenemisypäyhtälö:
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
Tehtava
- 5.
mlLi004.tex Matlab/Maple/Mathematica
Tarkastellaan yhtälösysteemejä:
ja
- Ratkaise molemmat systeemit.
- 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?
- 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.
- Lineaarisen yhtälösysteemin herkkyyttä pienille virheille
sanotaan häiriöalttiudeksi (“ill-conditioned “). Laske kummankin matriirin
häiriöalttius.
Suhteellisen virheen suurtenemisypäyhtälö:
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
Tehtava
Ratkaisu
PDF ratkaisusta
- 6.
mlLi005.tex Olkoon
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ä).
Tehtava
- 7.
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
u1,u2,u3,u4. Ohje: Aloitetaan solmusta 1: u1 = (30 + u2 + u3 + 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).
Opettajalle: Hilakokoa voidaan kasvattaa. Jos annetaan tehtäväksi ilman
kerroinmatriisin struktuurihavaintoa, 4 × 4 lienee suurin ajateltavissa oleva (16 × 16
yhtälösysteemi), joka sekin saattaa jo hipoa joidenkin kärsivällisysrajaaa.
Avainsanat:Lämpötilamatriisi, Laplacen yhtälön diskretointi, differenssimenetelmän
alkeellisin perustehtävä, lineaarinen yhtälöryhmä.
Tehtava
- 8.
mlLi006a.tex, [Maple:mplLinis/mplLi010.tex] (Kynä-paperitehtävä) Tarkastellaan lämmönjohtumista ohuessa metallilevyssä. Oletetaan, että johtumista
tapahtuu vain levyn suunnassa, ja levyn reunoilla on annetut (ajan suhteen)
vakiolämpötilat. Levyn lämpötilat eri pisteissä asettuvat ajan kuluessa
arvoihin, jotka ovat ajan suhteen vakioita, tällöin puhutaan lämpötilajakauman
tasapainotilasta (”steady state”). Tehtävänä on määrittää lämpötilajakauma
levyssä tasapainotilan vallitessa.
Tarkastellaan kuvan mukaista tilannetta: (Klikkaa oikealla olevaa pdf-linkkiä, niin kuva
näkyy kunnolla.)
--- 20----20---20----
— — — — —
10----*-----*-----*---40
— — — — —
10----*-----*-----*----40
— — — — —
----20----20----20---
Kuvassa näkyvät annetut vakioreunalämpötilat (reunaehdot). Tehtävänä on
laskea ratkaisuapproksimaatiot *:llä merkityissä sisäsolmupisteissä käyttäen
seuraavaa periaatetta: Lämpötila levyn solmupisteessä on naapurisolmujen
lämpötilojen keskiarvo.
Jos indeksoidaan solmupisteiden lämpötilat vaakarivijärjestyksessä: T1,…T6, voidaan
ryhtyä kirjoittamaan yhtälöitä tyyliin:
T1 = ,….
Kirjoita koko 6 × 6- yhtälösysteemi ”standardimuodossa”. Huom: Tasapainotilaratkaisu saadaan ns. Laplacen yhtälön ∇2T = 0 ratkaisuna.
Tässä esitettyyn likimääräismenettelyyn ns. differenssimenetelmään
Ratkaisua pyydetään seuraavassa tehtävässä.
Tehtava
- 9.
mlLi006b.tex, [Maple:mplLinis/mplLi011.tex] Ratkaise edellisen tehtävän yhtälösysteemi Maplea (tai Matlabia) käyttäen.
(Tässä Maple-ohjeet.) Muodosta sitten edellisen tehtävän kuvan mukainen 4 × 5
matriisi, jossa on annetut reunalämpötilat sekä lasketut sisälämpötilat oikeilla
kohdillaan. Ota nurkkapisteiden lämpötiloiksi kahden naapurisolmun lämpötilojen
keskiarvo. Piirrä kuva, pyörittele hiirellä.
Vihje: Maplevihje
(Matlabissa et tarvitse vihjettä, vaan teet suoraan todella “matlabmaisesti”.)
Tehtävässä riittää käytellä LinearAlgebra-kirjaston funktiota LinearSolve.
Ratkaisuvektorin muokkaaminen matriisiksi onnistuu mukavasti, kun leikkaat/liimaat alla olevan
funktiomäärityksen Maple-työarkillasi. (Suorita leikkaus pdf-tehtävätiedostosta.)
Reshape:=(vek,m,n)->Matrix(linalg[matrix](m,n,convert(vek,list)));
Funktio on tehty vastaamaan Matlabin funktion reshape käytöstä siinä tapauksessa, jossa vektori
muutetaan annetun kokoiseksi matriisiksi.
Lämpötilamatriisin rakentelu kannattaa hoidella (Matlabinomaiseen) tyyliin:
Tsisa:=Reshape(T,2,3); # vektorissa T on ratkaisulampotilat.
Tiso:=Matrix(4,5,0);
vaaka:=¡15—20—20—20—30>;
pysty:=...;
Tiso[2..3,2..4]:=Tsisa;
...
Piirtäminen komennolla matrixplot (muista with(plots):)
matrixplot(Tiso,axes=boxed);
Pyörittele kuvaa hiirellä.
Huom: Sanomattakin on selvää, että tehtävä sopii erikoisen hyvin Matlab:lle.
Tässä pikemminkin näytetään, että Maplen LinearAlgebra-työkaluilla voidaan
matkia Matlab-työtapaa ja päästä lähelle samaa käsittelymukavuutta.
Lisätehtävä: Tee ratkaisu Matlabilla!
Palataan asiaan perusteellisemmin Matlab-tehtävien yhteydessä, jolloin käsitellään
lähemmin differenssimenetelmää.
Tehtava
- 10.
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 x1,…x5
suhteen. (b) Määritä systeemin yleinen ratkaisu. (c) Jos x4:llä merkitty katuosuus suljetaan, niin mikä on yleinen ratkaisu? (d) Määritä kohdan (c) tilanteessa pienin x1 :n ja suurin x3 :n arvo (jotta
yhdensuuntaisuutta osoittavia liikennemerkkejä ei tarvitse kääntää).
Huom! Porrasmuotoon saattamisessa saat halutessasi käyttää Matlab/Octave-funktiota
rref (kts. help rref).
Avainsanat: Liikenneverkko, lineaarinen yhtälöryhmä, (redusoitu)porrasmuoto, rref.
Tehtava
- 11.
mlLi007a.tex Muodosta lineaarinen yhtälösyteemi alla olevalle virtapiirille ja ratkaise virrat.
8 V
¡----- Kirchhofin virtalaki:
I1 —
----¡---- — —--------- Virtapiirin jokaisessa solmussa:
— — — tulevien virtojen summa = lähtevien
¡ ¡ summa.
> 1 Ohmi 1 Ohmi >
¡ ¡ Kirchhofin jännitelaki:
— 0.5 Ohmia — Virtapiirin jokaisessa suljetussa sil-
------“/“/“/--->-----— mukassa ulkoisen jäannitelähteen
— I3 — jännite = jännitehäviöiden summa.
¡ —
> — Ohmin laki: U=RI
¡ 2 Ohmia I2 “/
> —
— — —
----¡---- — —---------
—
16 V
¡------
Vast.: I1 = 2,I2 = 6
Avainsanat: Sähköpiiri, tasavirtapiiri, lineaarinen yhtälöryhmä,
(redusoitu)porrasmuoto, rref.
Tehtava
- 12.
mlLi008.tex
-
1.
- Muodosta 5 × 5-yksikkömatriisi I. (help eye)
-
2.
- Muodosta matriisi E1, jossa on vaihdettu I:n rivit 2 ja 5.
-
3.
- Muodosta matriisi E2, joka saadaan kertomalla I:n 4. rivi
luvulla 4.
-
4.
- Muodosta matriisi E3, joka saadaan I:stä Gaussin rivioperaatiolla:
missä ri tarkoittaa matriisin riviä numero i.
-
5.
- Muodosta matriisit E1−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.
Tehtava
- 13.
mlLi009.tex (KP3-ii, 2008, harj1) Olkoon
ja olkoot
E0 = E1 = , E2 = .
Muodosta matriisitulot E0A, E1A, AE1 ja E2A 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.
Tehtava
- 14.
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
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.
Tehtava
- 15.
mlLi013.tex Piirretään toisen asteen pintoja. Tätä varten tulee pinnat esittää
parametrimuodossa
missä muuttujat u ja v saava arvoja jostain sopivasta alueesta. Esimerkiksi
parametrisointi
MATLAB ilmoittaa R2:n muuttujat tietyllä tavalla organisoituhin matriiseihin
seuraavasti:
[U,V] = meshgrid(linspace(0,pi,21),linspace(0,2*pi,21));
Nyt ellipsoidin r1 = r2 = r3 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 rk eri arvoja. Tutustu myös komentoon axis.
Tehtava
- 16.
mlLi014.tex Tarkastellaan yhtälöryhmää
Tarkka ratkaisu on [,]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.
Tehtava
- 17.
mlLi015.tex Olkoon A = ja =T . Ratkaise yhtälö Ax = b
osittaistuentaa (“partial pivoting”) käyttäen. Olkoon P permutaatiomatriisi (rivinvaihtomatriisi), joka määräytyy rivien vaihdoista.
Muodosta hajotelma PA = 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.
Tehtava
- 18.
mlLi017.tex Muodosta “ylimääräytyvälle” yhtälöryhmälle
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
PNS-ratkaisun.
Avainsanat: Lineaarinen yhtälöryhmä, PNS,LSQ, pienimmän neliösumman
menetelmä, LU-hajotelma, numeerinen lineaarialgebra, (osittais)tuenta, “(partial)
pivoting”.
Vihje:
Tehtava
- 19.
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) = c1x + c2x2.
(a) Muodosta PNS-tehtävän matriisi X ja vektori y siten, että tehtävä saadaan
ylimääräytyväksi yhtälöryhmäksi Xc = 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.2x2
Avainsanat: PNS,LSQ, pienimmän neliösumman menetelmä, käyrän sovitus, curve
fitting, data fitting.
Tehtava
- 20.
mlLi019.tex Määritä PNS-ratkaisu tehtävälle Ax = b, kun A = ja b = 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.
Tehtava
- 21.
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
Tehtava
- 22.
mlLi020a.tex Ohjeita, ominaisarvo-oppia (Liitettäväksi aiheen tehtäväpaperiin)
Yleistä
- 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 λ = α−iβ on A :n ominaisarvo. Jos v on λ :aa vastaava ominaisvektori,
niin liittolukua λ vastaava ominaisvektori on 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.)
Matlab-ohjeita
- [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).
... [ help eig, doc eig]
Esim:
>> A=[3 -3 2;-1 5 -2;-1 3 0];
>> [V,D]=eig(A)
Nyt V :n sarakkeina ovat A :n ominaisvektorit, D on diagonaalimatriisi, jossa
vastaavilla kohdilla ovat A :n ominaisarvot. Mikäli V on kääntyvä, saadaan suoraan A :n diagonalisointi, kun lasketaan
vielä VI = inv(V). (V on kääntyvä ⇔ A on diagonalisoituva.)
Matlab normeraa ominaisvektorit yksikkövektoreiksi. Jos haluat
mukavammannäköisiä lukuja, saatat saada sen aikaan (näissä
pikkulelutehtävissä) jakamalla esim. ko. vektorin ensimmäisellä komponentilla,
vaikka tähän tapaan:
>> v1=V(:,1); v1=v1/v1(1)
>> v2=V(:,2); v2=v2/v2(1)
>> v3=V(:,3); v3=v3/v3(1) % Nyt ei auta.
Kaiken voit hoitaa yhdellä kertaa kertomalla oikealta diagonaalimatriisilla, jossa
ovat diagonaalilla ao. käänteisluvut, kas näin: V*diag(1./V(1,:))
Avainsanat: Ominaisarvo-opin perus(lasku)ohjeita, Matlab-ohjeita ominaisarvotehtäviin
Tehtava
- 23.
mlLi020b.tex Määritä seuraavien lineaarikuvausten ominaisarvot ja -vektorit laskematta, pelkän
geometrisen kuvailun perusteella.
- Peilaus y-akselin suhteen tasossa ℝ2,
- Matriisilla A = kertominen.
- Peilaus yz-tason suhteen ℝ3:ssa.
- Kohtisuora projektio y-akselille ℝ2:ssa.
Tarkista sitten laskemalla, osa käsin ja kaikki Matab:n eig-komennolla. Huomaa, että
eig normeeraa ominaisvektorit yksikkövektoreiksi. (Ja ymmärräthän, että
erityisesti moninkertaisen ominaisarvon tapauksessa ominaisvektorit ovat kaikkea muuta
kuin yksikäsitteiset muutenkin kuin vain skaalauksen suhteen.)
Avainsanat: mlLinis, Lineaarikuvaus, geometrinen luonnehdinta, ominaisarvot,
ominaisvektorit
Vihje:
Tehtava
- 24.
mlLi021.tex (käsinlasku, Matlab sopii avuksi/opiksi)
Muodosta matriisin A = 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 v1 ja v2, niin ortonormaalin
kannan saat 1) geometrisen ajattelun avulla: Muodosta v2:n kohtisuora projektio v1:llä ja vähennä se v2:sta. Tai
2) algebrallisesti: Määritä kerroin kerroin c siten, että (v1 + cv2) ⊥ v1.
Tehtava
- 25.
mlLi022.tex [Käsinlasku-/päättelytehtävä] Stokastinen matriisi P tarkoittakoon sellaista, jonka alkiot ovat ei-negatiivisia ja
sarakesummat = 1. (KRE-kirjassa otetaan rivisummat = 1.) Osoita, että 1 on aina P:n ominaisarvo.
Vihje: Väite on helppo osoittaa transposille PT, ajattele ominaisvektorin määritelmää ja mitä
saat, jos kerrot PT:llä vektorin [1,1,…,1].
Avainsanat: mlLinis, Lineaarikuvaus, ominaisarvot, ominaisvektorit, stokastinen
matriisi
Tehtava
- 26.
mlLi023.tex Eräässä valtiossa pidettiin parlamenttivaalit kolmen puolueen P1, P2, P3 kesken.
Puolueiden kannatusosuuksien viikoittaista muutosta vaaleja edeltävän puolen vuoden
aikana kuvaa siirtymämatriisi
(a) Määritä matriisin suurinta ominaisarvoa vastaava ominaisvektori ja päättele,
mitä rajaosuuksia kannatusluvut lähestyvät, kun viikkomäärä kasvaa (tässä
ei päästä äärettömyyteen, mutta raja-arvo antaa riittävän tarkan
approksimaation).
(b) Kokeile joillain alkujakaumilla x0 (siis ”todennäköisyysvektoreilla”, eli sellaisilla,
joiden summa = 1 (tai 100)) ja laske x1 = Px0 , x2 = Px1, …, Käytä ihmeessä
Octavea/Matlabia! Miten nopeasti pääset lähelle raja-arvoa?
Avainsanat: mlLinis, Lineaarikuvaus, ominaisarvot, ominaisvektorit, stokastinen
matriisi
Tehtava
- 27.
mlLi024.tex [Päättelytehtävä] (a) Osoita, että jos λ on A:n ominaisarvo ja x vastaava ominaisvektori, niin λk on Ak:n
ominaisarvo, ja samainen x on vastaava ominaisvektori.
(b) Oletetaan, että A on kääntyvä. Osoita, että λ−1 on A−1:n ominaisarvo
ja x siihen liittyvä ominaisvektori (yhtä hyvin Ax). Mistä tiedät, että
λ≠0?
Avainsanat: mlLinis, Lineaarikuvaus, ominaisarvot, ominaisvektorit, perusominaisuuksia
Tehtava
- 28.
mlLi025.tex Ajatellaan, että erään asutuskeskuksen asukkailla on kahden operaattorin,
R ja S matkapuhelinliittymiä. Liittymien vaihtoa kuukaudessa edustakoon
siirtymämatriisi
(Siirtymämatriisi esitetään transponoituna KRE-kirjan vastaavaan nähden.)
Tässä sarakkeet tarkoittavat elatiivia (sta) ja rivit illatiivia (aan). 1. sarake ja 1. rivi
viittaavat R:aan, 2. vastaavasti S:aan.
(a) Laske matriisin ominaisarvot ja ominaisvektorit ja totea, että ne muodostavat ℝ2:n
kannan.
(b) Olkoon alkuhetkellä liittymien määrät x0 = [R,S] = [1000, 1500]. Laske
määrät vuoden kuluttua (Matlabilla) tai parin kolmen kuukauden kuluttua, jos
käsin haluat laskea.
(c) Lausu alkupiste x0 ominaisvektorikannassa: x0 = c1v1 + c2v2.
Mitä rajavektoria lähestyy jono xk, kun k →∞ ?
Ylimääräinen pohdinta: Riippuuko rajavektorin komponenttien suhde alkuarvosta x0
?
Avainsanat: mlLinis, Lineaarikuvaus, ominaisarvot, ominaisvektorit, stokastinen
matriisi,
Tehtava
- 29.
mlLi028.tex Olkoon
-
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
pätee.
Vihje:
Tehtava
- 30.
mlLi029.tex Potenssimenetelmä on eräs keino löytää itseisarvoltaan suurin ominaisarvo ja
vastaava ominaisvektori. Menetelmä toimii seuraavasti:
- Valitse alkuarvaus b0. 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
- Jatka kunnes jono (bk) suppenee. Ominaisarvo λ = ||Abk|| ja vektori x = bk.
Toteuta menetelmä MATLABissa, ja laske matriisin gallery(5) suurin ominaisarvo ja
vastaava ominaisvektori. Testaa tuloksen oikeellisuus.
Tehtava
- 31.
mlLi030.tex Ominaisarvojen laskentamenetelmiä, Power method [KRE 9] Sec. 20.8 Sovella potenssimenetelmää (3 kierrosta) matriisiin
alkuarvolla x0 = [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.
Tehtava
- 32.
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.
Tehtava
- 33.
mlLi032.tex (a) Päättele Gershgorinin lauseen avulla matriisin
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.
Tehtava
- 34.
mlLi040.tex Olkoot A kompleksinen n × n matriisi, ja olkoot Ri = ∑
j≠i|aij|, eli rivin alkioiden
itseisarvojen summa diagonaalia lukuunottamatta. Gershgorinin kiekkolauseen
väite on, että jokainen matriisin A ominaisarvo λi sijaitsee jossakin kiekossa
D( aii,Ri), (kompleksitasoon piirretty kiekko, jonka keskipiste on pisteessä aii, ja
jonka säde on Ri). 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.’);
Tehtava
- 35.
mlLi050.tex Gram-Schmidtin menetelmä vektorijoukon {v1,v2,…,vn} ortonormalisoimiseksi toimii
seuraavasti:
- Ortogonalisoidaan:
u1 = v1
u2 = v2 −u1
⋮
un = vn −∑
k=1n−1uk
- Normitetaan: ei = ,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 uk vastaa toimitusta (ukT v
n)uk. Lisätehtävä nopeille:
Matriisin sarakeavaruuden normalisointi ei poikkea kovin paljon QR-hajotelman
tekemisestä. Jos ehdit, toteuta oma algoritmisi QR-hajotelmalle.
Tehtava
- 36.
mlLi090.tex Seuraava kuva esittää kymmenen sivun ”internettiä”.
Laske tämän verkon tärkein sivu käyttämällä PageRank-algoritmia:
- Luo verkon vierusmatriisi A = [aij], missä
- Laske vierusmatriisin suurin ominaisarvo, ja vastaava ominaisvektori.
- Normalisoi laskemasi suurinta ominaisarvoa vastaava ominaisvektori (jaa
kaikki vektori alkiot vektorin summalla). Mikä on tämän verkon tärkein
sivu.
- Piirrä verkon kuva käyttäen laatimaasi vierusmatriisia ja gplot-komentoa.
Tutustu gplotin help-sivuun.
Tehtava
|
Työkaluja
|