Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37
Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä: x n x n 1 x n+1 = x n f(x n ) f(x n ) f(x n 1 ) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 2/37 p. 2/37
Algoritmien ohjelmointi Algoritmi: iteraatiokaava toistorakenne lopetuskriteeri Tietokonetoteutus: käyttöliittymä (parametrit) virhetilanteiden käsittely Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 3/37 p. 3/37
Algoritmien ohjelmointi Hyvän tietokonetoteutuksen ominaisuuksia: luotettavuus robustisuus (vakaus, selviää virhetilanteista hallitusti) tarkkuus tehokkuus siirrettävyys ja ylläpidettävyys käytettävyys Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 4/37 p. 4/37
Esimerkki: Newtonin menetelmä Aliohjelmalle välitettävät parametrit: funktio f alkuarvaus x 0 toleranssiparametrit ε, δ iteraatiokierrosten maksimimäärä itmax Aliohjelman tulosparametrit: ratkaisun likiarvo x virheindikaattori error Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 5/37 p. 5/37
Newtonin menetelmä newton(f,x 0,δ,ε,itmax,x,error) v := f(x 0 ) if x 1 x 0 ε x 1 d := f (x 0 ) and v ε then do iter = 1,...,itmax error := 0 if d δ then x := x 1 error := 2 return return end if end if x 0 := x 1 x 1 := x 0 v/d end do v := f(x 1 ) error := 1 d := f (x 1 ) x := x 1 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 6/37 p. 6/37
Lopetuskriteerit Epälineaarisen yhtälön ratkaisumenetelmissä: f(x n ) ε x n x n 1 ε (absoluuttinen muutos) x n x n 1 ε x n (suhteellinen muutos) Mikään ei yksinään sovellu kaikille tehtäville Käytetään useampaa lopetuskriteeriä yhdessä Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 7/37 p. 7/37
Käyttäjäystävällisyys Aliohjelman pitäisi osata myös tarvittaessa valita itse sopivat toleranssiparametrit (esimerkiksi ε = ε R, missä ε R on käytetyn liukulukuesityksen mantissan suhteellinen pyöristysvirhe) varautua kaikkiin virhetilanteisiin (esimerkiksi itmax < 0) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 8/37 p. 8/37
Polynomit Polynomi p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n Polynomin aste n, jos a n 0 Polynomin arvojen laskeminen vaatii n yhteenlaskua 2n 1 kertolaskua Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 9/37 p. 9/37
Polynomit p(x) = a 0 + a 1 x + a 2 x 2 + + a n x n p(x) = a 0 +x(a 1 +x(a 2 + +x(a n 1 +a n x) )) Arvojen laskeminen tästä muodosta vaatii n yhteenlaskua n kertolaskua Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 10/37 p. 10/37
Hornerin menetelmä + z (a n 3 + z (a n 2 + z (a n 1 + z }{{} a n ) =b }{{ n } =b n 1 }{{} =b n 2 } {{ } =b n 3 ) ) jne. a 0 + z ( } {{ ) } } =b {{ 1 } =b 0 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 11/37 p. 11/37
Hornerin menetelmä jatkuu Saadaan Hornerin menetelmä polynomin arvojen laskemiseksi: { bn = a n b k = a k + z b k+1, k = n 1,..., 0 p(z) = b 0 Muita lukuja b 1,..., b n voidaan käyttää hyväksi polynomin p juurenhaussa Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 12/37 p. 12/37
Polynomin reaaliset juuret Olkoon q(x) = b 1 + b 2 x + b 3 x 2 + + b n x n 1 b 0 + (x z)q(x) = b 0 + (x z)(b 1 + b 2 x + b 3 x 2 + + b n x n 1 ) = (b 0 zb 1 ) + (b }{{} 1 zb 2 ) x + + (b }{{} n 1 zb n ) x n 1 + b }{{}}{{} n =a 0 =a 1 =a n 1 = a 0 + a 1 x + a 2 x 2 + + a n x n = p(x) p(x) = b 0 + (x z)q(x) =a n x n Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 13/37 p. 13/37
Polynomin reaaliset juuret p(x) = b 0 + (x z)q(x), missä q:n aste on n 1 Olkoon z yksi polynomin p juurista eli p(z) = 0 b 0 = 0 ja p(x) = (x z)q(x) Polynomin q juuret ovat myös p:n juuria Etsitään jokin polynomin q juuri jne. (rekursio) Saadaan kaikki polynomin p reaaliset juuret Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 14/37 p. 14/37
Newtonin menetelmä Olkoon f : R R differentioituva Yhtälö f(x) = 0 Newtonin menetelmä x n+1 = x n f(x n) f (x n ) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 15/37 p. 15/37
Newtonin menetelmä polynomille Sovelletaan Newtonin menetelmää polynomille p Tarvitaan arvoja p(z) ja p (z) p(x) = b 0 + (x z)q(x), p(z) = b 0 p (x) = (x z)q (x) + q(x), p (z) = q(z) Derivaatan p arvo saadaan laskemalla polynomin q arvo Hornerin menetelmällä Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 16/37 p. 16/37
Newtonin menetelmä polynomille Polynomin p kertoimet a 0, a 1,..., a n { bn = a n b k = a k + z b k+1, k = n 1,..., 0 p(z) = b 0 Polynomin q kertoimet b 1, b 2,..., b n { cn = b n c k = b k + z c k+1, k = n 1,..., 1 p (z) = c 1 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 17/37 p. 17/37
Newtonin menetelmä polynomille poly_newton({a i },n,x 0,ε,δ, b 0 := a 0 + z b 1 itmax,x, {b i },error) x 1 := x 0 b 0 /c do iter = 1,...,itmax if x 1 x 0 ε x 1 z := x 0, b n := a n, c := a n and b 0 ε then do k = n 1,...,1 error := 0 b k := a k + z b k+1 x := x 1 c := b k + z c return end do end if if c δ then x 0 := x 1 error := 2 end do return error := 1 end if x := x 1 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 18/37 p. 18/37
Newtonin menetelmä polynomille poly_newton({a 0,...,a n },n,..., {b 1,...,b n },...) saadaan yksi juuri {a 0,...,a n 1 } := {b 1,...,b n } poly_newton({a 0,...,a n 1 },n 1,..., {b 1,...,b n 1 },...) saadaan toinen juuri {a 0,...,a n 2 } := {b 1,...,b n 1 } poly_newton({a 0,...,a n 2 },n 2,..., {b 1,...,b n 2 },...) saadaan kolmas juuri jne. Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 19/37 p. 19/37
Lineaariset yhtälöryhmät Yksi numeerisen matematiikan keskeisimpiä tutkimusaiheita Yleisesti n tuntematonta m yhtälöä m < n yleensä ääretön määrä ratkaisuja m > n yleensä ei yhtään ratkaisua Seuraavassa m = n Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 20/37 p. 20/37
Esimerkki Ristikkorakenne: 13 sauvaa, 8 niveltä, 3 ulkoista voimaa 4 8 3 4 7 1 3 5 7 11 12 9 1 2 6 8 5 2 6 10 13 10 15 20 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 21/37 p. 21/37
Esimerkki jatkuu Sauvoihin kohdistuvat voimat f i, i = 1,..., 13 Tasapainossa, jos jokaisessa nivelessä sekä vaaka- että pystysuorien voimien summa nolla 8 niveltä 16 yhtälöä Oletetaan, että nivel 1: vaaka- ja pystysuorat siirtymät estetty nivel 8: pystysuorat siirtymät estetty 13 yhtälöä (m = n) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 22/37 p. 22/37
Esimerkki jatkuu nivel 2: f 2 = f 6 f 3 = 10 nivel 3: αf 1 = f 4 + αf 5 αf 1 + f 3 + αf 5 = 0 nivel 4: f 4 = f 8 f 7 = 0 nivel 5: αf 5 + f 6 = αf 9 + f 10 αf 5 + f 7 + αf 9 = 15 nivel 6: f 10 = f 13 f 11 = 20 nivel 7: f 8 + αf 9 = αf 12 αf 9 + f 11 + αf 12 = 0 nivel 8: f 13 + αf 12 = 0 ( α = 2/2 ) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 23/37 p. 23/37
Esimerkki jatkuu f 2 f 6 = 0 f 3 = 10 αf 1 f 4 αf 5 = 0 αf 1 + f 3 + αf 5 = 0 f 4 f 8 = 0 f 7 = 0 αf 5 + f 6 αf 9 f 10 = 0 αf 5 + f 7 + αf 9 = 15 f 10 f 13 = 0 f 11 = 20 f 8 + αf 9 αf 12 = 0 αf 9 + f 11 + αf 12 = 0 f 13 + αf 12 = 0 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 24/37 p. 24/37
Esimerkki jatkuu Yhtälöryhmän tyypillisiä ominaisuuksia: Malli hyvin yksinkertainen, mutta yhtälöryhmä melko suuri Yhtälöryhmä harva (kussakin yhtälössä vain muutama tuntematon) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 25/37 p. 25/37
Lineaarinen yhtälöryhmä Yleinen lineaarinen yhtälöryhmä a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 missä a n1 x 1 + a n2 x 2 +... + a nn x n = b n. kertoimet a ij tuntemattomat x j oikean puolen alkiot b i Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 26/37 p. 26/37
Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b missä a 11 a 12... a 1n a 21 a 22... a 2n A =... x = a n1 a n2... a nn x 1 x 2. x n b = b 1 b 2. b n ( A R n n, x R n, b R n ) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 27/37 p. 27/37
Lineaarinen yhtälöryhmä Olkoon A R n n 1. Yhtälöryhmällä Ax = b on yksikäsitteinen ratkaisu kaikilla b R n 2. Jos Ax = 0, niin x = 0 3. On olemassa käänteismatriisi A 1 4. Matriisin determinantti det A 0 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 28/37 p. 28/37
Kolmiomuotoiset yhtälöryhmät Yhtälöryhmä alakolmiomuodossa (n = 3) a 11 x 1 = b 1 a 21 x 1 + a 22 x 2 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 x 1 = b 1 /a 11 x 2 = (b 2 a 21 x 1 )/a 22 x 3 = (b 3 a 31 x 1 a 32 x 2 )/a 33 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 29/37 p. 29/37
Kolmiomuotoiset yhtälöryhmät A alakolmiomatriisi a 11 0... 0 a 21 a 22... 0... x 1 x 2. = b 1 b 2. a n1 a n2... a nn x n b n etenevät sijoitukset (jos a ii 0 kaikilla i) x i = ( b i i 1 j=1 a ij x j )/a ii, i = 1, 2,..., n Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 30/37 p. 30/37
Kolmiomuotoiset yhtälöryhmät Yhtälöryhmä yläkolmiomuodossa (n = 3) a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 22 x 2 + a 23 x 3 = b 2 a 33 x 3 = b 3 x 3 = b 3 /a 33 x 2 = (b 2 a 23 x 3 )/a 22 x 1 = (b 1 a 12 x 2 a 13 x 3 )/a 11 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 31/37 p. 31/37
Kolmiomuotoiset yhtälöryhmät A yläkolmiomatriisi a 11 a 12... a 1n 0 a 22... a 2n... 0 0... a nn x 1 x 2. x n = b 1 b 2. b n takenevat sijoitukset (jos a ii 0 kaikilla i) x i = ( b i n j=i+1 a ij x j )/a ii, i = n, n 1,..., 1 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 32/37 p. 32/37
Gaussin eliminointimenetelmä 1. Muunnetaan yhtälöryhmä yläkolmiomuotoon äärellisellä määrällä alkeisoperaatioita: kerrotaan yhtälö nollasta eroavalla vakiolla lisätään yhtälöön toinen yhtälö nollasta eroavalla vakiolla kerrottuna vaihdetaan kaksi yhtälöä keskenään 2. Ratkaistaan yläkolmiomuotoinen yhtälöryhmä takenevilla sijoituksilla Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 33/37 p. 33/37
Esimerkki 2 x 1 + x 2 + x 3 = 7 ( 2) 4 x 1 + 4 x 2 + 3 x 3 = 21 (1) 6 x 1 + 7 x 2 + 4 x 3 = 32 2 x 1 + x 2 + x 3 = 7 ( 3) 2 x 2 + x 3 = 7 6 x 1 + 7 x 2 + 4 x 3 = 32 (1) 2 x 1 + x 2 + x 3 = 7 2 x 2 + x 3 = 7 ( 2) 4 x 2 + x 3 = 11 (1) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 34/37 p. 34/37
Esimerkki jatkuu 2 x 1 + x 2 + x 3 = 7 2 x 2 + x 3 = 7 x 3 = 3 (takenevat sijoitukset) x 3 = 3 x 2 = 2 x 1 = 1 Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 35/37 p. 35/37
Gaussin eliminointimenetelmä do k = 1,...,n 1 do i = k + 1,...,n z := a ik /a kk a ik := 0 do j = k + 1,...,n nollataan sarake k rivi i rivin i sarake j a ij := a ij z a kj end do b i := b i z b k end do end do (takenevat sijoitukset) Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 36/37 p. 36/37
Gaussin eliminointimenetelmä Eliminointivaiheen algoritmi: Matriisi A ja vektori b korvataan yläkolmioyhtälöryhmän vastaavilla Kolme sisäkkäistä n:stä riippuvaa silmukkaa vaativuus O(n 3 ) Silmukoiden järjestystä voidaan vaihtaa Silmukoiden järjestys määrää, missä järjestyksessä matriisialkioihin viitataan Hyvä viittausjärjestys riippuu mm. ohjelmointikielestä Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 37/37 p. 37/37