PG WETiI Katedra Systemów Automatyki Algorytmy obliczeniowe Dr inż. Krzysztof Cisowski Tel: 583471274, email: krci@eti.pg.gda.pl Kierunek studiów Automatyka i Robotyka
Zakres i treść przedmiotu (1) 1. Wprowadzenie do metod numerycznych: klasyfikacja błędów. 2. Metody rozwiązywania równań nieliniowych: metoda bisekcji, metoda stycznych (metoda Newtona-Raphsona), metoda iteracji prostej. 3. Interpolacja funkcji: metoda Lagrange a, metoda Czebyszewa, metoda trygonometryczna. 4. Różnice skończone. Wzór interpolacyjny Stirlinga, I i II wzór interpolacyjny Newtona. 5. Aproksymacja funkcji: metoda najmniejszych kwadratów dla przypadku ciągłego i dyskretnego. 6. Aproksymacja średniokwadratowa dyskretna za za pomocą wielomianów Grama oraz za pomocą wielomianów trygonometrycznych. 7. Aproksymacja za pomocą wzorów empirycznych. 8. Metody dokładne rozwiązywania układów równań liniowych. Metoda eliminacji Gaussa.
Zakres i treść przedmiotu (2) 9. Rozkład macierzy kwadratowej na iloczyn macierzy trójkątnych. Metody rozwiązywania układu równań liniowych: metoda LU oraz metoda QR. Oblicznie wyznaczników i odwracanie macierzy trójkatnych. 10. Metody iteracyjne rozwiązywania układów równań liniowych: metoda Jacobiego, metoda Gaussa-Seidela. 11. Metody rozwiązywania układów równań nieliniowych: metoda Newtona- Raphsona. 12. Całkowanie numeryczne: metoda prostokątów, metoda trapezów, metoda Simpsona. 13. Różniczkowanie numeryczne z wykorzystaniem szeregu Taylora oraz zróżniczkowanych wielomianów interpolacyjnych. 14. Rozwiązywanie równań różniczkowych zwyczajnych: metoda Eulera, metoda Rungego-Kutty. 15. Dyskretna transformacja Fouriera (DFT) algorytm szybkiego przekształcenia Fouriera (FFT).
Bibliografia 1. T. Ratajczak, Metody numeryczne Przykłady i zadania, Wydawnictwo Politechniki Gdańskiej, Gdańsk 2006. 2. Steven C. Chapra, Applied Numerical Methods with MATLAB for Engineers and Scientists, The McGraw-Hill Companies, Inc. New York 2012. 3. A. Szatkowski, J. Cichosz, Metody numeryczne podstawy teoretyczne, Wydawnictwo Politechniki Gdańskiej, Gdańsk 2002. 4. M. Dryja, J. i M. Jankowscy, Przegląd metod i algorytmów numerycznych, WNT, W-wa 1988. 5. T. Trajdos, Matematyka część III, seria Elektronika, Informatyka, Telekomunikacja, WNT Warszawa 1981. 6. Z. Fortuna, J. Wąsowski, B. Macukow, "Metody numeryczne", seria Elektronika, Informatyka, Telekomunikacja, WNT Warszawa 2009. 7. R. Chassaing, D. Reay, Digital signal processing and Applications with the C6713 and C6416 DSK, Wiley-Interscience 2008.
1. Wprowadzenie do metod numerycznych Cecha charakterystyczna metod numerycznych - wykonywanie obliczeń na liczbach przyblizonych - rozwiązania zaganień są wyrażone liczbami przybliżonymi - wielkość błędu w procesie obliczeń numerycznych jest zawsze kontrolowana Dwa pojęcia określania wielkości błędu: Błąd bezwzględny = wartość przybliżona - wartość dokładna wartość przybliżona - wartość dokładna Błąd względny = wartość dokładna
1.1. Klasyfikacja błędów - Błędy modelowania - Błędy danych - Błędy metody (błędy obcięcia) - Błędy zaokrągleń Błąd modelowania pojawiają się, gdy przyjęty model matematyczny jest jedynie przybliżeniem zjawiska rzeczywistego Przykład: Wzrost populacji często oblicza się w oparciu o zależność: N(t) = N 0 e kt, gdzie N 0, k są stałymi (N 0 oznacza liczebność populacji w chwili t = 0). Dla dużych wartości t, wzór ten zwykle zawyża wyniki.
Błędy danych - to błędy danych wejściowych zadania numerycznego. Pojawiają się gdy: - dane wejściowe zadania są wynikiem pomiarów, - w trakcie obliczeń używane są stałe, będące przybliżeniami liczb niewymiernych. Złe uwarunkowanie zadania numerycznego - niewielkie zmiany względne danych zadania powodują duże względne zmiany jego rozwiązania. Przykład:Rozwiązać następujące układy równań liniowych: a) b) a) b) x 1 =6, x 2 =12, x 3 =60 x' 1 = -1377,777778, x' 2 =7217,460317, x' 3 = -6663,492063 a 13 = a 22 = a 31 = 1/3 a' 13 = a' 22 = a' 31 = 0,33
Błędy danych (c.d.) (a i j ) = a' i j - a i j / a i j, i, j = 1, 2, 3 (x i ) = x' i - x i / x i, i = 1, 2, 3 (a 13 )= (a 22 )= (a 31 )= 0.33-1/3 / 1/3 100 %= 99/300-100/300 300% = 1% (x 1 )=23063%, (x 2 )=60045%, (x 3 )=11206% Wskaźnik uwarunkowania zadania oznaczany cond(zadanie) charakteryzuje liczbowo wpływ zaburzeń danych zadania na zaburzenia rozwiązania. Jest on równy najmniejszej liczbie rzeczywistej dodatniej spełniającej nierówność: błąd względny( wyniki zadania ) cond( zadanie ) błąd względny( dane zadania ) Obliczenie wskaźnika uwarunkowania dla zmiennej x 2 60045% cond( x 2 ) 1% => cond( x 2 ) = 60045. Powyższe zadanie jest źle uwarunkowane, wskaźnik cond( x 2 ) jest bardzo duży.
Błędy metody (błędy odcięcia) Błędy metody pojawiają się w wyniku zastąpienia działań nieskończonych działaniami skończonymi lub działań na wielkościach nieskończenie małych działaniami na wielkościach skończenie małych. Błędy tego typu pojawiają się, gdy obliczane są wartości pojęć zdefiniowanych za pomocą granicy. Przykład 1: Obliczyć przybliżoną wartość pierwszej pochodnej funkcji ciągłej y= f (x): y R, x a, b R x i a, b. w danym punkcie Wybierając w przedziale punkt, wartość pierwszej pochodnej funkcji f ( x) w punkcie x i f ' (x i )= d f ( x) d x x= x i = lim ( x i+1 x i ) 0 wyznaczymy obliczając granicę Jeśli pominiemy operator granicy i wybierzemy małą wartość odstępu x i +1 x i otrzymamy aproksymację wartości pierwszej pochodnej w punkcie x wg[2 ] i za pomocą ilorazu różnicowego a, b x i +1 f (x i +1 ) f ( x i ) x i+ 1 x i. f ' (x i ) f ( x i +1 ) f ( x i ) x i+1 x i.
Błędy metody (błędy odcięcia) [c.d. 2.] Przykład 2: Przeanalizować proces aproksymacji za pomocą obciętego do pierwszych wyrazów szeregu Taylora - tego rzędu funkcji (n+1) - krotnie różniczkowalnej w przedziale w sposób ciągły. Szereg Taylora: przyjmując oraz można zapisać gdzie n (m < n) y= f (x): y R, x a, b R, a,b x i, x i+ 1 a,b h= x i +1 x i f ( x i +1 )= f (x i )+ f ' (x i ) h+ f ' ' (x i) h 2 + f (3) (x i ) h 3 + + f (n) (x i ) h n + R 2! 3! n! n, R n = f (n+1 ) (ξ ) to reszta w postaci Lagrange`a. (n+1)! hn+ 1 =O(h n+1 ) ξ x i, x i +1 f ( x i )=a 0 ( x i ) f (k) (x i )/[(k +1)!]=a k ( x i ) Oznaczając oraz otrzymujemy: f ( x i +1 )=a 0 (x i )+a 1 ( x i ) h +a 2 (x i ) h 2 +a 3 (x i ) h 3 + +a n ( x i ) h n +R n h (n +1) R n =O (h n +1 ) Jest to wielomian względem zmiennej rzedu, gdyż. x i =0 h= x i +1 =x Jeśli (stąd ) szereg Taylora staje się szeregiem Maclaurina: f ( x)=a 0 (0)+a 1 (0) x+a 2 (0) x 2 +a 3 (0) x 3 + +a n (0) x n +R n m
Błędy metody (błędy odcięcia) [c.d. 3.] Przykład 2 cd: Dobór zmiennej Dla szeregu Taylora rzędu zerowego można napisać f ( x i +1 )= f (x i )+R 0 = f ( x i )+ f ' (ξ ) h ξ f ' (ξ ) Wartość należy dobrać tak, aby równa tangensowi kąta nachylenia prostej przechodzącej przez pkty. oraz wynosiła Aproksymacja funkcji Wykorzystując aproksymacji funkcji - tego rzędu. Aproks. rz. : Aproks. rz. : Aproks. rz. : m (m<n) m m=0 m=1 ξ (x i, f (x i )) f ( x) (x i +1, f ( x i+1 )) f ' (ξ )= R 0 h pierwszych wyrazów szeregu Taylora dokonujemy f ( x i +1 ) f (x i ) f ( x i +1 ) f (x i )+ f ' (x i ) h m=2 f ( x i +1 ) f (x i )+ f ' (x i ) h+ f ' ' (x i) h 2 2! wg[2 ] wg[2 ]
Błędy metody (błędy odcięcia) [c.d. 4.] Przykład 3: Obliczyć wartość funkcji w przedziale za pomocą szeregu funkcyjnego (Maclaurina) obciętego do y=sin (x) xϵ <0, 2 π >, m pierwszych wyrazów. Rozwinięcie funkcji f ( x)=sin( x) w nieskończony szereg potęgowy Maclaurina: f ( x)=sin (x)= ( 1) k x 2 k+1 x3 = x k= 0 (2 k +1)! 3! + x5 5! x7 7! + Rozwinięcie skończone (suma skończona) obraniczone do szeregu ma postać: m pierwszych wyrazów m f m ( x)= k =0 ( 1) k x 2 k +1 x3 =x (2 k +1)! 3! + x5 5! x7 x 2 m+1 7! + +( 1)m (2 m+1)!
Błędy metody (błędy odcięcia) [c.d. 5.] Błąd metody pojawiający się w wyniku obcięcia szeregu nieskończonego do pierwszych wyrazów nie powinien przekroczyć zadanej wartości : m Własność szeregów naprzemiennych: Jeżeli szereg jest naprzemieny i jego wyrazy co do bezwzględnej wartości zmierzają monotonicznie do zera, to dla każdego naturalnego nierówniość: f (x) f m (x) = ( 1) k x 2 k+ 1 k =m+1 (2 k +1)! ε k =0 a k k=0 m a k k =0 a k = k= m+1 prawdziwa jest Własność powyższą można wykorzystać jako kryterium zakończenia algorytmu y=sin ( x) a k < a m+1 obliczania wartości funkcji z zadaną dokładnością : f (x) f m (x) = ( 1) k x 2 k+ 1 k =m+1 (2k +1)! < x (2m+3)! ε m ε ε
Błędy metody (błędy odcięcia) [c.d. 6.] Fragment programu zapisany w pseudokodzie służący do obliczania wartości funkcji y=sin ( x) w przedziale xϵ <0, 2 π >, z zadaną dokładnością ε :
Błędy zaokrągleń Błędy zaokrągleń wynikają z faktu wykonywania obliczeń na liczbach o skończonym rozwinięciu pozycyjnym. n +2 1 n +1 Struktura liczby stałoprzecinkowej o długości bity ( bit znaku, bitów przeznaczonych na wartość bezwzględną liczby): Interpretacja struktury liczby stałoprzecinkowej: (znak liczby) (bity wartości bezwzględnej liczby)
Błędy zaokrągleń (c.d. 1.) Na n+2 bitach można zapisywać liczby całkowite z przedziału [-2 n+1 +1; 2 n+1-1] Liczby stałoprzecinkowe są podzbiorem liczb całkowitych. Liczby całkowite o wartości bezwzględnej p > 2 n+1-1 nie mogą być reprezentowany przez system n+2 bitowy. Jeśli w trakcie obliczeń pojawi się taka liczba, to wystąpi sytuacja wyjątkowa nazywana nadmiarem stałoprzecinkowym.
Błędy zaokrągleń (c.d. 2.) Liczby zmiennoprzecinkowe są reprezentowane za pomocą trzech obszarów bitów: znaku liczby s, mantysy m t, zapisanej na t bitach oraz cechy (exponent) c n zapisanej w formacie stałoprzecinkowym na n+2 bitach (s c oznacza znak cechy ''1'' potęgi dodatnie, ''0'' potęgi ujemne). Wagi: Bity: 2 1 2 2 2 t 2 n 2 2 2 1 2 0 s b 1 b 2 b t s c b n b 2 b 1 b 0 Znak Liczby mantysa m t cecha c n Reprezentacja zmiennoprzecinkowa liczby x oznaczana rd(x) jest liczbą: rd x =s m t 2 c n, a samą liczbę x wyraża zależność x=s m 2 c n, gdzie: s = 1 albo s = -1 - znak liczby, t m t =1+ b k 2 k - mantysa znormalizowana ( 1 m t <2 ), k =1 n m - mantysa liczby x, c n =s c b k 2 k = 1 + b k 2 k - cecha. k=1 Błąd względny reprezentacji zmiennoprzecinkowej można oszacować w oparciu o zależność: x rd x. Liczba =2 t określa dokładność komputera, x 2 t zależy ona tylko od t - liczby bitów mantysy. k =0
Błędy zaokrągleń (c.d. 3.) Zakresy zmienności: mantysy - 1 m t 2 2 t cechy - 2 n +1 +1 c n 2 n +1 1 reprezentacji zmiennoprzecinkowej rd (x)- 2 2 2n+1 rd (x) <2 2 n+1 Liczby x <2 2 2n+1 w tym 0, nie mają swojej reprezentacji zmiennoprzecinkowej. Jeśli w trakcie obliczeń uzyskamy liczbę spełniającą powyższy warunek, to sytuację taką nazywamy niedomiarem zmiennoprzecinkowym (ang. Underflow) Liczby x 2 2 n+1 równiez nie maja swojej reprezentacji zmiennoprzecinkowej. Jeśli w trakcie obliczeń uzyskamy liczbę spełniającą powyższy warunek, to sytuację taką nazywamy namiarem zmiennoprzecinkowym (ang. Overflow)
Błędy zaokrągleń (c.d. 4.) Problemy występujące podczas obliczeń zmiennoprzecinkowych (w poniższych przykładach mantysa jest 4 cyfrowa): 1. Jeśli wykonywana jest operacja odejmowania na dwoch dużych liczbach nieznacznie się różniących (co oznacza, że na pozycjach najbardziej znaczących cyfry są równe a na pozycjach mniej znaczących cyfry mogą się różnić) w wyniku następuje utrata cyfr znaczących. Na przykład obliczyć wartości funkcji f ( x)=x( x+1 x) dla x={5,500,5000 }. Porównać uzyskane wyniki z wartościami dokładnymi f d ( x). f (5)=5 ( 6 5)=0,5000 10 1 ( 0,2449 10 1 0,2236 10 1 )=0,5000 10 1 0,0213 10 1 =0,1067 10 1 f d (5)=1,067108826417 bł.bezwzgl.= f d (5) f (5 )=0,000108826417 bł.wzgl.= f d(5) f (5) 100%=0,01 % f d (5) f (500)=500 ( 501 500)=0,5000 10 3 (0, 2238 10 2 0,2236 10 2 )=0,1000 10 2 f d (500)=11,174755300747 bł.bezwzgl.= f d (500) f (500)=1,174755300747 bł.wzgl.= bł.bezwzgl. f d (500) 100%=10,52% f (5000)=5000 ( 5001 5000)=0,5000 10 4 ( 0,7071 10 2 0,7071 10 2 )=0 f d (5000)=35,353571469088 bł.bezwzgl.= f d (5000) f (5000)=35,353571469088 bł.wzgl.= bł.bezwzgl. f d (5000) 100%=100% 2. Jeśli do dużej liczby dodawana jest liczba mała suma może być równa liczbie dużej. Przykładowo dodając 4000=0,4000 10 4 i 0,0010=0,1000 10 2 konieczne jest wyrównanie cech obu liczb do cechy liczby wiekszej. Powoduje to efektywne wyzerowanie mantysy liczby mniejszej. W efekcie suma liczb jest równa samej liczbie większej. 0,4000 10 4 0,0000001 10 4 0,4000001 10 4 =0,4000 10 4
Błędy zaokrągleń (c.d. 5.) Problemy występujące podczas obliczeń zmiennoprzecinkowych (c.d.): 3. Gdy wykonywane są długotrwałe obliczenia iteracyjne (np. długie pętle for) błędy związane z binarną reprezentacją liczb dziesiętnych oraz błędy zasygnalizowane w poprzednich punktach kumulują się, prowadząc do dużych błędów rozwiązań końcowych lub niestabilności algorytmów. Np. wykonując poniższy podprogram nie uzyskamy wartości s=1, gdyż stała (0,0001) 10 nie posiada skończonego rozwinięcia w systemie binarnym i w obliczeniach będzie wykorzystywane jej przybliżenie z niedomiarem: SumDemo() 1 s :=0 2 k :=0 3 repeat 4 s :=s+0.0001 5 k :=k +1 6 until(k <10000 ) Przykładowy wynik działania funkcji s=0,99999999999991 Algorytm nazywamy stabilnym jeśli błąd względny wyniku niewiele różni się od błędu względnego danych. W przeciwnym przypadku tzn. gdy Błąd wzgledny (wyniki ) Błąd wzgledny (dane) algorytym nazywamy niestabilnym. SumDemo()
Błędy zaokrągleń (c.d. 6) Problemy występujące podczas obliczeń zmiennoprzecinkowych (c.d.): Przykład algorytmu niestabilnego: obliczanie a >0 oraz naturalnego n. Power (n, a) 1 y :=1.0 2 for k :=1.0 to n 3 do y :=y a Jeśli podstawa potęgi a obarczona jest błędem to: y=a n, dla zadanego rzeczywistego bł.wzgl. y = an (a+ε ) n = a a n a n Zaniedbując w liczniku ostatniego wyrażenia składniki zawierające bardzo mały czynnik ε k dla k 2, otrzymujemy: Można zauważyć, że bł.wzgl.y jest n - krotnie większy od błędu względnego podstawy potegowania a oraz że rośnie on wraz ze wzrostem wykładnika potęgi n. ε n ( an + ( n 1) an 1 ε + ( n bł.wzgl.a = 2) a n 2 ε 2 + +ε n) n ( bł.wzgl. y = a a n + ( n 1) an 1 a n a (a+ε ) a ε ) = ε a = n ε a
Błędy Zaokrągleń (c.d. 7.) Liczby zmiennoprzecinkowe 32 bitowe typu float S - znak liczby, 31 bit, '0' liczba dodatnia, '1' liczba ujemna C - cecha (exponent), bity 23-30, liczba ZU2 równa wykładnikowi potęgi k powiększonemu o wartość 127 M - mantysa, bity 0-22, liczba postaci 1.xxxx..., gdzie xxxx... pozostałe bity mantysy. Mantysę zapisuje się z pominięciem pierwszej "jedynki" (przed kropką):.xxxx... Przykład: Liczba (13.75) D = (1101.11) B = (1.10111 ) B x 2 3 S = 0, C = 3+127 = 130 = 10000010 M = 10111000000000000000000 (13.75) D = (01000001010111000000000000000000) float Cecha Mantysa Znak
Błędy Zaokrągleń (c.d. 8.)
2. Wyznaczanie rzeczywistych i jednokrotnych pierwiastków równań nieliniowych Niech y= f (x) będzie funkcją rzeczywistą zmiennej rzeczywistej x. Pierwiastkiem (zerem) równania f (x)=0 lub (lub pierwiastkiem (zerem) funkcji y= f (x) nazywamy każdą wartość x zmiennej niezależnej x, dla której f x =0. Zagadnienie przybliżonego obliczania pierwiastków (2.1): Dla zadanej dokładności ε należy znaleźć takie x, dla którego zachodzi nierówność x x
Zagadnienie przybliżonego obliczania pierwiastków (2.1) Przybliżoną wartość pierwiastka funkcji wyznacza się w dwóch etapach: 1) Lokalizuje się pierwiastki równania tj. a) znajduje się liczbę p pierwiastków równania, b) dla każdego pierwiastaka x i znajduje się taki przedział [a i ;b i ], że x i [ a i ; b i ] oraz [a i ;b i ] [a j ;b j ]=0 dla i, j=1,2,..., p ;i j. 2) Uściśla się przybliżoną wartość pierwiastka, tj. dla zadanego x i i zadanej dokładności znajduje się wartość x i, że x i x i dla i=1, 2,..., p.
Zagadnienie przybliżonego obliczania pierwiastków (2.3) Lokalizacja pierwiastków: Przykład: Zlokalizować rzeczywiste pierwiastki funkcji f (x)=log(x+ 2) 2 x 2 + 1. Rozwiązanie: po przyrównaniu funkcji do zera, otrzymuje się równanie: log x 2 2x 2 1=0, które przekształca się do postaci: log x 2 =2x 2 1. Otrzymana zależność wyraża równość dwóch funkcji: y=log x 2 oraz y=2x 2 1. Zaganienie to można rozwiązać graficznie, odczytując odcięte punktow przecięcia się obydwu wykresów - metoda zgrubna rozwiązywania równań. Wykres pozwala również oszacować liczbę pierwiasków (w tym przypadku p=2) oraz przedziały ich występowania: x 1 [ 0,8 ; 0,7], x 2 [1,0 ;1,1]. wg[1]
Zagadnienie przybliżonego obliczania pierwiastków (2.4) Lokalizacja pierwiastków metoda,,przesiewowa'': Tabela 1: Przykładowa symulacja
Zagadnienie przybliżonego obliczania pierwiastków (2.5) Metoda bisekcji (metoda połowienia przedziału) (2.5.1): Zakłada się, że w przedziale [a 0 ;b 0 ] został zlokalizowany jednokrotny, rzeczywisty pierwiastek funkcji y= f x, przy czym f x C [a 0 ;b 0 ]. Prawdziwe jest zatem: f a 0 f b 0 0. W kolejnych krokach algorytmu k=0,1, 2,... wyznacza się zmienną c k = a k b k /2 i modyfikuje przedział [a k 1 ;b k 1 ] zgodnie z zależnością: - jeśli f a k f c k 0 to a k 1 =a k,b k 1 =c k, - w przeciwnym przypadku a k 1 =c k,b k 1 =b k, Obliczenia są przerywane, gdy różnica pomiędzy krańcami przedziału zmaleje poniżej przyjętej wartości tj. a k b k.
Zagadnienie przybliżonego obliczania pierwiastków (2.5) Metoda bisekcji (2.5.2): Pseudokod programu: 1 k :=0 2 a 0 :=a 3 b 0 :=b 4 while b k a k ε 5 do begin 6 c k := a k+b k 2 7 if f (a k ) f (c k ) 0 8 then begin 9 a k +1 :=a k 10 b k +1 :=c k 11 end 12 else begin 13 a k +1 :=c k 14 b k +1 :=b k 15 end 16 k :=k +1 17 end 18 ~ x := a k +b k 2
Zagadnienie przybliżonego obliczania pierwiastków (2.5) Metoda bisekcji (2.5.3): Przykład : Wyznaczyć metodą bisekcji ujemny pierwiastek ( x 1 [ 0,8 ; 0,7]) funkcji f x =log x 2 2 x 2 1 z dokładnością =10 5. Tabela 2: Etapy wyznaczania rozwiązania
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (metoda Newtona-Raphsona (N-R)) (2.6.1): Zakłada się, że w przedziale [a 0 ;b 0 ] został zlokalizowany jednokrotny, rzeczywisty pierwiastek funkcji y= f x, zatem: f a 0 f b 0 0. Założenia metody N-R: - f x C [a 0 ;b 0 ], - dla każdego x [a 0 ;b 0 ] albo f ' x 0 albo f ' x 0 ( f ' x nie zmienia znaku na przedziale [a 0 ;b 0 ], - dla każdego x [a 0 ;b 0 ] albo f ' ' x 0 albo f ' ' x 0 ( f ' ' x nie zmienia znaku na przedziale [a 0 ;b 0 ].
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (2.6.2): Algorytm postępowania 1. Jako punkt startowy wybiera się ten kraniec przedziału [a 0 ;b 0 ], (tzn. albo x 0 x 0 =a 0 albo x 0 =b 0 ), który spełnia warunek f x 0 f ' ' x 0 0 2. Wyznacza się parametr: m=min { f ' a 0 ; f ' b 0 } f x k 3. while m 4. do begin 5. x k 1 :=x k f x k f ' x k 6. k :=k 1 7. end 8. x k := x k Wygenerowany ciąg wartości x k,k=0,1,2,... Raphsona (procesu N-R). nosi nazwę procesu Newtona-
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (2.6.3): Własności procesu N-R (Twierdzenie) Jeśli funkcja 1. lim k x k = x y= f x spełnia założenia metody N-R to proces N-R ma własności: (proces jest zbieżny do pierwiastka funkcji przedziale [a 0 ;b 0 ] ). 2. Ciąg x k,k=0,1,2,... jest ściśle monotoniczny, tzn. albo x 0 x 1 x k x albo y= f x x 0 x 1 x k x. leżącego w 3. k-ty wyraz procesu spełnia nierówność gdzie m=min { f ' a 0 ; f ' b 0 }. x x k f x k m
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (2.6.4): Konstrukcja ciągu kolejnych przybliżeń: f(x 0 ) tg = f ' x 0 = f x 0 x 0 x 1 x 1 = x 0 f x 0 f ' x 0 wg [3]
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (2.6.5): Przykład : Wyznaczyć metodą stycznych ujemny pierwiastek ( x 1 [ 0,8 ; 0,7] ) funkcji f (x)=log(x+ 2) 2 x 2 + 1 z dokładnością =10 5. Rozwiązanie: na początku należy wykazać, że w badanym przedziale funkcja spełnia założenia metody N-R. Dla x> 2 funkcja jest ciągła i ma ciągłe pochodne wszystkich rzędów f ' (x)= 1 8x+ 1 x+ 2 4x= 4x2 x+ 2 W przedziale [ 0,8 ; 0,7] spełniona jest nierówność f ' (x)> 0. f ' ' (x)= 1 4< 0 dla x> 2. 2 (x+ 2) {> 0 dla 2< x< 5 2 1 0.118 < 0 dla x > 5 2 1 0.118 Wniosek w przedziale [ 0,8; 0,7] Można stosować metodę stycznych. funkcja spełnia założenia metody N-R.
Zagadnienie przybliżonego obliczania pierwiastków (2.6) Metoda stycznych (2.6.6): Rozwiązanie (cd): następnym etapem jest wyznaczenie wartości początkowej oraz m. Z tabeli 1 można odczytać wartości funkcji dla obydwu końców przedziału: f ( 0,8)= 0,09768< 0, f ( 0,7)=+ 0.28286> 0. Ponieważ f ( 0,8) f ' ' ( 0,8)> 0 przyjmuje się że x 0 = 0,8. Następnie oblicza się m: 1 m=min{ 0,8+ 2 4( 0,8) ; 1 0,7+ 2 4( 0,7) } =min {4,033 ;3,569} 3,569. Wartości uzyskiwane w kolejnych iteracjach metody zawiera tabela 3. Tabela 3. x 0
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.1): Zakłada się, że w przedziale [a 0 ;b 0 ] został zlokalizowany jednokrotny, rzeczywisty pierwiastek funkcji y= f x, zatem: f a 0 f b 0 0. Metoda iteracji prostej składa sie z dwóch etapów: 1. Równanie f x =0 przekształca się do równoważnej postaci x=φ (x) (takie przekształcenie jest zawsze wykonalne i zazwyczaj istnieje kilka jego wariantów). 2. Wybiera się z przedziału [a 0 ;b 0 ] przybliżenie. Kolejne iteracje oblicza się ze wzoru: x k+ 1 =φ (x k ) dla k=0,1, x 0
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.2): Twierdzenie: Niech funkcja y=φ (x) będzie określona, ciągła i różniczkowalna w przedziale domkniętym dla każdego [a;b] oraz φ (x)ϵ C [a ;b] dla każdego xϵ [a; b]. Jeśli nierówność φ ' (x) q< 1 zachodzi dla każdego xϵ [a; b], to: 1) proces jest zbieżny niezależnie od wyboru x 0 ϵ [a ; b], oraz 2) zachodzą nierówności lim k x k = x [a ;b], x x k q 1 q x k x k 1 qk 1 q x 1 x 0 dla k=1,2,...
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.3): Algorytm postępowania 1. Równanie pierwotne przekształca się do postaci równoważnej x= x, ktora spełnia założenia Twierdzenia. 2. Jako punkt startowy x 0 wybiera się dowolny x 0 [a 0 ; b 0 ] np. x 0 = a 0 b 0 /2. 3. k :=0 4. repeat 5. k :=k 1 6. x k = x k 1 7. until q 1 q x k x k 1 8. x :=x k
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.4): Przykład: Obliczyć metodą iteracji prostej ujemny pierwiastek funkcji f (x)=ln(x+ 2) 2x 2 + 1 z dokladnością ϵ =10 5. Rozwiazanie: ujemny pierwiastek funkcji leży w przedziale [ 0,8 ; 0,7] a dodatni w przedziale [1,0 ;1,1]. Najpierw przekształcamy równanie ln( x+ 2) 2x 2 + 1=0 do równoważnej postaci, spełniającej założenia twierdzenia. Przykładowo równanie można przekształcić w sposób: x=e 2x2 1 2=φ 0 (x). Dla tego przedstawienia mamy φ ' 0 ( x) = 4 x e 2x2 1 =4 x e 2x2 1.
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.5): Rozwiązanie (cd) Funkcja ta jest: a) w przedziale [ 0,8 ; 0,7] monotonicznie malejąca, stad dla xϵ [ 0,8 ; 0,7] φ ' 0 (x) φ ' 0 ( 0,7) =2,74456 ; b) w przedziale [1,0;1,1] monotonicznie rosnąca, zatem dla xϵ [1,0;1,1] φ ' 0 (x) φ ' 0 (1,0) =10,87313. W obydwu przedziałach spełniony jest warunek φ ' 0 (x) > 1, utworzony przez odwzorowanie x k =φ 0 (x k 1 ), k=1,2,... stąd proces jest rozbieżny.
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.6): Rozwiązanie (cd) Równanie ln( x+ 2) 2x 2 + 1=0 postaci jako para równań: x= ln (x+ 2)+ 1 =φ 2 1 (x), x= Dla obydwu funkcji moduł pochodnej jest równy może być przedstawione w równoważnej ln(x+ 2)+ 1 =φ 2 2 (x). φ ' 1,2 (x) = 1 2 1 2 1 ln(x+ 2)+ 1 1 x+ 2 = 2 4 1 ln(x+ 2)+ 1 1 x+ 2. Dla x 1 funkcja y= φ ' 1,2 (x) jest monotonicznie malejąca, stąd φ ' 1,2 (x) φ ' 1,2 ( 1.0) = 2 4 =0.35355< 1.
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.7): Rozwiązanie (cd) W związku z tym, w procesie iteracyjnym zostaną użyte funkcje: a) φ 1 ( x)= ln( x+ 2)+ 1 2 dla wyznaczenia przybliżonej wartości pierwiastka z przedzialu [ 0,8 ; 0,7], b) φ 2 (x)= ln(x+ 2)+ 1 2 dla wyznaczenia przybliżonej wartości pierwiastka z przedzialu [1,0 ;1,1]. Za q przyjęto: max φ 1 ' (x)=0.27096 0.8 x 0.7 dla pierwiastka z przedzialu [ 0,8 ; 0,7], max φ 2 ' (x)=0.08135 1.0 x 1.1 dla pierwiastka z przedzialu [1,0 ;1,1].
Zagadnienie przybliżonego obliczania pierwiastków (2.7) Metoda iteracji prostej (2.7.8): Rozwiązanie (cd) Wartości uzyskane w kolejnych iteracjach k metody iteracji prostej podano w tabeli 4. Tabela 4.