Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf ·...

32
Wprowadzenie do metod numerycznych Krzysztof Patan

Transcript of Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf ·...

Page 1: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Wprowadzenie do metod numerycznych

Krzysztof Patan

Page 2: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Metody numeryczne

Dział matematyki stosowanej

Każde bardziej złożone zadanie wymaga opracowaniaindywidualnej metody jego rozwiązywania na maszyniecyfrowej

Metody rozwiązywania tego samego problemu mogą sięróżnić operowaniem na pamięci operacyjnej, użyciempodwójnej precyzji podczas obliczeń, czy stosowaniemróżnych warunków zatrzymania algorytmu

Wybór odpowiedniej metody dla danego problemu

Page 3: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Dlaczego modelujemy numerycznie?

szybkie i efektywne narzędzia rozwiązywania problemów

uniwersalność i szeroka użyteczność

często, jedyna alternatywa dla nieistniejących rozwiązańanalitycznych

liczne istniejące efektywne programy i biblioteki

idealne do nauki obsługi maszyn cyfrowych

zmieniają rozumienie metod matematycznych (redukcjaskomplikowanych technik do podstawowych operacjiarytmetycznych)

Page 4: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Zadanie algorytmiczne

Page 5: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Rozwiązanie algorytmiczne

Page 6: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Algorytm – definicja

Page 7: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Algorytm – analiza

Page 8: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Definicje

Metody numeryczne

rozwiązywanie zadań matematycznych za pomocą skończonejliczby działań arytmetycznych i logicznych

Zadanie numeryczne

matematyczny opis powiązań pomiędzy danymi wejściowymi iwyjściowymi

Algorytm numeryczny

skończona sekwencja poprawnie sformułowanych operacjiprzekształcających dane wejściowe i wyjściowe

operacja – działanie arytmetyczne, logiczne lub odwołanie doistniejących algorytmów

Page 9: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Źródła błędów

Page 10: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

1 Błędy pomiarowe, np. prędkość światła w próżni wynosic = (2.997925 + ε) · 108m/sec, |ε| ¬ 3 · 10−6

2 Modelowanie matematyczne, np. najprostszy model przyrostupopulacjiN(t) = N0ekt jest prawidłowy tylko przy założeniu, że posiadanieograniczone zasoby

3 Błędy grube i pomyłki, np. błędy programistyczne4 Błędy maszynowe, np. błędy zaokrąglania lub odrzucania warytmetyce zmiennoprzecinkowej

5 Błędy przybliżania matematycznego, np. obliczając całkę

I =∫ 10ex2dx ≈

∫ 10

(1 + x2 +

x4

2!+x6

3!+x8

4!

)dx

Page 11: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Błąd względny i bezwzględny

Błąd bezwzględnyeabs = α− α̂

gdzie:

α− wartość dokładnaα̂− wartość przybliżona (obliczona)

Błąd względny

erel =α− α̂α

lub erel =α− α̂α· 100%

Wniosek: α jest najczęściej niedostępna a priori, stąd

erel ∼=α̃− α̂α̃

Page 12: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykład

Rozważmy zadanie pomiaru długości mostu oraz nita użytego do jegobudowy. W wyniku pomiaru otrzymano odpowiednio 9999 i 9 cm. Jeżeliprawdziwe wartości to 10000 oraz 10 cm, policzyć (a) błąd bezwzględny i(b) procentowy błąd względny w każdym z przypadków.

a) Błąd bezwzględny dla długości mostu wynosi

emabs = 10000− 9999 = 1 cm

oraz dla długości nita

enabs = 10− 9 = 1 cm

b) Błąd względny dla długości mostu wynosi

emrel =110000

· 100% = 0.01%

oraz dla nitaenrel =

110· 100% = 10%

Page 13: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Cyfrowy zapis liczb całkowitych

