Algorytmy numeryczne. Matematyka komputerowa ()
Transkrypt
Algorytmy numeryczne. Matematyka komputerowa ()
Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj 1 1 Schemat Hornera n P Obliczenie wartości wielomianu W (x) = ai · xi wymaga co najmniej n dodawań, ale można i=0 zaoszczędzić na mnożeniach: (postać „zwykła”) W (x) = a0 + a1 · x + a2 · x2 + a3 · x3 + . . . + an · xn , | (postać Hornera) {z W (x) = a0 + x · (a1 + x · (a2 + . . . x · (an−1 + x · an ) . . .)) | 2 } (0+1+2+...+n)'O(n2 ) mnożeń {z } n mnożeń Interpolacja wielomianowa Danych jest n + 1 punktów: (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ); xi 6= xj . Znaleźć (jedyny) wielomian i6=j W (x), deg W 6 n, przechodzący przez te punkty: W (x0 ) = y0 , W (x1 ) = y1 , . . ., W (xn ) = yn . n P Q x − xk . Wzór interpolacyjny Lagrange’a (teoretyczny): W (x) = yi · x − xk i=0 k=0,...,n i k6=i Schemat ilorazów różnicowych (praktyczny) x0 x1 x2 x3 . . . xn−1 xn k = 0 y0 y1 y2 y3 . . . yn−1 yn y01 y12 y23 ... yn−1,n k=1 k=2 y012 y123 ... ... ... .......................................................... ... y012...n k=n y01 = y1 −y0 , x1 −x0 y12 = y12 −y01 , x2 −x0 y012 = y0123 = y123 −y012 , x3 −x0 y123 = y2 −y1 , x2 −x1 y23 −y12 , x3 −x1 ... ... ... y0123...n = y123...(n−1) −y012...n xn −x0 W (x) = y0 + y01 · (x − x0 ) + y012 · (x − x0 ) · (x − x1 ) + . . . . . . + y012...n · (x − x0 ) · (x − x1 ) · . . . · (x − xn−1 ) = Horner = y0 + (x − x0 ) · (y01 + (x − x1 ) · (y012 + . . . (x − xn−1 ) · y012...n . . .)) Uwaga: Wielomian zależy też od xn , które jest ukryte we wzorze na y012...n . 3 Kwadratury Jeśli przedział [a, b] jest „długi”, to dzielimy go na mniejsze [a, b] = n S [ξi−1 , ξi ], a = ξ0 < ξ1 < i=1 . . . ξi−1 < ξi < . . . ξn = b, Rb a = n P Rξi , a na każdym z krótkich przedziałów [ξi−1 , ξi ] stosujemy i=1 ξi−1 jedną z metod Newtona-Cotesa: • metoda trapezów Rb f (x) dx ≈ a • metoda parabol (=Simpsona) f (a)+f (b) 2 Rb a · h, h = b − a, f (x) dx ≈ [f (a) + 4 f (c) + f (b)] · h6 , h = b − a, c = a+b . 2 2 Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj Uwaga: Metoda trapezów daje dokładną wartość, gdy f jest liniowa, a metoda parabol – gdy f jest kwadratowa. Uzasadnienie: obie metody polegają na zastąpieniu f jej wielomianem interpolacyjnym: stopnia 1 z węzłami (a, f (a)), (b, f (b)) oraz, odpowiednio, stopnia 2 z węzłami (a, f (a)), (b, f (b)), (c, f (c)). Użycie wielomianów interpolacyjnych dowolnego stopnia prowadzi do ogólnych metod Newtona-Cotesa. 4 Rozwiązywanie równań Szukamy rozwiązań równania f (x) = 0 (=miejsc zerowych=pierwiastków). Bisekcja Jeśli f : [a, b] → R – ciągła, a f (a) i f (b) są różnych znaków (f (a) · f (b) 6 0), to z twierdzenia Darboux ∃x∈(a,b) f (x) = 0. Algorytm: 1. Dzielimy przedział [a, b] na dwie połowy [a, b] = [a, c] ∪ [c, b], c = a+b . 2 2. Sprawdzamy, czy f (a) i f (c) są różnych znaków f (a) · f (c) 6 0. 3. Jeśli tak, to [a, c] zawiera pierwiastek f i przyjmujemy [a, b] := [a, c]. Jeśli nie, to [c, b] zawiera pierwiastek f i przyjmujemy [a, b] := [c, b]. 4. Powtarzamy 1-3 aż do uzyskania zadowalającej dokładności, przyjmując x = a+b dla prze2 n+1 działu [a, b] uzyskanego w ostatnim kroku. Błąd po n iteracjach wynosi |b − a|/2 . Metoda stycznych (Newtona-Raphsona) xn+1 = xn − f (xn ) f 0 (xn ) Startując z x0 dostatecznie bliskiego szukanego pierwiastka x uzyskujemy xn n→∞ −→ x. Rząd zbieżności jest kwadratowy (reguła kciuka: „liczba cyfr dokładnych podwaja się w każdym kroku”). Uwaga: Nie zawsze wiemy jak wystartować blisko x. Niekiedy f 0 (xn ) = 0 (błąd dzielenia przez 0). 5 Algebra symboliczna CAS – computer algebra systems (systemy algebry komputerowej): Maple, Maxima, Mathematica; wykonują obliczenia i manipulują na symbolach udzielając dokładnych odpowiedzi (gdzie potrafią). Przykłady π • Obliczyć całkę R2 0 π sin x dx = (− cos x)|02 = 1. (%i1) /* w Maximie */ integrate(sin(x),x,0,%pi/2); > int(sin(x),x=0..Pi/2); # w Maple’u • Rozłożyć wielomian b2 − a2 = (b − a) · (b + a). (%i2) /* w Maximie */ factor(b^2 - a^2); > factor(b^2 - a^2); # w Maple’u Algorytmy numeryczne. Matematyka komputerowa. v.0.8 – egz mgr inf niestacj 6 3 Inne zagadnienia Funkcje sklejane (=giętkie =splines), szybka transformata Fouriera (=FFT), eliminacja Gaussa (=pivoting), łamane Eulera (schemat różnicowy dla równań różniczkowych), model wzrostu wykładniczego (ciągła kapitalizacja odsetek, model Malthusa przyrostu naturalnego, rozpad promieniotwórczy, różnicowanie się języków naturalnych).