dexterofnis@gmail.com Departman za računarske nauke, Prirodno-Matematički fakultet u Nišu SciComp, Petnica, 2013
Uvod
Uvod MAT RAC ELE PHY AST Modeliranje Problem Konstrukcija modela Odabir metoda Rešavanje Zaključak U označenim fazama na scenu stupa numerička matematika!! Specijalizovani softver za numerička i simbolička (naučna) izračunavanja: 1. Mathematica, Matlab, Maple, MuPad, itd. 2. LAPACK, LINPACK, EACK, DEPAC, PDEPAC, itd.
Analiza grešaka
Analiza grešaka Da li važi jednačina idealnog gasa? T = PV nr = 290.173 K = 17.02 C. ( P T = P + V V + n n + R ) T R = 3.91 K. V 1 V2 T = 17 C±4 C P = 101.325 kpa P = 0.1 kpa V = 0.100 dm 3 V = 0.001 dm 3 R = 8.314Jmol 1 K 1 R = 0.001Jmol 1 K 1 n = 0.00420 mol n = 10 6 mol Izmerene vrednosti za zapremine gasa V i V/2: T 1 = 15 C i T 2 = 19 C Zaključak: Merenja upadaju u opseg, pa ne možemo zaključiti da T zavisi od V!!
Nezgodan primer Aritmetika u pokretnom zarezu: A = ( 1) z 1.f 2 e. Jednostruka prec. (single, float): 1 bit za z 8 bita za E = e +127 23 bita za f Dvostruka prec. (double): 1 bit za z 11 bita za E = e +1023 52 bita za f Zadatak: Izračunati f = 333.75y 6 +x 2 (11x 2 y 2 y 6 121y 4 2)+5.5y 8 +x/(2y) za x = 77617 i y = 33096. f = 1.172603... f = 1.1726039400531... jednostruka prec. dvostruka prec....dok je stvarna vrednost f = 0.8273960599!!! Rešenje: Simboličko izračunavanje (Mathematica, Maple, itd.)
Nelinearne jednačine
Nelinearne jednačine Primer: Nelinearno električno kolo. Struja kroz diodu: I = I s(e V/V T 1). Jednačina kola: I = I s(e (E RI)/V T 1) Nelinearna jednačina po I koju rešavamo numerički. Opšti oblik: f(x) = 0 gde je f : [a,b] R data funkcija. C[a,b] - skup neprekidnih funkcija na [a,b]. Teorema o med uvrednosti: Ako je f C[a,b] i f(a)f(b) < 0 onda f(x) = 0 ima bar jedno rešenje x [a,b].
Metod polovljenja intervala Pretpostavka: f C[a,b] i f(a)f(b) < 0. Sledi da postoji p [a,b] za koje je f(p) = 0. p k = a k +b k 2 [a 0,b 0 ] [a 1,b 1 ] b k a k = b 0 a 0 2 k 0, k + p k p, k + 1. f(a k )f(p k ) < 0 x [a k,p k ] a k+1 = a k, b k+1 = p k 2. f(b k )f(p k ) < 0 x [p k,b k ] a k+1 = p k, b k+1 = b k
Algorithm 1 Metod polovljenja intervala Input: Funkcija f, tačke a 0 i b 0 takve da je f(a 0 )f(b 0 ) < 0 i tačnost ǫ. 1: k := 0 2: while b k a k < ǫ do 3: s k := (a k +b k )/2 4: if f(s k ) = 0 then 5: return s k 6: else if f(s k )f(a k ) < 0 then 7: a k+1 := a k, b k+1 := s k 8: else 9: b k+1 := b k, a k+1 := s k 10: end if 11: k := k +1 12: end while 13: return s k Primer: f(x) = cosx 2x = 0 na segmentu [a,b] = [ 0.5,0.5] za ǫ = 10 3 k a k b k p k 2 0.5 0.5 0 3 0 0.5 0.25 4 0.25 0.5 0.375 5 0.375 0.5 0.4375 6 0.4375 0.5 0.46875 7 0.4375 0.46875 0.453125 8 0.4375 0.453125 0.445313 9 0.445313 0.453125 0.449219 10 0.449219 0.453125 0.451172 11 0.449219 0.451172 0.450195 Rešenje: p = 0.450.
Opšti iterativni metodi Niz x n koji teži rešenju x. f(x) = 0 x = g(x) Metod proste iteracije: x n+1 = g(x n). Vrednost x 0 se zadaje na početku. Teorema. Ako je g : [a,b] [a,b] i g(x) g(y) q x y za neko q [0,1), onda x n x. Posledica. Ako je g : [a,b] [a,b] i g (x) q < 1 za svako x [a,b] i neko q [0,1), onda x n x. Neka je e n = x n x. Ako e n+1 en r jednak r. C 0 onda je metod x n ima red konvergencije Za metod polovljenja intervala je r = 1 i C = 1/2.
Newtonov metod (metod sečice) Jednačina tangente: y f(x 0 ) f (x 0 )(x x 0 ) Ako je y = 0, onda je x = x 0 f(x 0) f. Odavde dobijamo metod: (x 0 ) x n+1 = x n f(xn) f (x n)
Konvergencija i nezgodni slučajevi Teorema. Ako je f C(a,b), f(x) = 0 ima jedinstveno rešenje na [a,b] i f (x) 0 za svako x [a,b], onda postoji ǫ > 0 takvo da x n x za svako x 0 [x ǫ,x +ǫ]. Startnu vrednost x 0 biramo da bude blizu rešenja x. Metod je reda r = 2. Dva nezgodna slučaja:
Primer Jednačina f(x) = (cosx)/2 x = 0. Metod: x n+1 = x n f(xn) (cosxn)/2 xn f = xn + (x n) (sinx. n)/2+1 Primenom metoda za startnu vrednost x 0 = 0.5 dobijamo sledeće iteracije: n x n 0 0.500000000000000000000000 1 0.500000000000000000000000 2 0.450626693077243046567517 3 0.450183647577774742500733 4 0.450183611294873816408968 5 0.450183611294873573036539 Izlazni kriterijumi: x n+1 x n < ǫ ili x n+1 x n x n < ǫ ili f(x n) < ǫ. Zaključak: Newtonov metod konvergira kada je x 0 dovoljno blizu tačnog rešenja x.
Sistemi jednačina (metod Newton-Kantoroviča) Sistem dve nelinearne jednačine: U tački (x 0,y 0 ) je odnosno u vektorskom obliku f 1 (x,y) = 0 f 2 (x,y) = 0 f 1 (x,y) f 1 (x 0,y 0 )+ f 1 x (x x 0)+ f 1 y (y y 0) f 2 (x,y) f 2 (x 0,y 0 )+ f 2 x (x x 0)+ f 2 y (y y 0) [ ] f1 (x,y) f 2 (x,y) [ ] f1 (x 0,y 0 ) f 2 (x 0,y 0 ) f 1 + x f 2 x f 1 [ ] y x x0 f 2. y y 0 y Parcijalne izvode računamo u (x 0,y 0 ). Tako dobijamo metod: 1 [ ] [ ] f 1 xn+1 xn = x (xn,yn) f 1 y (xn,yn) [f1 ] (x n,y n) y n+1 y n f 2 x (xn,yn) f 2 y (xn,yn) f 2 (x n,y n)
Opšti slučaj Sistem n jednačina sa n nepoznatih: f 1 (x 1,x 2,...,x n) = 0 f 2 (x 1,x 2,...,x n) = 0 f n(x 1,x 2,...,x n) = 0 [ ] Metod: x (k+1) = x (k) W(x (k) ) 1 f(x (k) fi ), W(x) = (x) x j Ekvivalentno: 1. Rešiti sistem linearnih jednačina: W(x (k) )δ (k) = f(x (k) ). 2. x (k+1) = x (k) δ (k).. je Jacobijeva mat. Red konvergencije je r = 2. Metod konvergira kada je (x 0,y 0 ) dovoljno blizu (x,y ). Izlazni kriterijumi: x (k+1) x (k) < ǫ ili x(k+1) x (k) x (k) Norma (intenzitet) vektora: x = x1 2 +x2 2 +...+x2 n < ǫ ili f(x (k) ) < ǫ.
Sistemi linearnih jednačina
Sistemi linearnih jednačina Električno kolo: Kirchhoffovi zakoni: 5i 1 +5i 2 = V i 3 i 4 i 5 = 0 2i 4 3i 5 = 0 i 1 i 2 i 3 = V 5i 2 7i 3 2i 4 = 0 Opšti slučaj: 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. a m1 x 1 +a m2 x 2 +...+a mnx n = b m
Matrični oblik U matričnom obliku: Ax = b gde je a 11 a 12 a 1n b 1 x 1 a 21 a 22 a 2n b A =......., b = 2 x., x = 2.. a m1 a m2 a mn b m x n Metodi: 1. Direktni (Gaussov, LU faktorizacija, itd.) 2. Iterativni (Jacobijev, Gauss-Seidelov, itd.)
Gaussov metod a (1) 11 x 1 +a (1) a (1) 21 x 1 +a (1) 12 x 2 +...+a (1) 1n 22 x 2 +...+a (1) 2n xn = b(1) 1 xn = b(1) 2 a (1) n1 x 1 +a (1) m2 x 2 +...+a nn (1) x n = b n (1). a (1) 11 x 1 +a (1) 12 x 2 +...+a (1) 1n a (2) 22 x 2 +...+a (2) 2n xn = b(1) 1 xn = b(2) 2. a (2) n2 x 2 +...+a nn (2) x n = b n (2) Prvu vrstu množimo sa m i1 = a(1) i1 a (1) 11 i oduzimamo od i-te. Poželjno je zameniti vrste i kolone tako da element a 11 bude što veći po apsolutnoj vrednosti!!
Gaussov metod Na kraju dobijamo trougaoni sistem: koji se lako rešava: x n = b(n) n a nn (n) a (1) 11 x 1 +a (1) 12 x 2 +a (1), x k = 1 a (2) 22 x 2 +a (2) a (k) kk 13 x 3 +...+a (1) 1n 23 x 3 +...+a (2) 2n a (3) 33 x 3 +...+a (3) 3n...... xn = b(1) 1 xn = b(2) 2 xn = b(3) 3 a nn (n) x n = b n (n) n b (k) k a (k) ki x i, k = n 1,...,1. i=k+1
Algorithm 2 Gaussov metod za rešavanje sistema linearnih jednačina Input: Matrica sistema A = [a ij ] R n n i vektor desne strane b R n. 1: var(i) := i, za i = 1,2,...,n. 2: for k := 1 to n do 3: (r,s ) := argmax k r,s n a rs 4: Zameni k-tu i r -tu vrstu matrice A 5: Zameni k-tu i s -tu kolonu matrice A 6: Zameni vrednosti var(l) i var(s ) 7: for i := k +1 to n do 8: b i := b i a ik b k a kk 9: for j := k to n do 10: a ij := a ij a ik a kj a kk 11: end for 12: end for 13: end for 14: for i := n downto 1 do 15: x var(i) := 1 n b i a ij x var(j) a ii j=i+1 16: end for 17: return x = (x 1,x 2,...,x n)
[Ne]stabilnost rešenja Posmatrajmo sledeći sistem linearnih jednačina: 0.130x +0.270y = 0.390 0.858x +1.781y = 2.574 Rešenje ovog sistema je x = 3 i y = 0. Ako umesto 2.574 stavimo 2.575, dobijamo rešenja x = 5.076923 i y = 1! Ovakvi sistem su loše uslovljeni (eng. ill-conditioned). Kondicioni broj: cond(a) = A A 1.
Numerička integracija
Pojam integrala b Nτ f(x)dx = lim R(ξ,τ), R(ξ,τ) = f(ξ i ) i. a δ τ 0 i=1 1 Veliki broj integrala nije analitički rešiv. Npr: e x2 dx. 0
Trapezna formula b a [ 1 f(x)dx h 2 f(x 0)+f(x 1 )+...+f(x n 1 )+ 1 ] 2 f(xn). Greška: R 2 (f,h) = (b a) h2 12 max x [a,b] f (x)
Simpsonova formula Važi za n parno. Provlačimo parabolu kroz tačke (x 2i,f(x 2i )), (x 2i+1,f(x 2i+1 )) i (x 2i+2,f(x 2i+2 )). b f(x)dx h [ ] f(x 0 )+4f(x 1 )+2f(x 2 )+4f(x 3 )+...+2f(x n 2 )+4f(x n 1 )+f(x n) a 3 Greška: R 3 (f,h) = (b a) h4 180 max x [a,b] f (4) (x).
Poredjenje... Izračunajmo integral 1 e sinx dx 0 primenom trapezne i Simpsonove formule sa tačnošću ǫ = 10 5. Trapezna formula: f (x) = e sinx cos 2 x e sinx sinx 2 e sinx 2e. e n = 213 6ǫ Rezultat: 1.6318700446821 Greška: 4.36 10 7 Simpsonova formula: f (4) (x) 15e. 3 e n 192ǫ = 12 Rezultat: 1.6318696084181 Greška: 8.8 10 9 Rezultat bolji dva reda veličine za 11x manje tačaka!!!
Richardsonova ekstrapolacija Trapezna formula: F(h) = h ( 1 2 f(x 0)+f(x 1 )+...+f(x n 1 )+ 1 ) 2 f(xn) = a 0 +a 1 h 2 +a 2 h 4 +a 3 h 6 +... Zadatak: eliminisati a 1 h 2 pomoću F(h) i F(h/2): F 1 (h) = F(h/2)+ F(h/2) F(h) 4 1 1 = a 0 +a 2 h4 +..., a 2 = 3 4 a 2. Ovu ideju i dalje primenjujemo i računamo F 2 (h) = F 1 (h/2)+ F 1(h/2) F 1 (h) 4 2 1 = a 0 +a 6 h6 +...
Algorithm 3 Rombergov metod za numeričku integraciju Input: Funkcija f(x), interval integracije [a, b], početni broj čvorova n i broj primena Richardsonove ekstrapolacije N. 1: Izračunati T m,1 = F(h/2 m 1 ), m = 1,2,...,N +1 na osnovu Trapezne formule. 2: for m := 2 to N +1 do 3: for k := 1 to m 1 do 4: T m,k+1 := T m,k + T m,k T m 1,k 4 k. 1 5: end for 6: end for 7: return T N+1,N+1 T m,1 = F(h/2 m 1 ) = h 1 2 m 1 n 1 2 m 1 2 f(a)+ f(a+ih/2 m 1 )+ 1 2 f(b) i=1 Rekurentna formula: T m+1,1 = 1 T m,1 + 2 2 m 1 n 1 i=0 f(a+(2i +1)h/2 m ).
Primer Izračunajmo vrednost integrala primenom Rombergovog metoda. 10 I = e x dx. 0 h T m,1 T m,2 T m,3 T m,4 T m,5 T m,6 10/2 0 5.0002270 10/2 1 2.5338032 1.7116620 10/2 2 1.4734968 1.1200613 1.0806213 10/2 3 1.1268877 1.0113514 1.0041040 1.0028895 10/2 4 1.0322952 1.0007644 1.0000586 1.9999944 0.9999830 10/2 5 1.0080790 1.0000070 0.9999565 0.9999549 0.9999547 0.9999547 Primetimo da je vrednost T 6,6 za 5 reda veličine tačnija od T 6,1 (bez ekstrapolacije) sa istim skupom podataka.
Diferencijalne jednačine
Primer Matematičko klatno: θ = g l sinθ, θ (0) = 0, θ(0) = θ 0. Opšti slučaj: Sistemi: y = f(t,y), t [a,b], y(a) = α. y 1 = f 1(t,y 1,y 2,...,y n) y 2 = f 2(t,y 1,y 2,...,y n). y n = fn(t,y 1,y 2,...,y n) Većina diferencijalnih jednačina je analitički nerešiva. Numeričko rešavanje: dobiti skup vrednosti (t i,y i ), i = 1,2,...,N koje približno leže na grafiku y(t).
Eulerov metod Zadatak: Na osnovu poznate (aproksimativne) vrednosti za y(t), proceniti y(t + h). Najjednostavnije: y(t +h) y(t)+hy (t) = y(t)+hf(t,y(t)). Neka je t i = a+ih, gde je h = b a N korak. Neka je y i = y(t i ): y i+1 = y(t i +h) y i +hf(t i,y i ). Eulerov metod: w 0 = α w i+1 = w i +hf(t i,w i )
Greška Eulerovog metoda Teorema. Ako je f(t,y 1 ) f(t,y 2 ) L y 1 y 2 i y (t) M, onda je y(t i ) w i hm [ ] e L(ti a) a. 2L Zaključak: Greška linearno opada sa h, ali eksponencijalno raste po i, tj. po t. Greška odsecanja τ i+1 (h) = y i+1 hf(t i,y i ) h = O(h 2 ).
Metodi višeg reda Taylorova formula: =R n+1 (t) {}}{ y(t +h) = y(t)+hy (t)+ h2 2! y(2) (t)+...+ hn h n+1 n! y(n) (t)+ (n +1)! y(n+1) (ξ) Član y (k) (t) = f (k 1) (t,y(t)) može da se izrazi preko t i y(t), jer je y (t) = f(t,y(t)). Taylorov metod: w 0 = α w i+1 = w i +hf(t i,w i )+ h2 2! f (t i,w i )+...+ hn n! f (n 1) (t i,w i ) Nedostatak: Treba naći komplikovane izraze za f (k) (t i,w i )!!
Runge-Kutta metod Taylorov metod drugog reda: w 0 = α w i+1 = w i +hφ(t i,w i ), φ(t,y) = f(t,y)+ h 2 f (t,y) Ideja: Umesto φ(t,y) staviti a 1 f(t +α 1,y +β 1 ). a 1 f(t +α 1,y +β 1 ) a 1 f(t,y)+a 1 f t α 1 +a 1 f y f(t,y)β 1 f(t,y)+ h 2 f (t,y) = f(t,y)+ h 2 f t + h f 2 y f(t,y) Izjednačavanjem dobijamo a 1 = 1, α 1 = h 2, β 1 = h 2 f(t,y). Midpoint metod (Runge-Kutta metod reda 2): k 1 = h 2 f(t i,w i ), k 2 = f (t i + h2 ),w i +k 1 w i+1 = w i +hk 2
Runge-Kutta metod reda 4 Slična ideja: w 0 = α, k 1 = hf(t i,w i ) ( k 2 = hf t i + h 2,w i + 1 ) 2 k 1 ( k 3 = hf t i + h 2,w i + 1 ) 2 k 2 k 4 = hf(t i+1,w i +k 3 ) w i+1 = w i + 1 6 (k 1 +2k 2 +2k 3 +k 4 ). Najčešće korišćen metod!! Greška odsecanja τ i+1 (h) = O(h 4 )!
Hvala na pažnji!!!