baza 10 konwersja baza 2 baza 8 baza 161 1=20 00000001 001 018 8=23 00001000 010 0810 8 + 2=23 + 21 00001010 012 0C27 16 + 8 + 2 + 1=24 + 23 + 21 00011010 033 1B67 64 + 2 + 1=26 + 21 + 20 01000011 103 43202 128 + 64 + 8 + 2=28 + 27 + 23 + 21 11001010 312 CA

konwersja do systemu ósemkowego

27(10) → 24 + 3 = 3 · 81 + 3 · 80 → 33(8)

konwersja do systemu szestnastkowego

27(10) → 16 + 11 = 1 · 161 + 11 · 160 → 1B(16)

Page 14: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Zapis stałopozycyjnyReprezentacja

l = sn∑i=0

ei2i (1)

gdzie s ∈ {−1, 1} – znak liczby, ei ∈ {0, 1} – cyfry reprezentacjibinarnej (en 6= 0, gdy l 6= 0)

s 0 . . . 0 en en−1 . . . e0znak d d bitów 1

Zakres liczbyI = [−2d, 2d − 1] (2)

Działania dokładne1 dodawanie2 odejmowanie3 mnożenie

Page 15: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykład

Określić zakres liczb całkowitych przy, które mogą być reprezentowane na16-bitowym komputerze

Pierwszy bit przechowuje znak. Pozostałe 15 bitów może służyć doprzechowania liczb binarnych od 0 do 111111111111111. Stąd, górnagranica wynosi

214 + 213 + · · ·+ 21 + 20 = 215 − 1 = 32767

W ten sposób zakres to [-32 767,32 767]

Uwaga! Istnieje nadmiarowość dla wartości zero, tj. 0000000000000000oraz 1000000000000000, dlatego druga z kombinacji zazwyczaj jestużywana do reprezentacji dodatkowej liczby ujemnej: −32768, stądprawdziwy zakres jest od −32768 do 32767

Page 16: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Zapis zmiennopozycyjny

Reprezentacjax = s · 2c ·m (3)

gdzie s ∈ {−1, 1} – znak liczby, c – cecha liczby (liczba całkowita –reprezentacja stałopozycyjna), m – mantysa liczby ( 12 6 m < 1)

s sc ed−t−2 . . . e1 e0 e−1 e−2 . . . e−tznak d− t bitów cechy t bitów mantysy

Mantysae−1 = 1, e−i = 0 lub 1 dla i > 1 dla t bitówt decyduje o dokładności reprezentacji

Zakres liczby

mmin2cmin 6 |x| 6 mmax2cmax

122−2

d−t−16 |x| 6

2t − 12t22d−t−1−1

Page 17: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykład

Podać wartość liczby o reprezentacji zmiennoprzecinkowej 10101101wiedząc, że dokładność reprezentacji t = 4Pierwszy bit określa znak liczby 1→ liczba ujemnaCztery ostatnie bity to mantysa, stąd

m = 1 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 = 12+14+116=1316

Bity od drugiego do czwartego to cecha, ale bit drugi to znak, stąd

c = +1 · 21 + 0 · 20 = 2

Ostateczniex = −m · 2c = 13

16· 22 = 13

4= 3, 25

Page 18: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykład

Podać reprezentację zmiennopozycyjną liczb 0, 2 i −6, 25 dla d = 7 it = 4

Liczbę 0, 2 można przybliżyć liczbą 0, 1875, która ma reprezentację00101100

W tym przypadku błąd bezwzględny eabs = 0, 2− 0.1875 = 0.0125

Liczbę −6, 25 można przybliżyć liczbą 6, 5, która ma reprezentację10111101

W tym przypadku błąd bezwzględny eabs = −6, 25 + 6, 5 = 0, 25

Bezwzględny błąd reprezentacji jest silnie zależy od t i od wielkości liczby!

Page 19: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Cyfrowy zapis liczb zmiennoprzecinkowych

Standardy IEEE formatów liczb zmiennoprzecinkowych

Precyzja Sign Bity mantysy Bity cechy SumaSingle 1 23 8 32Double 1 52 11 64Quadruple 1 113 14 128

