Met.Numer. wykład 1 1
METODY NUMERYCZNE
dr hab.inŜ. Katarzyna Zakrzewska, prof.AGH, Katedra Elektroniki, AGH
e-mail: zak@agh.edu.pl http://home.agh.edu.pl/~zak
Wykład 1.
Wprowadzenie do metod numerycznych
Metody numeryczne są działem matematyki
stosowanej zajmującym się opracowywaniem metod przybliŜonego rozwiązywania problemów
matematycznych, których albo nie moŜna rozwiązać metodami dokładnymi albo metody dokładne
posiadają tak duŜą złoŜoność obliczeniową, Ŝe są praktycznie nieuŜyteczne
Metody numeryczne zajmują się konstruowaniem algorytmów, których obiektami, tj. danymi,
wynikami pośrednimi i wynikami ostatecznymi są liczby
Wprowadzenie do metod numerycznych
Met.Numer. wykład 1 3
Cechy charakterystyczne metod numeryczne:
• obliczenia wykonywane są na liczbach przybliŜonych
• rozwiązania zagadnień teŜ są wyraŜone liczbami przybliŜonymi
• wielkość błędu w procesie obliczeń numerycznych jest zawsze kontrolowana
Wprowadzenie do metod numerycznych
Procedury matematyczne
• Równania nieliniowe
• RóŜniczkowanie
• Układ równań liniowych
• Dopasowanie krzywych – Interpolacja
– Regresja
• Całkowanie
• Zwyczajne równania róŜniczkowe
• Inne zaawansowane procedury:
– Cząstkowe równania róŜniczkowe – Optymalizacja
– Szybka transformata Fouriera
Met.Numer. wykład 1 5
Literatura:
• Z. Fortuna, B. Macukow, J. Wąsowski, Metody numeryczne, Podręczniki Akademickie EIT, WNT Warszawa,1982, 2005
• L.O. Chua, P-M. Lin, Komputerowa analiza układów elektronicznych-algorytmy i metody obliczeniowe, WNT, Warszawa, 1981
• G.Dahlquist, A.Björck, Metody matematyczne, PWn Warszawa, 1983
• Autar Kaw, Luke Snyder
http://numericalmethods.eng.usf.edu
Literatura dodatkowa:
• M.Wciślik, Wprowadzenie do systemu Matlab, Wydawnictwo Politechniki Świętokrzyskiej, Kielce, 2000
• S. Osowski, A. Cichocki, K.Siwek, Matlab w zastosowaniu do obliczeń obwodowych i
przetwarzania sygnałów, Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 2006
• W.H. Press, et al., Numerical recipes, Cambridge
University Press, 1986
Met.Numer. wykład 1 7
Plan
• Arytmetyka zmiennoprzecinkowa
• Analiza błędów w obliczeniach numerycznych
• Zadania i algorytmy numeryczne
• Stabilność i uwarunkowanie algorytmu
Co trzeba wiedzieć układając własne algorytmy obliczeniowe?
• wielkość pamięci operacyjnej
• szybkość wykonywania operacji arytmetycznych i logicznych
• zakres liczb dopuszczalnych podczas obliczeń
• dokładność wykonywania podstawowych działań arytmetycznych na liczbach rzeczywistych
Przypomnienie
Met.Numer. wykład 1 9
Sposób przedstawiania liczb w pamięci komputera
Liczby są zapamiętywane jako
• stałoprzecinkowe (liczby stałopozycyjne, ang. fixed-point numbers)
• zmiennoprzecinkowe (liczby zmiennopozycyjne, ang. floating- point numbers, fl)
Komputer pracuje wewnętrznie w układzie dwójkowym, a komunikuje się ze światem zewnętrznym w układzie dziesiętnym, stąd procedury konwersji.
Jest to źródłem błędów.
Reprezentacja liczby dziesiętnej
2 1
0 1
2
5 10 7 10 7 10 6 10
10 2 76 .
257 = × + × + × + ×
−+ ×
−W układzie dwójkowym stosujemy dwie cyfry: 0 i 1, nazywane bitami
Arytmetyka komputerowa
System dwójkowy (binarny)
1875 . 11
) 2 1 2 1 2 0 2 0 (
) 2 1 2 1 2 0 2 1 ) (
0011 . 1011 (
10 4 3
2 1
0 1
2 3
2
=
× +
× +
× +
× +
× +
× +
× +
= ×
− − − −Met.Numer. wykład 1 11
Struktura liczby zmiennoprzecinkowej
N
wM x = ×
M-mantysa liczby liczby x W-wykładnik części potęgowej, N=2, 10
W zapisie zmiennoprzecinkowym liczba rzeczywista jest przedstawiana za pomocą dwóch grup bitów:
I – tworzy mantysę M, część ułamkowa ½<M<1 II - tworzy W , liczba całkowita, zakres W decyduje o zakresie liczb dopuszczalnych w komputerze
Arytmetyka zmiennoprzecinkowa- system dziesiętny
Postać liczby
m 10 ×
eσ ×
10
25678 .
2 ×
−
2
5678 . 2
1
=
=
−
= e m
Przykład
σ
znak liczby (-1 lub +1)
mantysa (1)10≤m<(10)10 wykładnik będący liczbą całkowitą
Met.Numer. wykład 1 13
Arytmetyka zmiennoprzecinkowa- system dwójkowy
Postać liczby
m × 2
e× σ
( 1 . 1011011 )
2× 2
(101)2101 1011011 0
=
=
= σ e m
Przykład
znak liczby (0 dla dodatniej lub 1 dla ujemnej liczby)
mantysa (1)2≤m<(2)2
wykładnik będący liczbą całkowitą
1 nie jest zapisywane
Struktura liczby zmiennoprzecinkowej
N
wM x = ×
Przykład:
JeŜeli w zapisie dwójkowym M określa 5 bitów a W trzy bity, przy czym pierwszy bit określa znak („-” to jeden), to:
10 ) 0 ( 1101 ) 1 (
= x
M W
oznacza liczbę x = − 0 , 1101 × 2
+10czyli: 2
(12 01)16
1 8 0 4 1 2
1
+ ⋅ + ⋅×
+ + +
−
= x
w zapisie dziesiętnym -3,25
Met.Numer. wykład 1 15
Konsekwencje zapisu
N
wM x = ×
W zapisie zmiennopozycyjnym moŜna utworzyć tylko niektóre liczby w zakresie zaleŜnym od ilości bitów mantysy M i
wykładnika w (dla N=2)
Są pewne liczby, których nie moŜna w tym zapisie przedstawić dokładnie. Przyjęcie najbliŜszej wartości jako przybliŜenia tej liczby jest źródłem błędów wejściowych.
Zaokrąglanie oznacza, Ŝe kaŜda wielkość mieszcząca się w przedziale o długości ∆x będzie reprezentowana jako najbliŜsza dozwolona liczba.
Przedział między liczbami, które moŜemy przedstawić dokładnie rośnie gdy liczby rosną.
) 0011 ( 0011 , 0
= x
NajbliŜsza jej liczba dla ilości cyfr mantysy t=4 i wykładnika 3 to
Liczba x=0.2 ( w zapisie dziesiętnym) ma w zapisie dwójkowym nieskończone rozwinięcie równe:
001100 ,
0 ' = x
czyli x’=0,1875 Przykład:
Błąd bezwzględny przybliŜenia
x − x ' = 0 , 0125
Dla liczby a=6,25 (1.1001x2(10)2) najbliŜszą jest a’=6,5 (1.1010x2(10)2) Błąd bezwzględny wynosi 0,25.
Błąd bezwzględny silnie zaleŜy od wielkości rozpatrywanej liczby
Met.Numer. wykład 1 17
• Przykład 1. W jaki sposób moŜna zapisać liczbę 256.78 na 5-ciu miejscach?
Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?
.
Jak moŜna zapisać najmniejszą liczbę w tym formacie?
0 0 .
0 0 0
Jak moŜna zapisać największą liczbę w tym formacie?
9 9 .
9 9 9
2 5 6 7 8
• Przykład 2. W jaki sposób moŜna zapisać liczbę 256.786 na 5-ciu miejscach?
Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?
9 7 .
6 5 2
zaokrąglenie (rounded off)
Wniosek: Błąd jest mniejszy niŜ 0.01
8 7 .
6 5 2
urwanie (chopped)
Met.Numer. wykład 1 19
Jaki błąd popełniamy?
Błąd bezwzględny
x − x o
Błąd względny
o o
x x x −
wielkość dokładna lub rzeczywista xo
Obliczenia:
% 001558 .
0
% 786 100
. 256
786 . 256 79 .
% 256
100 − × =
=
− ×
= ε
o o
t
x
x x
Jaki błąd popełniamy?
Względne błędy wielkości małych są duŜe.
Porównajmy:
% 001558 .
0
% 786 100
. 256
786 . 256 79 .
% 256
100 − × =
=
− ×
= ε
o o
t
x
x x
% 11280 . 0
% 546 100
. 3
546 . 3 55 .
% 3
100 − × =
=
− ×
= ε
o o
t
x
x x
Błędy bezwzględne są jednakowe:
004 . 0 55 . 3 546 . 3 79 . 256 786
.
256 − = − =
=
− x
ox
Met.Numer. wykład 1 21
Jak utrzymać błędy względne na podobnym poziomie?
MoŜna przedstawić liczbę w postaci:
mantysa
wykłznak × × 10
lub
znak × mantysa × 2
wykłczyli
2 3 2
10 2.5678 jako
zapisujemy 256.78
10 3.678 jako
zapisujemy 0.003678
10 2.5678 jako
zapisujemy 256.78
×
−
−
× +
× +
−
Co zyskujemy stosując zapis zmiennoprzecinkowy?
mantysa wykładnik
Zwiększa się zakres liczb, które moŜemy zapisać JeŜeli uŜyjemy tylko 5 miejsc do zapisu liczby (dodatniej o dodatnim wykładniku) to najmniejsza liczba zapisana to 1 a największa 9.999109.
Zakres moŜliwych do zapisania liczb zwiększył się od 999.99 do 9.999109.
9 9 9 9 9
Met.Numer. wykład 1 23
Co tracimy stosując zapis zmiennoprzecinkowy?
mantysa wykładnik Dokładność (precyzję).
Dlaczego?
Wystąpi błąd zaokrąglenia.
Liczba 256.78 będzie przedstawiona jako 2.5678102 i na pięciu miejscach:
2 8
6 5
2
Przykład do samodzielnego rozwiązania
mantysa wykładnik
2. Proszę oszacować błąd bezwzględny i względny zaokrąglenia 1. Proszę przedstawić liczbę 576329.78 na pięciu miejscach w podobny sposób jak w poprzednim przykładzie:
3. Porównać z przykładem poprzednim (256.78) i wyciągnąć wnioski
Met.Numer. wykład 1 25
Rozwiązanie przykładu do samodzielnego rozwiązania
mantysa wykładnik
2. Błąd bezwzględny przybliŜenia wynosi 29.78 a względny 0.0051672%
1. Liczba 576329.78 zapisana na pięciu miejscach:
3. Dla liczby 256.78 te błędy wynoszą odpowiednio: 0.02 (mniejszy) i 0.0077888% (porównywalny)
5 7 6 3 5
mantysa wykładnik
Przykład do samodzielnego rozwiązania
Mamy słowo 9-bitowe
pierwszy bit odpowiada znakowi liczby,
drugi bit – znakowi wykładnika,
następne cztery bity kodują mantysę,
ostatnie trzy bity zapisują wykładnik
znak liczby
znak wykładnika
mantysa wykładnik
0 0
1 0 1 1 1 0 1
Znajdź liczbę (w postaci dziesiętnej), która jest przedstawiona w podany sposób.
Met.Numer. wykład 1 27
Odpowiedź
( ) ( ) ( )
( ) ( )
2 25 2 2
10
101 1011
. 1
2 1011011 .
1 11
. 110110 75
. 54
×
≅
×
=
=
0 0 1 0 1 1 1 0 1
nie jest zapisywane
Co to jest ε maszyny cyfrowej?
Dla kaŜdej maszyny cyfrowej definiuje się parametr epsilon ε określający dokładność obliczeń:
N
tε =
−gdzie: N=2 (w zapisie dwójkowym), N=10 (w zapisie dziesiętnym), t jest liczbą bitów w mantysie liczby
ε jest tym mniejsze im więcej bitów przeznaczono na reprezentowanie mantysy M
Epsilon ε moŜna traktować jako parametr charakteryzujący dokładność obliczeniową maszyny (im mniejsze ε tym większa dokładność).
Podwójna precyzja (Fortran)
ε DP = ε 2
Met.Numer. wykład 1 29
Epsilon ε jest to najmniejsza liczba, która po dodaniu do 1.000 produkuje liczbę, którą moŜna przedstawić jako róŜną od 1.000.
Co to jest ε maszyny cyfrowej?
0 0 0 0 0 0 0 0 0 0
= ( ) 1
10Przykład: słowo dziesięciobitowe
znak liczby
znak wykładnika
N
wM x = ×
mantysa wykładnik
0 0 0 0 0 0 0 0 0 1
następna
liczba
= ( 1 . 0001 ) (
2= 1 . 0625 )
102
41 0625 .
1 − =
−=
∈
machPojedyncza precyzja w formacie IEEE-754
(Institute of Electrical and Electronics Engineers)
32 bity dla pojedynczej precyzji
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
znak (s) wykładnik (e’) mantysa (m)
( ) 1
22
' 127)
1
( − × . ×
−=
sm
eiczba
L
Met.Numer. wykład 1 31
Przykład
( ) ( ) 1 1 .
22
' 127Value = −
s× m ×
e−( ) ( − 1
1× 1 . 10100000 )
2× 2
(10100010)2−127=
( ) ( − 1 × 1 . 625 ) × 2
162−127= = ( ) ( − 1 × 1 . 625 ) × 2
35= − 5 . 5834 × 10
101 1 0 1 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Sign (s) Biased Exponent (e’)
Mantissa (m)
Wykładnik dla 32-bitowego standardu IEEE-754
255 0 ≤ e ′ ≤ 128
127 ≤ ≤
− e
8 bitów wykładnika oznacza
Ustalone przesunięcie wykładnika wynosi 127 a zatem
W istocie 1 ≤ e ′ ≤ 254
Liczby i są zarezerwowane dla przypadków specjalnych
= 0
′
e e ′ = 255
127 126 ≤ ≤
− e
Zakres wykładnika
Met.Numer. wykład 1 33
Reprezentacja liczb specjalnych
= 0
′
e same zera
= 255
′
e same jedynki
NaN róŜne od
same zera jedynki 0 lub 1
same zera same
jedynki 1
same zera same
jedynki 0
-0 same zera
same zera 1
0 same zera
same zera 0
Reprezentuje m
s
e ′
∞
∞
−
Format IEEE-754
Największa liczba
Epsilon maszyny cyfrowej
( 1 . 1 ... 1 )
2× 2
127= 3 . 40 × 10
38( 1 . 00 ... 0 )
2× 2
−126= 2 . 18 × 10
−387 23 1 . 19 10 2
−= ×
−=
ε mach
Najmniejsza liczbaMet.Numer. wykład 1 35
Analiza błędów
JeŜeli nie znamy wielkości dokładnej x
omoŜemy obliczać błąd bezwzględny przybliŜenia (ang.
approximate error) jako róŜnicę wartości uzyskanych w kolejnych przybliŜeniach :
1
− n −
n x
x
Błąd względny ε
a:
n n n
a x
x x − − 1
= ε
Dla
f ( x ) = 7 e
0.5x wx = 2
znajdźa)
f ′ ( 2 )
dlah = 0 . 3
b)
h = 0 . 15
c) błąd przybliŜenia
h f x h
x x f
f (' ) ≈ ( + ) − ( ) 3
.
= 0 h
265 , 3 10
, 0 7 3 7
,
0,3) (2) 0
2 ) ( 2
(' ≈ f + − f = e0,5(2,3)− e0,5(2) = f
Przykład
) 2 (
f ′
dlaRozwiązanie
a)
Met.Numer. wykład 1 37
b)
Przykład (cd) 15
.
= 0 h
880 , 15 9
, 0 7 15 7
,
0 , 15 ) ( 2 ) 0
2 ) ( 2
('
≈f
+ −f
=e
0,5(2,15)−e
0,5(2) =f
c)
n n n
a
x
x x −
−1= ε
0389 , 8800 0
, 9
265 , 10 880 ,
9 − ≈ −
= ε
aBłąd procentowy
3,89%
s a
≤ ε ε |
|
m a
| ≤ 0 . 5 × 10
2−ε
|
Błąd względny jako kryterium zakończenia procedury iteracyjnej
JeŜeli błąd względny jest mniejszy lub równy od pewnej określonej wcześniej liczby to dalsze iteracje nie są konieczne
JeŜeli wymagamy przynajmniej m cyfr znaczących w wyniku to
Met.Numer. wykład 1 39
0.3 10.265 N/A 0
0.15 9.8800 0.03894 3
0.10 9.7559 0.01271 3
0.01 9.5378 0.02286 3
0.001 9.5164 0.00225 4
h
f′(2) εam
m a
| ≤ 0 . 5 × 10
2−ε
|
0,05
0,005
Podsumowanie przykładu
Wartość dokładna 9.514
)' 1 ( ' = x + ε x
czyli ε’=-0,0625 dla x=0,2 i ε’=0,04 dla a=6,25 Błąd względny ε’ jest określony jako:
Przykład:
MoŜna pokazać, Ŝe
dla dowolnej liczby x mieszczącej się w zakresie liczb objętych zapisem
ε ε' ≤
Tak jest równieŜ w rozwaŜanym przykładzie:
0625
,
0
2
ε =
−4=
Met.Numer. wykład 1 41
Źródła błędów w obliczeniach numerycznych
1. Błędy wejściowe (błędy danych wejściowych) 2. Błędy obcięcia (ang. truncation error)
3. Błędy zaokrągleń (ang. round off error)
Błędy wejściowe występują wówczas gdy dane wejściowe są wprowadzone do pamięci komputera odbiegają od dokładnych wartości tych danych.
Błędy obcięcia są to błędy wynikające z procedur numerycznych przy zmniejszaniu liczby działań.
Błędy zaokrągleń są to błędy, których na ogół nie da się uniknąć. Powstają w trakcie obliczeń i moŜna je zmniejszać ustalając umiejętnie sposób i kolejność wykonywania zadań.
Źródła błędów wejściowych:
• dane wejściowe są wynikiem pomiarów wielkości fizycznych
• skończona długość słów binarnych i konieczność wstępnego zaokrąglania
• wstępne zaokrąglanie liczb niewymiernych
Błędy wejściowe
PrzybliŜanie liczb, których nie moŜna wyrazić dokładnie dokonuje się poprzez:
• urywanie (ang. chopping)
• zaokrąglanie (ang. rounding)
Met.Numer. wykład 1 43
Przykład:
9 1415926535 ,3
≈ π
1416 ,3
≈ π
zaokrąglanie urywanie
1415 ,3
≈ π
Zaokrąglanie prowadzi do mniejszego błędu niŜ obcinanie.
Spowodowany jest uŜyciem przybliŜonej formuły zamiast pełnej operacji matematycznej:
• przy obliczaniu sum nieskończonych szeregów
• przy obliczaniu wielkości będących granicami (całka, pochodna)
Błąd obcięcia
∑
∆ =∫
= ∆ →
2 1 2
1
x
x x
0 x x
Fdx x
F
W
lim
praca
Met.Numer. wykład 1 45
JeŜeli funkcja jest ciągła i wszystkie pochodne f’, f’’,…f
nistnieją w przedziale [x, x+h] to wartość funkcji w punkcie x+h moŜna obliczyć jako:
Szereg Taylora
( ) ( ) ( ) ( ) ( )
+ L + ′′′
+ ′′
+ ′
=
+ h f x f x h f 2 ! x h
2f 3 ! x h
3x
f
( + ) ( ) = + ′ ( ) + ′′ ( ) + ′′′ ( ) 0 3 ! + L +
! 0 2 0
0
0 h f f h f h
2f h
3f
Szereg Maclaurina jest to rozwinięcie wokół x=0
Typowe rozwinięcia w szereg wokół zera
+ L
− +
−
= 1 2 ! 4 ! 6 ! )
cos( x
2x
4x
6x
+ L
− +
−
= 3 ! 5 ! 7 ! )
sin( x
3x
5x
7x
x
+ L +
+ +
= 1 2 ! !3
3
2
x
x x e
xPrzykłady
Met.Numer. wykład 1 47
Błąd obcięcia w szeregu Taylora
( ) ( ) ( ) ( )
( )( ) R ( ) x
n x h h f
x f h x f x f h x
f
+ = + ′ +'' 2
2!
+L
+ n n!
+ nreszta
( ) f
( )( ) c n h
x
R
n n 1 n 1)!
1
(
++
= +
h x c x < < +
Przykład
Rozwinięcie w szereg ex wokół x=0+ L +
+ + + +
= 1 x 2 !
2x 3 !
3x 4 !
4x 5 !
5x
e
xIm większa ilość wyrazów jest uwzględniana w
rozwinięciu, tym błąd obcięcia jest mniejszy i moŜemy znaleźć tym dokładniejszą wartość wyraŜenia
Pytanie: Ile naleŜy uwzględnić wyrazów aby otrzymać przybliŜoną wartość liczby e z błędem mniejszym niŜ 10-6?
120 1 24
1 6 1 2
2
+1
+ + +≈
+ L + + + + +
= 5 !
1
! 4 1
! 3 1
! 2 1 1 1
5 4 3 1 2
e
Met.Numer. wykład 1 49
e
xx f h
x = 0 , = ,1 ( ) =
( ) ( ) f
( )( ) c R
nn
n 11 !
n 10 1
+ += +
( ( ) )
cn
n 1 ! e 1
1= +
+ale x < c < x + h
1 0 0 < c < +
1 0
<c
<( ) 0 ( 1 )!
)!
1 ( 1
< +
+ < n
R e
n
nRozwiązanie
( ) f
( )( ) c n h
x
R
n n 1 n 1)!
1
(
++
= +
10
6)!
1 (
<
−+ n
e
e n 1 )! 10
6( + >
3 10 )!
1
( n + >
6× 9 n ≥
Rozwiązanie
załoŜony poziom błędu
Co najmniej 9 wyrazów musimy zastosować aby otrzymać wartość błędu na poziomie 10-6
Met.Numer. wykład 1 51
Wnioski z dotychczasowych rozwaŜań
• W wielu przypadkach moŜna uniknąć błędów wejściowych i błędów obcięcia.
• W trakcie obliczeń pojawiają się nowe błędy (błędy zaokrągleń), których nie da się uniknąć.
• Błędy zaokrągleń moŜna zmniejszyć ustalając umiejętnie sposób i kolejność wykonywania działań.
Przykład tragicznego błędu zaokrąglenia
25 lutego 1991 w Dhahran, Arabia Saudyjska, zginęło 28 amerykańskich Ŝołnierzy w wyniku ataku irackiej rakiety Scud.System obrony Patriot nie wykrył zagroŜenia. Dlaczego?
System oblicza powierzchnię, którą powinien skanować na podstawie prędkości obiektu i czasu ostatniej detekcji. Zegar wewnętrzny był ustawiony na pomiar co 1/10 sekundy. Długość słowa 24 bity. Z powodu zaokrągleń błąd bezwzględny wyniósł 9.5 10-8 s a po 100 godzinach:
Przesunięcie obliczone na tej podstawie 687 m. Obiekt jest uznany poza zakresem gdy przesunięcie wynosi 137 m
sec 34 . 0 100 60
60 10 10
5 .
9 ⋅
−8× × × × =
Met.Numer. wykład 1 53
Błędy zaokrągleń powstające podczas wykonywania działań zmiennopozycyjnych są równowaŜne
zastępczemu zaburzaniu liczb, na których wykonujemy działania.
Lemat Wilkinsona
Dla pojedynczych działań arytmetycznych
: ) 1 ( ) 1 ( )
( x
1± x
2= x
1+ ε
1± x
2+ ε
2fl
) 1 ( )
1 ( )
( x
1⋅ x
2= x
1+ ε
3⋅ x
2= x
1⋅ x
2+ ε
3fl
)) 1 ( /(
/ ) 1 ( ) /
( x
1x
2= x
1+ ε
4x
2= x
1x
2+ ε
5fl
ε
≤ ε
i symbol działania wykonanego na danychzmiennopozycyjnych
Działania arytmetyczne 1. Dodawanie i odejmowanie
Aby dodać lub odjąć dwie znormalizowane liczby w zapisie zmiennoprzecinkowym, wykładniki w powinny być zrównane poprzez odpowiednie przesunięcie mantysy.
Przykład: Dodać 0,4546·10
5do 0,5433·10
70,0045·10
7+0,5433 ·10
7=0,5478 ·10
7 przesuwamyWniosek: Tracimy pewne cyfry znaczące
Met.Numer. wykład 1 55
Działania arytmetyczne
Zamiast interpretować powstały błąd jako wyniki zaokrąglania (urwania), które nastąpiło podczas przeskalowania (zmiany wykładników) składników, moŜna przyjąć w myśl lematu Wilkinsona, Ŝe samo działanie zostało wykonane dokładnie (bez błędu), ale na zmienionych trochę składnikach.
W tym przykładzie:
Wynik dokładny: 0,547846
10-7 Wynik przybliŜony: 0,5478
10-7Błąd względny sumy: 0,00008 jest mniejszy niŜ ε=10-4 Ten sam wynik otrzymamy gdy dodamy np. 0,4546·105do
0,543254·107 (składnik zaburzony)
Działania arytmetyczne
2. MnoŜenie
MnoŜymy mantysy i wykładniki w dodajemy.
Przykład: PomnoŜyć 0,5543·10
12przez 0,4111·10
-150,5543·10
12·0,4111 ·10
-15=0,2278273 ·10
-3=0,2278·10
-3Za kaŜdym razem tracimy pewne cyfry znaczące co jest źródłem błędu
3. Dzielenie
Przykład: Podzielić 0,1000·10
5przez 0,9999·10
30,1000·10
5/0,9999 ·10
3=0,1000 ·10
2Met.Numer. wykład 1 57
Kolejność działań
(a+b)-c≠(a-c)+b brak przemienności, łączności a(b-c) ≠(ab-ac) brak rozdzielności mnoŜenia względem dodawania
Przykład: a= 0,5665·10
1, b=0,5556·10
-1, c=0,5644·10
1(a+b)=0,5665·10
1+0,5556·10
-1=0,5665·10
1+0,0055·10
1=0,5720·10
1(a+b)-c=0,5720·10
1-0,5644·10
1=0,7600·10
-1(a-c)=0,5665·10
1-0,5644·10
1=0,0021·10
1=0,2100·10
-1(a-c)+b=0,2100·10
-1+0,5556·10
-1=0,7656·10
-10 2 4
0 20 40 60 80 100 120 140
y
x
u(y)
u(x) funkcja y = f(x)
styczna
dy/dx u ( x ) dx dy ) y (
u =
Propagacja błędów
Met.Numer. wykład 1 59
Metoda róŜniczki zupełnej
Dla wielkości złoŜonej y=f(x1,x2,...xn) gdy niepewności maksymalne ∆x1 , ∆x2 , ... ∆xn są małe w porównaniu z wartościami zmiennych x1,x2, ... xn niepewność maksymalną wielkości y wyliczamy z praw rachunku róŜniczkowego:
n n
x x x y
x x y
x
y y ∆
∂ + ∂ +
∂ ∆ + ∂
∂ ∆
= ∂
∆
2...
1 2 1
Oszacować błąd pomiaru gęstości ρ kuli o masie m i promieniu R
π
3) 3 4 ) ( ,
( R
R m
m =
ρ
R R
m m ∆
∂ + ∂
∂ ∆
= ∂
∆ ρ ρ ρ
( ) 4 3 1 π R
3m =
∂
∂ ρ
błąd bezwzględny
błąd względny
Przykład
ale
R ( ) 4 3 3 π R
4= −
∂
∂ ρ
R
m ε
ε
ε ρ = + 3
Met.Numer. wykład 1 61
Błąd sumy
A = a ± ∆ a
błędy bezwzględne składników sumy
Błędy działań arytmetycznych
Zatem błąd bezwzględny sumy (róŜnicy) jest równy sumie błędów składników.
b b B = ± ∆
) ( b a b
a b a b a B
A + = + ± ∆ ± ∆ = + ± ∆ +
błąd bezwzględny sumy
b a b
a ± = ∆ + ∆
∆ ( )
b a
b a
b
a
+
∆ +
= ∆ ε
+Błąd względny róŜnicy Błąd względny sumy
Błędy działań arytmetycznych
Błąd względny róŜnicy moŜe być duŜy nawet gdy błędy względne odjemnej i odjemnika są małe. NaleŜy unikać odejmowania prawie równych liczb przybliŜonych!
b a
b a
b
a
−
∆ +
= ∆ ε
−Zjawisko zwane redukcją cyfr znaczących
Szczególnie istotne przy obliczeniach ilorazów róŜnicowych przybliŜających pochodne funkcji, pierwiastków równania kwadratowego przy dominującym współczynniku przy
Met.Numer. wykład 1 63
Tracimy dokładny sens liczby 0 jeśli dokonujemy obliczeń numerycznych
Koncepcja zera
0 2
2
+ 2 x − = x
pierwiastkami są − 1 ± 3
Sprawdzić, Ŝe po podstawieniu rozwiązań przybliŜonych nie otrzymujemy dokładnie liczby zero
0,7320·10o -0.2732 ·101
w przybliŜeniu
Powinno się zatem unikać odejmowania bliskich sobie liczb i warunek w pętli nie powinien być ustawiany „do zera”,
if a-b<ε
Wnioski praktyczne
• ponowne rozwiązanie tego samego zagadnienia inną metodą lub taką samą metodę, ale z inną
kolejnością operacji
• ponowne rozwiązanie zagadnienia przy nieznacznej zmianie danych wejściowych
Przy obliczeniach numerycznych korzystne jest:
Met.Numer. wykład 1 65
Zadania i algorytmy numeryczne
• Zadanie numeryczne wymaga jasnego i
niedwuznacznego opisu powiązania funkcjonalnego między danymi wejściowymi czyli „zmiennymi niezaleŜnymi” zadania i danymi wyjściowymi
,
tj.szukanymi wynikami.
• Zadanie numeryczne jest problemem polegającym na wyznaczeniu wektora wyników w na podstawie wektora danych a
a
D w
odwzorowanie
W
zadanie dobrze postawione) (a w r r
= W
jednoznaczne przyporządkowanie
Zadania i algorytmy numeryczne
• Algorytm numeryczny jest pełnym opisem poprawnie określonych operacji przekształcających wektor
dopuszczalnych danych wejściowych (zbiór DN) na wektor danych wyjściowych.
• Algorytm jest poprawnie sformułowany gdy liczba niezbędnych działań będzie skończona
a
DN w
odwzorowanie
WN
) , ( ε
= a
w WN
wektor wyniku zaleŜy od dokładności obliczeniowej ε maszyny cyfrowej
∅
≠
∩ D
DN
Met.Numer. wykład 1 67
Przykłady algorytmów
Dana jest liczba zespolona a=x+iy. Obliczyć 1/a2 Algorytm I:
1.
2.
3.
x y t = /
2 2 2
y x a = +
(tangens fazy liczby a)
(kwadrat modułu liczby a) 2
2 2
2 1
1 1 Re 1
t t a
a +
= −
2 2 2
2 1
2 1 Im 1
t t a
a +
= −
Zadanie jest dobrze postawione, jeŜeli:
x
2+ y
2≠ 0
{ ( 0 , 0 ) }
2−
=
R
czyli:D
Algorytm jest poprawnie sformułowany (11 niezbędnych działań)
Przykłady algorytmów
Nie dla kaŜdej pary danych (x,y)≠0 moŜna znaleźć rozwiązanie zadania stosując algorytm I.
1. Wystąpi nadmiar liczb zmiennopozycyjnych (dla x=0 ale takŜe z powodu zaokrąglenia do zera)
2. Nadmiar moŜe nastąpić moŜe juŜ w pierwszym kroku gdy x=10-25 i y=1025 z powodu dzielenia y/x 3. Dla x=0, istniejącego dla y≠0 rozwiązania nie moŜna wyznaczyć stosując ten algorytm. Wzrost dokładności obliczeń nie zmieni tego faktu.
Algorytm I nie jest numerycznie stabilny
Met.Numer. wykład 1 69
Przykłady algorytmów
Dana jest liczba zespolona a=x+iy. Obliczyć 1/a2 Algorytm II:
1.
2.
2 2
2 2 2
Re 1
y x
y x
r a +
= −
=
2 2
2 2
Im 1
y x
xy u a
+
= −
=
Algorytm II jest poprawnie sformułowany (9 niezbędnych działań)
Algorytm II jest numerycznie stabilny co wynika z ciągłości wzorów dla x2+y2≠0
Schemat Hornera
Przykład wzoru rekurencyjnego Aby obliczyć wartość wielomianu:w danym punkcie z, korzystamy ze schematu:
n n
n
n
a x a x a
x x
p ( ) = +
1 −1+ ... +
−1+
1
1
z a
p = +
2 1
2
zp a
p = +
n n
n
zp a
p =
−1+ p
nz p ( ) =
co odpowiada obliczaniu wartości wyraŜenia:
[ ]
{ z z z a a a
n} a
nz ...( +
1) +
2+ ... +
−1+
Met.Numer. wykład 1 71
Schemat Hornera
Schemat Hornera umoŜliwia znaczne zmniejszenie liczby działań arytmetycznych.
W schemacie Hornera wykonujemy n-1 mnoŜeń i n dodawań.
o
n
z a
a z
z a z
zz ... +
1... + ... +
−1+
Obliczając bezpośrednio:
n razy n-1 razy
wykonujemy (n-1)(n+2)/2 mnoŜeń i n dodawań.
Oszacowanie wielkości błędów zaokrągleń jest identyczne dla obu metod
Schemat Hornera
Przykład: obliczw schemacie Hornera
Zadanie: Oblicz p(8) dla p(x)=2x3+x+7 dla obliczeń ręcznych:
3 2 2 1 3
)
0( z a z a z a z a
p = + + +
3 2 1
0
) )
((
)
( z a z a z a z a
p = + + +
b3
b2
b1
b0
zb2 zb1 zb0
a3 a2 a1 a0
p(z)=b3
1039 129
16 2
1032 128
16
7 1 0 2
p(8)=1039
Met.Numer. wykład 1 73
Schemat blokowy
b:=a
0i:=0
i:=i+1 b:=a
i+zb
i=n?
tak
wyjście
nie
Uwarunkowanie zadania i stabilność algorytmów
Algorytm obliczeniowy jest numerycznie stabilny, jeŜeli dla dowolnie wybranych danych
D a
0∈
istnieje taka dokładność obliczeń ε0, Ŝe dla ε<ε0mamy
) DN(
a
0∈ ε
oraz
lim
0WN ( a
0, ε ) = W ( a
0)
→ ε
Algorytm obliczeniowy jest numerycznie stabilny wtedy, gdy zwiększając dokładność obliczeń moŜna wyznaczyć ( z dowolną dokładnością) dowolne istniejące rozwiązanie zadania.
Met.Numer. wykład 1 75
Uwarunkowanie zadania i stabilność algorytmów
Z powodu błędu zaokrągleń
Zgodnie z lematem Wilkinsona moŜna dobrać zaburzone dane
D a a + δ ∈
Ŝe
) ( ) ,
( a W a WN ε ≠
Wielkość zastępczego zaburzenia
) (
) ,
( a ε = W a + δ a WN
zaleŜy od:
δ a
-wektora danych a
-liczby wykonywanych działań -dokładności obliczeń
Uwarunkowanie zadania i stabilność algorytmów
Na podstawie lematu Wilkinsona:
gdy
a) W(a + δ
Uwarunkowaniem zadania nazywamy cechę, która mówi jak bardzo wynik dla zaburzonego wektora danych róŜni się od wyniku dla dokładnego wektora danych czyli:
→ 0 δ
a a
→ 0 ε
W(a)
Wskaźnik uwarunkowania zadania B(a) jest to liczba, dla której jest spełniony warunek:
a δ a δ ≤
) (a w B
w
δw=WN(a,ε)−W(a)Met.Numer. wykład 1 77
• Przyjmijmy względny błąd wielkości x
Wskaźnik uwarunkowania zadania
x x x
~
− ~
• Względny błąd wielkości f(x)
~ ) ( ~ )
~ )(
) (' ( ~ ( ~ ) )
( f x f x x x
x f f x x
f − ≈ −
• Wskaźnik uwarunkowania:
~ ) ( (' ~ )
~ x f f x x
• Przykład
Wskaźnik uwarunkowania zadania
x x
f ( ) =
• Wskaźnik uwarunkowania:
2 1 2
~ ) ( (' ~ )
~ = =
x x x x
f f x x
zadanie dobrze uwarunkowane
Met.Numer. wykład 1 79
• Przykład
Wskaźnik uwarunkowania zadania
1
2) 10
( x x
f = −
• Wskaźnik uwarunkowania:
2 2