Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne dr Artur Woike Wykład 2 Metody numeryczne i ich własności. Systemy liczbowe i działania zmiennopozycyjne. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Metoda numeryczna Od tej pory będziemy zakładać, że zadanie F (x, d) = 0 jest dobrze postawione. Definicja 2.1. (metoda numeryczna) Metodą numeryczną przybliżonego rozwiązywania F (x, d) = 0 nazywamy na ogół ciąg zadań przybliżonych zadania Fn (xn , dn ) = 0, n ­ 1, zależny od pewnego parametru n (definiowanego oddzielnie dla każdej metody). dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Zgodność metody numerycznej Definicja 2.2. (zgodność/silna zgodność metody numerycznej) Jeżeli dane d z zadania F (x, d) = 0 są dopuszczalne dla zadań przybliżonych Fn , to mówimy, że metoda numeryczna Fn (xn , dn ) = 0 jest zgodna jeżeli Fn (x, d) = Fn (x, d) − F (x, d) → 0 gdy n → ∞, gdzie x jest rozwiązaniem zadania odpowiadającym danym d. Metoda numeryczna jest nazywana silnie zgodną jeżeli Fn (x, d) = 0 dla dowolnej wartości parametru n. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Alternatywna postać metody numerycznej Uwaga. Czasami metoda numeryczna może przybrać postać Fn (xn , xn−1 , . . . , xn−q , dn ) = 0, n ­ q, gdzie x0 , x1 , . . . , xq−1 są dane. Wtedy własność silnej zgodności jest definiowana jako Fn (x, x, . . . , x, d) = 0 dla wszystkich n ­ q. Przykład 2.1. (metoda Newton’a) Metoda Newton’a przybliżonego wyznaczania pierwiastka α dla funkcji f : R → R jest silnie zgodna. xn = xn−1 − f (xn−1 ) , gdzie n ­ 1 i x0 jest dane. f 0 (xn−1 ) dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Stabilność metody numerycznej Definicja 2.3. (stabilna metoda numeryczna) Metodę numeryczną Fn (xn , dn ) = 0 nazywamy dobrze postawioną lub stabilną jeżeli dla dowolnego ustalonego n istnieje jednoznaczne rozwiązanie xn odpowiadające danym dn , takie że obliczenie xn jako funkcji dn jest jednoznaczne, a ponadto xn zależy w sposób ciągły od danych dn . dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Zbieżność metody numerycznej Definicja 2.4. (zbieżność metody numerycznej) Metodę numeryczną Fn (xn , dn ) = 0 nazywamy zbieżną wtedy i tylko wtedy, gdy zachodzi warunek ∀ε>0 ∃n0 (ε) ∃δ(n0 ,ε) ∀n>n0 (ε) kδdn k < δ(n0 , ε) ⇒ kx(d) − xn (d + δdn )k ¬ ε, gdzie d to dopuszczalne dane dla zadania F (x, d) = 0, x(d) jest odpowiadającym im rozwiązaniem, a xn (d + δdn ) jest rozwiązaniem metody numerycznej dla danych d + δdn . dr Artur Woike Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Metody numeryczne, systemy i działania zmiennopozycyjne Błąd rozwiązania Definicja 2.5. (błąd bezwzględny/względny/według składowych) Miara zbieżności rozwiązania przybliżonego xn do rozwiązania dokładnego x jest dana przez błąd bezwzględny E (xn ) lub błąd względny Erel (xn ) zdefiniowany odpowiednio poprzez: E (xn ) = kx − xn k, Erel (xn ) = kx − xn k gdy x 6= 0. kxk Jeżeli x i xn sa wielkościami wektorowymi lub macierzowymi, to możc (x ) poprzez na również zdefiniować błąd według składowych Erel n c Erel (xn ) = max i,j dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne |(x − xn )ij | . |xij | Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Twierdzenie o równoważności Uwaga. 1) Jeżeli zadanie jest dobrze postawione, to warunkiem koniecznym na zbieżność metody numerycznej jest jej stabilność. 2) Jedynie stabilne metody numeryczne mogą być zbieżne. 3) Jeżeli metoda numeryczna jest zgodna z zadaniem, to jej stabilność staje się warunkiem wystarczającym na zbieżność metody. Twierdzenie 2.1. (o równoważności) Dla zgodnej metody numerycznej stabilność jest równoważna zbieżności. dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Dokładność obliczeniowa maszyny cyfrowej Uwaga. Dowolna maszyna cyfrowa może zapamiętywać jedynie liczby rzeczywiste z pewnego dyskretnego ustalonego podzbioru N ⊂ R. Niech x ∈ R będzie dowolne. Liczba x przed zapamiętaniem musi być w pewien sposób zaokrąglona do liczby x 0 ∈ N, takiej że x 0 = x(1 + ε0 ), gdzie ε0 oznacza błąd względny reprezentacji liczby x przez liczbę x 0 . Definicja 2.6. (parametr ε maszyny) Stała ε maszyny jest to najmniejsza liczba nieujemna ε, taka że 1 + ε 6= 1 (im mniejsza wartość ε tym większa względna precyzja obliczeń). dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Algorytm obliczeniowy Definicja 2.7. (numeryczny algorytm obliczeniowy) Niech będzie dane zadanie F (x, d) = 0 i odpowiadająca mu metoda numeryczna Fn (xn , dn ) = 0. Numeryczny algorytm obliczeniowy dla tej metody jest to ciąg działań, które trzeba wykonać na danych dn i numerycznych rozwiązaniach x¯k (k < n) poprzednich zadań przybliżonych, aby uzyskać numeryczne rozwiązanie x¯n dla n-tego zadania przybliżonego. Algorytm ten nazywamy poprawnie sformułowanym jeżeli określona w nim liczba niezbędnych działań jest skończona. Uwaga. Liczba działań w algorytmie może zależeć od wektora danych dn . dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Numeryczna stabilność algorytmu obliczeniowego Definicja 2.8. (numeryczna stabilność algorytmu) Algorytm obliczeniowy jest numerycznie stabilny, jeżeli dla dowolnego n > 1 rozwiązanie zadania można wyznaczyć z dowolną dokładnością zwiększając odpowiednio dokładność obliczeń (czyli zmniejszając parametr ε). dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Żłożoność algorytmu Definicja 2.9. (złożoność algorytmu, złożoność zadania) Złożoność algorytmu jest miarą jego czasu wykonania. Ponieważ różne algorytmy o różnych złożonościach mogą być używane do rozwiązania tego samego zadania, więc wprowadzamy pojęcie złożonośći zadania. Oznacza ono minimalną złożoność algorytmu spośród wszystkich algorytmów dostepnych dla tego zadania. Złożoność zadania jest zazwyczaj mierzona przy pomocy parametru bezpośrednio związanego z tym zadaniem. dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Źródła błędów Uwaga. Podstawowe źródła błędów w obliczeniach numerycznych: 1) Błędy wynikające z przyjętego modelu. Mogą być kontrolowane przez właściwy wybór modelu matematycznego dla rozpatrywanego zadania. 2) Błędy w danych. Mogą być zmniejszone poprzez zwiększenie dokładności pomiaru danych. 3) Błędy obcięć. Powstają na skutek zastępowania w metodzie numerycznej operacji granicznych operacjami złożonymi ze skończonej liczby kroków. 4) Błędy arytmetyki zmiennopozycyjnej. 5) Błędy zaokrągleń. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Systemy liczbowe Uwaga. Pomimo tego, że wszystkie bazy są równoważne, to w praktyce obliczeniowej używa się najczęściej następujących: baza 2 (lub inaczej binarna), najbardziej naturalna baza 10 (lub inaczej decymalna), baza 16 (lub inaczej heksadecymalna). Prawie wszystkie współczesne komputery używają bazy β = 2. dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Binarny system liczbowy zmiennopozycyjny Niech będzie dana liczba x ∈ R. Mówimy, że x jest binarną liczbą zmiennopozycyjną jeżeli x = S · M · 2E , gdzie: S ∈ {−1, 1} (znak liczby x); M ∈ h1, 2) (znormalizowana mantysa liczby x); E ∈ Z (wykładnik liczby x). Przykład 2.2. (binarna liczba zmiennopozycyjna) x = 1 · 1, 101 · 22 jest binarną liczbą zmiennopozycyjną. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Binarny system liczbowy zmiennopozycyjny Załóżmy, że nasza reprezentacja liczb wykorzystuje m + n + 2 cyfr, w tym: 1 cyfra na znak liczby x; m cyfr na wartość mantysy; 1 cyfra na znak wykładnika; n cyfr na wartość bezwzględną wykładnika. Wtedy: Emin = −2n + 1; Emax = 2n − 1; Mmin = 1; Mmax = 2 − 2−(m−1) ; xmin = Mmin · 2Emin ; xmax = Mmax · 2Emax . dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Binarny system liczbowy zmiennopozycyjny Przykład 2.3. (binarny system liczbowy zmiennopozycyjny) Niech m = 4, n = 2. Wtedy: Emin = −3; Emax = 3; Mmin = 1; Mmax = 1, 111; xmin = 1 · 1 · 2−3 ; xmax = 1 · 1, 111 · 23 . dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Binarny system liczbowy zmiennopozycyjny Zakres liczb możliwych do zapamiętania w naszym binarnym systemie liczbowym zmiennopozycyjnym to h−xmax , −xmin i ∪ hxmin , xmax i . Do tego zakresu dołącza się również zbiór {−0, +0} jako wartości specjalne niemożliwe do uzyskania bezpośrednio w naszym systemie. Liczby x, takie że |x| < xmin , są traktowane jako tzw. niedomiar. Z kolei liczby x, takie że |x| > xmax , są traktowane jako tzw. nadmiar wykładniczy. dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Normalizacja mantysy Jeśli x = S · M · 2E i M ∈ / h1, 2), to aby zapamiętać x w naszym systemie zmiennopozycyjnym należy znormalizować mantysę.W tym celu należy przesunąć przecinek w M, jednocześnie dostosowując wykładnik W , tak aby wartość liczby nie uległa zmianie. Uwaga. 1 Po normalizacji może wystąpić nadmiar wykładniczy. 2 Jeśli mantysa po normalizacji jest zbyt długa, to należy dostosować jej długość, np. poprzez zastosowanie operacji zaokrąglania lub odcinania. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Arytmetyka zmiennopozycyjna Własności arytmetyki zmiennopozycyjnej: nie jest łączna; nie jest rozdzielna. Dodatkowo podczas wykonywania operacji zmiennopozycyjnych mogą wystąpić: zaokrąglenia lub odcięcia; nieprawidłowe operacje; nadmiary wykładnicze; niedomiary. dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Arytmetyka zmiennopozycyjna Jak dodać/odjąć zmiennopozycyjnie liczby x1 = S1 · M1 · 2E1 i x2 = S2 · M2 · 2E2 ? Możemy założyć, że |x1 | > |x2 |. Jeśli E1 − E2 6= 0, to należy zrównać wykładnik E1 z E2 (tzw. operacja wyrównywania wykładników). Otrzymujemy wtedy nową postać zmiennopozycyjną liczby x1 : x1 = S1 · M10 · 2E2 . Uwaga. Po zrównaniu wykładników mantysa M10 może przestać być znormalizowana. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Arytmetyka zmiennopozycyjna Teraz przyjmujemy: S = S1 , M = M1 ± M2 , E = E2 . Otrzymujemy liczbę S · M · 2E . 0 Po normalizacji otrzymujemy liczbę zmiennopozycyjną S · M 0 · 2E . Wtedy: 0 x1 ± x2 = S · M 0 · 2E . dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Arytmetyka zmiennopozycyjna Jak pomnożyć zmiennopozycyjnie liczbę x1 = S1 · M1 · 2E1 przez liczbę x2 = S2 · M2 · 2E2 ? Przyjmujemy: S = S1 · S2 , M = M1 · M2 , E = E1 + E2 . Otrzymujemy liczbę S · M · 2E . Po normalizacji otrzymujemy liczbę zmiennoprzecinkową 0 S · M 0 · 2E . Wtedy: 0 x1 · x2 = S · M 0 · 2E . dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Arytmetyka zmiennopozycyjna Jak podzielić zmiennopozycyjnie liczbę x1 = S1 · M1 · 2E1 przez liczbę x2 = S2 · M2 · 2E2 ? Przyjmujemy: S1 , S2 M1 M= , M2 E = E1 − E2 . S= Otrzymujemy liczbę S · M · 2E . Po normalizacji otrzymujemy liczbę zmiennoprzecinkową 0 S · M 0 · 2E . Wtedy: 0 x1 · x2 = S · M 0 · 2E . dr Artur Woike Zaawansowane metody numeryczne Metody numeryczne, systemy i działania zmiennopozycyjne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Lemat Wilkinsona Lemat 2.1. (Wilkinsona) Błędy zaokrągleń powstające podczas wykonywania działań zmiennopozycyjnych są równoważne zastępczemu zaburzeniu liczb, na których wykonujemy działania. W przypadku pojedyńczych działań arytmetycznych otrzymujemy: fl(x1 ± x2 ) = x1 (1 + ε1 ) ± x2 (1 + ε2 ), fl(x1 · x2 ) = x1 (1 + ε3 ) · x2 = x1 · x2 (1 + ε3 ), x1 x1 (1 + ε4 ) x1 fl( ) = = , x2 x2 x2 (1 + ε5 ) gdzie liczby εi , i = 1, . . . , 5, są niewiększe co do modułu od parametru ε charakteryzującego dokładność maszyny. dr Artur Woike Metody numeryczne, systemy i działania zmiennopozycyjne Zaawansowane metody numeryczne Stabilność metody numerycznej Maszynowa reprezentacja liczb i działania zmiennopozycyjne Działania zmiennopozycyjne Przykład 2.4. (dodawanie liczb zmiennopozycyjnych) Rozważmy system zmiennopozycyjny z bazą 2, jednym bitem znaku, 4 bitami dla mantysy i 3 bitami dla wykładnika. Wykorzystując operacje odcięcia i zaokrąglenia obliczyć sumę zmiennopozycyjną liczb x1 = 0, 48 i x2 = 0, 24. dr Artur Woike Zaawansowane metody numeryczne