t bitów decyduje o precyzji reprezentacji

d− t bitów decyduje o zakresie reprezentacji

Page 20: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Zbiór liczb zmiennoprzecinkowych

Rzeczywiste ZmiennoprzecinkoweZakres Nieskończony: istnieją dowolnie

duże i dowolnie małe liczby rze-czywiste.

Skończony: liczba bitów cechy ograni-cza amplitudę liczb zmiennoprzecinko-wych.

Precyzja Nieskończona: jest nieskończeniewiele liczb rzeczywistych pomię-dzy dwoma dowolnymi l. rzeczy-wistymi.

Skończona: istnieje skończona licz-ba (czasami nawet równa zero) liczbzmiennoprzecinkowych pomiędzy dwo-ma dowolnymi l. zmiennoprzecinkowy-mi.

Wniosek: Linia liczb zmiennoprzecinkowych jest podzbiorem liniiliczb rzeczywistych

Page 21: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Arytmetyka zmiennopozycyjna

Wyniki operacji arytmetycznych pomiędzy dwoma liczbamizmiennoprzecinkowymi:

najczęściej nie może być reprezentowana przez inną wartośćzmiennoprzecinkową,

ma ograniczony zakres i precyzję.

Reprezentacja zmiennopozycyjna liczby x

x′ = x(1− ε)

gdzie ε jest błędem względnym reprezentacji

W arytmetyce zmiennopozycyjnej

fl(a op b) = a op b(1 + εop)

gdzie fl jest operacją zmiannoprzecinkową (ang. floating pointoperation), εop jest błędem względnym działania w tej arytmetyce

Page 22: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykłady

1.fl(a+ b) = a(1 + εa) + b(1 + εb) = (a+ b)(1 + εd)

gdzie εd =aεa + bεba+ b

2.fl(a · b) = a(1 + εa) · b(1 + εb) = a · b(1 + εm)

gdzie εm = εa + εb + εaεb

3.

fl((a− b)(a+ b)) = ((a− b)(1 + εo)(a+ b)(1 + εd)) (1 + εm)= (a− b)(a+ b)(1 + εo)(1 + εd)(1 + εm)= (a− b)(a+ b)(1 + εh)

gdzie εh = εo + εd + εm + εoεd + εoεm + εdεm + εoεdεm

Page 23: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykłady – cd

4.

fl(a2 − b2) = (a · a(1 + εma)− b · b(1 + εmb))(1 + εo)

= (a2 + b2)(1 +a2εma − b2εmba2 − b2

)(1 + εo)

= (a2 + b2)(1 + εr)

gdzie εr = εo + (1 + εo)(1 +a2εma − b2εmba2 − b2

)

Page 24: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Błędy zaokrąglenia w obliczeniach

Przykład

Obliczyć r = x2 − y2, gdzie x = 4.005 oraz y = 4.004 z 4-cyfrową precyzją

Przez bezpośrednie podstawienie mamy

r = x2 − y2 = 16.04(0025)− 16.03(2016) = 0.01

Prawdziwa wartość r to 0.008009. Zatem błąd względny wynosi

erel =0.008009− 0.010.008009

· 100% ∼= −24.859%!!!

Z drugiej strony, stosując znany wzór skróconego mnożenia r = (x− y)(x+ y)mamy:

r = (4.005− 4.004)(4.004 + 4.005) = 0.001 · 8.009 = 0.008009

Wynik jest dokładny i błąd względny

erel = 0%!!!

Page 25: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Podsumowanie

ograniczona precyzja prowadzi do zaokrągleń w pojedynczychkalkulacjach

efekty zaokrągleń akumulują się powoli

błędy zaokrągleń są nieuniknione, sposobem jest tworzenielepszych algorytmów

odejmowanie niemal równych wartości prowadzi do poważnychstrat precyzji

Page 26: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Błędy kasowania

Dla dodawania: Błędy w

