44
PG WETiI Katedra Systemów Automatyki Algorytmy obliczeniowe Dr inż. Krzysztof Cisowski Tel: 583471274, email: [email protected] Kierunek studiów Automatyka i Robotyka

PG WETiI Katedra Systemów AutomatykiPG WETiI Katedra Systemów Automatyki Algorytmy obliczeniowe Dr inż. Krzysztof Cisowski Tel: 583471274, email: [email protected] Kierunek studiów

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • PG WETiI Katedra Systemów Automatyki

    Algorytmy obliczeniowe

    Dr inż. Krzysztof Cisowski

    Tel: 583471274, email: [email protected]

    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) = N0 e kt ,

    gdzie N0, k są stałymi (N0 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)

    x1=6, x2=12, x3=60 x'1= -1377,777778, x'2=7217,460317, x'3= -6663,492063

    a13 = a22 = a31 = 1/3 a'13 = a'22 = a'31 = 0,33

  • Błędy danych (c.d.)

    (ai j ) = | a'i j - ai j | / | ai j |, i, j = 1, 2, 3 (xi ) = | x'i - xi | / | xi |, i = 1, 2, 3

    (a13 )=(a22 )=(a31 )=| 0.33 - 1/3 | / | 1/3 | ∙ 100 %= | 99/300 - 100/300 | ∙ 300% = 1%

    (x1 )=23063%, (x2 )=60045%, (x3 )=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 x2

    60045% ≤ cond( x2 ) ∙ 1% => cond( x2 ) = 60045.

    Powyższe zadanie jest źle uwarunkowane, wskaźnik cond( x2 ) 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

    w danym punkcie

    Wybierając w przedziale punkt , wartość pierwszej pochodnej funkcji

    w punkcie wyznaczymy obliczając granicę

    Jeśli pominiemy operator granicy i wybierzemy małą

    wartość odstępu otrzymamy aproksymację

    wartości pierwszej pochodnej w punkcie

    za pomocą ilorazu różnicowego

    f ( x)

    f ' (x i)=d f ( x )

    d x |x= x i= lim( x i+1− x i)→ 0f (x i+1)− f ( x i)

    x i+ 1−x i.

    y= f (x ): y∈ℝ , x∈⟨a , b ⟩⊂ℝ x i∈⟨a , b⟩ .⟨a , b ⟩ x i+1

    x i

    f ' (x i)≃f ( x i+1)− f ( xi)

    x i+1−x i.

    x i+1− x ix i wg [2 ]

  • 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

    - krotnie różniczkowalnej w przedziale w sposób ciągły.

    Szereg Taylora: przyjmując oraz można zapisać

    gdzie to reszta w postaci Lagrange`a.

    Oznaczając oraz otrzymujemy:

    Jest to wielomian względem zmiennej rzedu , gdyż .

    Jeśli (stąd ) szereg Taylora staje się szeregiem Maclaurina:

    y= f (x ): y∈ℝ , x∈⟨a , b ⟩⊂ℝ ,

    f ( xi+1)= f (x i)+ f ' (x i)⋅h+f ' ' (x i)

    2!⋅h2+

    f (3) (x i)3!

    ⋅h3+⋯+f (n )(x i)

    n!⋅hn+Rn ,

    Rn=f (n+1 )(ξ )(n+1)!

    ⋅hn+ 1=O(hn+1)

    ξ ∈ ⟨ x i , x i+1⟩

    x i , x i+ 1∈ ⟨a ,b⟩ h= xi+1−x i

    (n+1)

    Rn=O (hn+1)

    ⟨a ,b ⟩

    f ( xi+1)=a0(x i)+a1( x i)⋅h+a 2(x i)⋅h2+a3(x i)⋅h

    3+⋯+an( x i)⋅hn+Rn

    x i=0 h= xi+1=xf ( x)=a0(0)+a1(0)⋅x+a2(0)⋅x

    2+a3(0)⋅x3+⋯+an (0)⋅x

    n+Rn

    n

    f ( xi)=a0( x i) f(k) (x i)/[(k +1)!]=a k ( x i)

    h (n+1)

    m(m < n)

  • 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ć

    Wartość należy dobrać tak, aby

    równa tangensowi kąta nachylenia prostej

    przechodzącej przez pkty. oraz wynosiła

    Aproksymacja funkcji

    Wykorzystując pierwszych wyrazów szeregu Taylora dokonujemy

    aproksymacji funkcji - tego rzędu.

    Aproks. rz. :

    Aproks. rz. :

    Aproks. rz. :

    (x i , f (x i))

    f ( xi+1)= f (x i)+R0= f ( x i)+ f ' (ξ )⋅h

    ξ

    ξ f ' (ξ )

    (x i+1 , f ( x i+1)) f ' (ξ )=R0h

    f ( x)m (m

  • 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 pierwszych wyrazów.

    Rozwinięcie funkcji w nieskończony szereg potęgowy Maclaurina:

    Rozwinięcie skończone (suma skończona) obraniczone do pierwszych wyrazów

    szeregu ma postać:

    y=sin (x) xϵ ,

    f ∞( x)=sin (x )=∑k= 0

    (−1)k x2 k+1

    (2 k +1)!= x− x

    3

    3!+ x

    5

    5!− x

    7

    7!+…

    f ( x)=sin( x )

    f m( x)=∑k=0

    m

    (−1)k x2 k +1

    (2 k +1)!=x− x

    3

    3!+ x

    5

    5!− x

    7

    7!+…+(−1)m x

    2 m+1

    (2 m+1)!

    m

    m

  • 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 :

    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 prawdziwa jest

    nierówniość:

    Własność powyższą można wykorzystać jako kryterium zakończenia algorytmu

    obliczania wartości funkcji z zadaną dokładnością :

    | f ∞ (x )− f m(x )|=| ∑k =m+1∞

    (−1)k x2 k+ 1

    (2k +1)!|< | x2m+3(2m+3)!|⩽ ε

    | f ∞ (x )− f m(x )|=| ∑k =m+1∞

    (−1)k x2 k+ 1

    (2 k +1)!|⩽ ε

    ε

    m ε

    ∑k =0

    akm

    |∑k=0∞

    ak−∑k=0

    m

    ak|= | ∑k=m+1∞

    ak|

  • Błędy metody (błędy odcięcia) [c.d. 6.]

    Fragment programu zapisany w pseudokodzie służący do obliczania wartości

    funkcji w przedziale z zadaną dokładnością :

    y=sin ( x) xϵ , ε

  • Błędy zaokrągleń

    Błędy zaokrągleń wynikają z faktu wykonywania obliczeń na liczbach o skończonym rozwinięciu pozycyjnym.

    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)

    n+2 n+11

  • Błędy zaokrągleń (c.d. 1.)

    Na n+2 bitach można zapisywać liczby całkowite z przedziału [-2n+1+1; 2n+1-1]

    Liczby stałoprzecinkowe są podzbiorem liczb całkowitych.

    Liczby całkowite o wartości bezwzględnej p > 2n+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 mt, zapisanej na t bitach oraz cechy (exponent) cn zapisanej w formacie stałoprzecinkowym na n+2 bitach (sc oznacza znak cechy — ''1'' potęgi dodatnie, ''0'' potęgi ujemne).

    Wagi:

    Bity:

    Znak Liczby mantysa mt cecha cn

    Reprezentacja zmiennoprzecinkowa liczby x oznaczana rd(x) jest liczbą:

    a samą liczbę x wyraża zależność

    gdzie: s = 1 albo s = -1 - znak liczby,

    - mantysa znormalizowana ( ), - mantysa liczby x, - cecha.

    Błąd względny reprezentacji zmiennoprzecinkowej można oszacować w oparciu

    o zależność: . Liczba określa dokładność komputera, zależy ona tylko od - liczby bitów mantysy.

    2−1 2−2 2−t 2n 22 21 20

    s b−1 b−2 b−t sc bn b2 b1 b0

    rd x=s⋅mt⋅2cn ,

    m t=1+∑k=1

    t

    b−k 2−k 1≤mt

  • Błędy zaokrągleń (c.d. 3.)

    Zakresy zmienności:

    mantysy -

    cechy -

    reprezentacji zmiennoprzecinkowej -

    Liczby w tym , 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 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)

    rd (x )

    1≤mt≤2−2−t

    −2n+1+1≤cn≤2n+1−1

    2⋅2−2n+1

    ≤|rd (x )|

  • 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 dla Porównać uzyskane wyniki z wartościami „dokładnymi“ .

    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 i 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.

    4000=0,4000×104 0,0010=0,1000×10−2

    0,4000×104

    0,0000001×104

    0,4000001×104 =0,4000×10 4

    f ( x)=x (√ x+1−√ x ) x={5,500,5000 }.

    f (5)=5⋅(√6−√5)=0,5000×101⋅(0,2449×101−0,2236×101)=0,5000×101⋅0,0213×101=0,1067×101f d ( x)

    f d (5)=1,067108826417 bł.bezwzgl.= f d (5)− f (5 )=0,000108826417 bł.wzgl.=f d (5)− f (5)

    f d (5)⋅100%=0,01 %

    f (500)=500⋅(√501−√500 )=0,5000×103⋅(0, 2238×102−0,2236×102)=0,1000×102

    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×102−0,7071×102)=0f d (5000)=35,353571469088 bł.bezwzgl.= f d (5000)− f (5000)=35,353571469088 bł.wzgl.=

    bł.bezwzgl.f d (5000)

    ⋅100%=100%

  • 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 , gdyż stała nie posiada skończonego rozwinięcia w systemie binarnym i w obliczeniach będzie wykorzystywane jej przybliżenie z niedomiarem:

    Przykładowy wynik działania funkcji

    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

    algorytym nazywamy niestabilnym.

    s=1

    Błąd wzgledny (wyniki )≫Błąd wzgledny (dane )

    SumDemo ()1 s :=02 k :=03 repeat4 s :=s+0.00015 k :=k+16 until (k

  • Błędy zaokrągleń (c.d. 6)

    Problemy występujące podczas obliczeń zmiennoprzecinkowych (c.d.):

    Przykład algorytmu niestabilnego: obliczanie , dla zadanego rzeczywistego oraz naturalnego

    Jeśli podstawa potęgi obarczona jest błędem to:

    Zaniedbując w liczniku ostatniego wyrażenia składniki zawierające bardzo mały czynnik , otrzymujemy: Można zauważyć, że bł.wzgl.y jest - krotnie większy od błędu względnego podstawy potegowania oraz że rośnie on wraz ze wzrostem wykładnika potęgi .

    n .

    Power (n , a)1 y :=1.02 for k :=1.0 to n3 do y :=y⋅a bł.wzgl.a = |a−(a+ε )|

    |a|= ε

    a

    ε k dla k≥2

    y=ana>0

    εa

    bł.wzgl. y = |an−(a+ε )n||an|

    =|a n−(an+(n1)an−1ε +(n2)a n−2ε 2+…+ε n)|

    |a n|

    bł.wzgl. y =|an−(a n+(n1)an−1ε)|

    |an|= n⋅ε

    an

    na

  • 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 23

    S = 0,

    C = 3+127 = 130 = 10000010

    M = 10111000000000000000000

    (13.75)D = (01000001010111000000000000000000)float MantysaCecha

    Znak

  • Błędy Zaokrągleń (c.d. 8.)

  • 2. Wyznaczanie rzeczywistych i jednokrotnych pierwiastków równań nieliniowych

    Niech będzie funkcją rzeczywistą zmiennej rzeczywistej

    Pierwiastkiem (zerem) równania lub (lub pierwiastkiem (zerem) funkcji

    nazywamy każdą wartość zmiennej niezależnej , dla której

    .

    Zagadnienie przybliżonego obliczania pierwiastków (2.1):

    Dla zadanej dokładności należy znaleźć takie , dla którego zachodzi

    nierówność

    f x =0

    ∣x−x∣

    y= f (x)

    y= f (x) x .f (x)=0

    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 znajduje się taki przedział , że

    oraz dla

    2) Uściśla się przybliżoną wartość pierwiastka, tj. dla zadanego i zadanej

    dokładności znajduje się wartość , że dla .

    x i

    ∣x i−x i∣

    x i∈[ ai ; bi ]

    x i

    x i

    [ai ;bi ]

    [ai ;bi ]∩[a j ;b j ]=0 i , j=1,2, ... , p ; i≠ j .

    i=1, 2,... , p

  • Zagadnienie przybliżonego obliczania pierwiastków (2.3)

    Lokalizacja pierwiastków:

    Przykład: Zlokalizować rzeczywiste pierwiastki funkcji

    Rozwiązanie: po przyrównaniu funkcji do zera,

    otrzymuje się równanie:

    które przekształca się do postaci:

    Otrzymana zależność wyraża równość dwóch funkcji:

    oraz

    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:

    f (x )=log(x+ 2)−2 x2+ 1.

    log x2−2x21=0,

    log x2=2x2−1.

    y=log x2 y=2x2−1.

    x1∈[−0,8 ;−0,7] , x2∈[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 został zlokalizowany jednokrotny,

    rzeczywisty pierwiastek funkcji przy czym

    Prawdziwe jest zatem:

    W kolejnych krokach algorytmu wyznacza się zmienną

    i modyfikuje przedział zgodnie z zależnością:

    - jeśli to

    - w przeciwnym przypadku

    Obliczenia są przerywane, gdy różnica pomiędzy krańcami przedziału zmaleje

    poniżej przyjętej wartości tj.

    [a0 ;b0]

    y= f x ,

    f a0 f b00.

    f x ∈C [a0 ;b0].

    [ak1 ;bk1]k=0,1, 2, ...

    ∣a k−bk∣ .

    f a k f ck 0 ak1=a k , bk1=ck ,ak1=ck , bk1=bk ,

    ck=akbk /2

  • Zagadnienie przybliżonego obliczania pierwiastków (2.5)

    Metoda bisekcji (2.5.2): Pseudokod programu:

    1 k :=02 a0 :=a3 b0 :=b4 while|bk−a k|≥ε5 do begin

    6 c k :=a k+b k

    27 if f (a k ) f (c k )≤08 then begin9 a k +1 :=ak10 b k +1:=c k11 end12 else begin13 a k +1 :=ck14 b k +1:=bk15 end16 k :=k+117 end

    18 ~x :=a k+bk

    2

  • Zagadnienie przybliżonego obliczania pierwiastków (2.5)

    Metoda bisekcji (2.5.3):

    Przykład : Wyznaczyć metodą bisekcji ujemny pierwiastek ( )

    funkcji z dokładnością

    Tabela 2: Etapy wyzna-

    czania rozwiązania

    f x =log x2−2 x21 =10−5 .x1∈[−0,8 ;−0,7]

  • Zagadnienie przybliżonego obliczania pierwiastków (2.6)

    Metoda stycznych (metoda Newtona-Raphsona (N-R)) (2.6.1):

    Zakłada się, że w przedziale został zlokalizowany jednokrotny,

    rzeczywisty pierwiastek funkcji zatem:

    Założenia metody N-R:

    -

    - dla każdego albo albo ( nie zmienia

    znaku na przedziale

    - dla każdego albo albo ( nie zmienia

    znaku na przedziale

    [a0 ;b0]

    y= f x , f a0 f b00.

    f x ∈C [a0 ;b0] ,

    x∈[a0 ;b0] f ' x0 f ' x0 f ' x[a0 ;b0] ,

    x∈[a0 ;b0] f ' ' x0 f ' ' x0 f ' ' x

    [a0 ;b0] .

  • 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 , (tzn. albo

    albo ), który spełnia warunek

    2. Wyznacza się parametr:

    3. while

    4. do begin

    5.

    6.

    7. end

    8.

    Wygenerowany ciąg wartości nosi nazwę procesu Newtona-

    Raphsona (procesu N-R).

    [a0 ;b0]

    m=min {∣ f ' a0∣;∣ f ' b0∣}

    f x0 f ' ' x00

    ∣ f x k ∣m

    xk 1:=x k−f xk f ' xk

    x0x0=a0 x0=b0

    k :=k1

    xk := xkxk , k=0,1,2, ...

  • Zagadnienie przybliżonego obliczania pierwiastków (2.6)

    Metoda stycznych (2.6.3):

    Własności procesu N-R (Twierdzenie)

    Jeśli funkcja spełnia założenia metody N-R to proces N-R ma własności:

    1.

    (proces jest zbieżny do pierwiastka funkcji leżącego w

    przedziale ).

    2. Ciąg jest ściśle monotoniczny, tzn. albo

    albo

    3. -ty wyraz procesu spełnia nierówność

    gdzie

    y= f x

    limk ∞

    xk=x

    x0 x1 xkx

    xk , k=0,1,2, ...

    y= f x

    [a0 ;b0]

    x0 x1 xkx .

    k ∣x−xk∣∣ f x k∣

    mm=min {∣ f ' a0∣;∣ f ' b0∣}.

  • Zagadnienie przybliżonego obliczania pierwiastków (2.6)

    Metoda stycznych (2.6.4):

    Konstrukcja ciągu kolejnych

    przybliżeń:

    tg= f ' x0=f x0

    x0− x1

    f(x0)

    x1= x0−f x0f ' x0

    wg [3 ]

  • Zagadnienie przybliżonego obliczania pierwiastków (2.6)

    Metoda stycznych (2.6.5):

    Przykład : Wyznaczyć metodą stycznych ujemny pierwiastek ( )

    funkcji z dokładnością

    Rozwiązanie: na początku należy wykazać, że w badanym przedziale funkcja

    spełnia założenia metody N-R.

    — Dla funkcja jest ciągła i ma ciągłe pochodne wszystkich rzędów

    — W przedziale spełniona jest nierówność

    Wniosek — w przedziale funkcja spełnia założenia metody N-R.

    Można stosować metodę stycznych.

    x1∈[−0,8 ;−0,7]

    f (x)=log(x+ 2)−2 x2+ 1 =10−5 .

    f ' ' (x)=− 1(x+ 2)2

    −4< 0 dla x>−2 .

    f ' (x )= 1x+ 2

    −4x=−4x2−8x+ 1x+ 2 {> 0 dla −2< x< √52 −1≃0.118< 0 dla x > √5

    2−1≃0.118

    x>−2

    [−0,8 ;−0,7] f ' (x )> 0.

    [−0,8 ;−0,7]

  • 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 . Z tabeli 1 można odczytać wartości funkcji dla obydwu końców przedziału:

    Ponieważ przyjmuje się że . Następnie

    oblicza się :

    Wartości uzyskiwane w kolejnych iteracjach metody zawiera tabela 3.

    Tabela 3.

    x0m

    f (−0,8) f ' ' (−0,8)> 0 x0=−0,8

    m

    f (−0,8)=−0,09768< 0, f (−0,7)=+ 0.28286> 0 .

    m=min{∣ 1−0,8+ 2−4(−0,8)∣;∣ 1−0,7+ 2 −4(−0,7)∣}=min {4,033 ;3,569}≃3,569 .

  • Zagadnienie przybliżonego obliczania pierwiastków (2.7)

    Metoda iteracji prostej (2.7.1):

    Zakłada się, że w przedziale został zlokalizowany jednokrotny,

    rzeczywisty pierwiastek funkcji zatem:

    Metoda iteracji prostej składa sie z dwóch etapów:

    1. Równanie

    przekształca się do równoważnej postaci

    (takie przekształcenie jest zawsze wykonalne i zazwyczaj istnieje kilka jego

    wariantów).

    2. Wybiera się z przedziału przybliżenie . Kolejne iteracje oblicza się

    ze wzoru: dla

    y= f x , f a0 f b00.

    f x =0

    x=φ (x)

    [a0 ;b0]

    [a0 ;b0]

    x0xk+ 1=φ (xk ) k=0,1,

  • Zagadnienie przybliżonego obliczania pierwiastków (2.7)

    Metoda iteracji prostej (2.7.2):

    Twierdzenie: Niech funkcja będzie określona, ciągła i różniczkowalna w

    przedziale domkniętym dla każdego oraz dla każdego

    Jeśli nierówność

    zachodzi dla każdego , to:

    1) proces jest zbieżny niezależnie od wyboru , oraz

    2) zachodzą nierówności

    y=φ (x)

    [a;b] φ (x)ϵ C [a ;b]

    xϵ [a; b].

    ∣φ ' (x)∣⩽q< 1

    xϵ [a; b]

    x0ϵ [a ; b] limk →∞

    xk= x̄∈[a ;b] ,

    ∣̄x− xk∣⩽q

    1−q∣xk− xk −1∣⩽qk

    1−q∣x1−x0∣ 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 , ktora

    spełnia założenia Twierdzenia.

    2. Jako punkt startowy wybiera się dowolny np.

    3.

    4. repeat

    5.

    6.

    7. until

    8.

    x=x

    x0 x0∈[a0; b0] x0=a0b0/2.

    k :=0

    k :=k1

    xk=xk−1

    q1−q

    ∣xk− xk−1∣

    x :=xk

  • Zagadnienie przybliżonego obliczania pierwiastków (2.7)

    Metoda iteracji prostej (2.7.4):

    Przykład: Obliczyć metodą iteracji prostej ujemny pierwiastek funkcji

    z dokladnością

    Rozwiazanie: ujemny pierwiastek funkcji leży w przedziale

    a dodatni w przedziale . Najpierw przekształcamy równanie

    do równoważnej postaci, spełniającej założenia twierdzenia. Przykładowo równanie

    można przekształcić w sposób:

    Dla tego przedstawienia mamy

    f (x)=ln(x+ 2)−2x2+ 1ϵ=10−5 .

    [−0,8 ;−0,7]

    [1,0 ;1,1]

    ln( x+ 2)−2x2+ 1=0

    x=e2x2−1−2=φ 0(x).

    ∣φ ' 0( x)∣=∣4 x e2x2−1∣=4∣ x∣e2x

    2−1 .

  • Zagadnienie przybliżonego obliczania pierwiastków (2.7)

    Metoda iteracji prostej (2.7.5): Rozwiązanie (cd)

    Funkcja ta jest:

    a) w przedziale monotonicznie malejąca, stad dla

    b) w przedziale monotonicznie rosnąca, zatem dla

    W obydwu przedziałach spełniony jest warunek stąd proces

    utworzony przez odwzorowanie

    jest rozbieżny.

    xϵ [−0,8 ;−0,7][−0,8 ;−0,7]

    ∣φ ' 0(x)∣⩾∣φ ' 0(−0,7)∣=2,74456 ;

    ∣φ ' 0(x)∣⩾∣φ ' 0(1,0)∣=10,87313.

    xϵ [1,0 ;1,1][1,0 ;1,1]

    ∣φ ' 0(x)∣> 1 ,

    xk=φ 0(xk−1) , k=1,2 ,....

  • Zagadnienie przybliżonego obliczania pierwiastków (2.7)

    Metoda iteracji prostej (2.7.6): Rozwiązanie (cd)

    Równanie może być przedstawione w równoważnej

    postaci jako para równań:

    Dla obydwu funkcji moduł pochodnej jest równy

    Dla funkcja jest monotonicznie malejąca, stąd

    x=−√ ln (x+ 2)+ 12 =φ 1(x ) , x=√ ln (x+ 2)+ 12 =φ 2(x) .ln( x+ 2)−2x2+ 1=0

    ∣φ ' 1,2(x)∣=∣ 1√2⋅12⋅ 1√ ln(x+ 2)+ 1⋅ 1x+ 2∣=√24 ⋅ 1√ ln(x+ 2)+ 1⋅ 1x+ 2 .x⩾−1 y=∣φ ' 1,2(x )∣

    ∣φ ' 1,2(x)∣⩽∣φ ' 1,2(−1.0)∣=√24=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)

    dla wyznaczenia przybliżonej wartości pierwiastka z przedzialu

    b)

    dla wyznaczenia przybliżonej wartości pierwiastka z przedzialu .

    Za q przyjęto:

    dla pierwiastka z przedzialu

    dla pierwiastka z przedzialu .

    φ 1( x)=−√ ln ( x+ 2)+ 12[−0,8 ;−0,7] ,

    φ 2(x)=√ ln(x+ 2)+ 12[1,0 ;1,1]

    max−0.8⩽x⩽−0.7

    ∣φ 1 ' (x)=0.27096∣

    max1.0⩽ x⩽1.1

    ∣φ 2 ' (x )=0.08135∣

    [−0,8 ;−0,7] ,

    [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 metody iteracji prostej podano w

    tabeli 4.

    Tabela 4.

    k

    Slajd 1Slajd 2Slajd 3Slajd 4Slajd 5Slajd 6Slajd 7Slajd 8Slajd 9Slajd 10Slajd 11Slajd 12Slajd 13Slajd 14Slajd 15Slajd 16Slajd 17Slajd 18Slajd 19Slajd 20Slajd 21Slajd 22Slajd 23Slajd 24Slajd 25Slajd 26Slajd 27Slajd 28Slajd 29Slajd 30Slajd 31Slajd 32Slajd 33Slajd 34Slajd 35Slajd 36Slajd 37Slajd 38Slajd 39Slajd 40Slajd 41Slajd 42Slajd 43Slajd 44