c = a+ b i c = a− b

będą duże kiedy a� b lub a� b

Przykład

Rozważmy c = a+ b z a = x.xxx . . . · 100, b = y.yyy . . . · 10−8 orazz = x+ y < 10.

osiągalna precyzja︷ ︸︸ ︷x.xxx xxxx xxxx xxxx

+ 0.000 0000 yyyy yyyy yyyy yyyy= x.xxx xxxx zzzz zzzz yyyy yyyy︸ ︷︷ ︸

stracone cyfry

Page 27: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Dla odejmowania: Błąd w c = a− b będzie znaczny dla a ≈ b

Przykład

Wyznaczyć c = a− b w arytmetyce zmiennoprzecinkowej dlaa = x.xxxxxxxxxxxxxx1 oraz b = x.xxxxxxxxxxxxxxx0

osiągalna precyzja︷ ︸︸ ︷x.xxx xxxx xxxx xxx1

− x.xxx xxxx xxxx xxx0= 0.000 0000 0000 0001 uuuu uuuu uuuu uuu︸ ︷︷ ︸

nieokreślone cyfry

= 1.uuu uuuu uuuu uuuu ·10−15

Wynik posiada tylko jedną (!) cyfrę znaczącą.

Page 28: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Podsumowanie

występują w dodawaniu: a+ b kiedy a� b lub a� bwystępują w odejmowaniu: a− b kiedy a ≈ bogromne błędy w pojedynczych operacjach, a nie powolnaakumulacja

często mogą zostać zminimalizowane przez algebraiczneprzekształcenie wrażliwej formuły

Page 29: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Precyzja maszyny

Amplituda błędów zaokrąglania jest określona przez tzw. precyzjęmaszyny εm, tzn.

1 + δ = 1, ∀δ ¬ εmDla podwójnej precyzji (64 bity) εm ∼= 2.2204 · 10−16

Wyznaczanie precyzji maszyny

eps=1doif (eps+1 <= 1) exiteps = eps/2end doeps=2*eps

Porównywanie liczbzmiennoprzecinkowych

if x==y % błędnie!!!

if abs(x-y) < eps

Page 30: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Błąd obcięcia

Rozważmy rozwinięcie w szereg sin(x)

sin(x) = x− x3

3!+x5

5!− . . .

Dla małych x, tylko kilka wyrazów szeregu jest potrzebnych dodokładnego przybliżenia sin(x). Wyrazy wyższego rzędu są obcinane(ang. truncated)

ftrue = fsum + błąd obcięcia

Rozmiar błędu obcięcia zależy od x oraz liczby wyrazów włączonych wfsum.

Page 31: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Uwarunkowanie zadania algorytmicznego

Niechy = f(x) ∆y = f(x+∆x)− y

Zadanie jest źle uwarunkowane jeśli

∆yy>>∆xx

Jeżeli niewielka zmiana parametrów problemu wpływa znacząco na jegorozwiązanie to problem jest źle uwarunkowany

Zadanie jest stabilne jeśli dla każdedo x ∈ D

lim∆x→0

f(x+∆x) = f(x)

orazx+∆x ∈ D

Page 32: Wprowadzenie do metod numerycznychstaff.uz.zgora.pl/kpatan/materialy/letni/pwsz1/wyk1_mn.pdf · Dlaczego modelujemy numerycznie? szybkie i efektywne narzędzia rozwiązywania problemów

Przykład

Rozważmy liniowe układy równań{2x+ 6y = 82x+ 6, 000000001y = 8, 000000001

⇒ x = 1, y = 1

{2x+ 6y = 82x+ 5, 999999999y = 8, 000000002

⇒ x = 10, y = −2

dla rozwiązania91= 9 i

31= 3

dla parametrów0, 0000000026, 000000001

≈ 3 · 10−10 i 0, 0000000018, 000000001

≈ 1, 3 · 10−10

Problem jest źle uwarunkowany (źle postawiony)