510 likes | 899 Views
Obliczanie. p. Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011. Obliczanie. p. Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011. Liczby. Liczby wyrażają ilość (liczby naturalne)
E N D
Obliczanie p Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011
Obliczanie p Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011
Liczby • Liczby wyrażają ilość(liczby naturalne) • Pitagoras i pitagorejczycy – kult i symbolika liczb
Liczby • Jeden • Monas • Bóg • Parmenidejski byt
Liczby • Dwa • Relacja „po” • Czas • Arytmetyka
Liczby • Trzy • Relacja „obok” • Przestrzeń • Geometria
Liczby • Pitagorejczycy użyli liczb także do mierzenia wielkości ciągłych(długości boków figur) • Długość przekątnejz twierdzenie Pitagorasa • Wielka tajemnica…
Liczby p
Liczby • Liczba p jest liczbą niewymiernątzn. nie można jej zapisać jako ułamka zwykłego (ilorazu dwóch liczb całkowitych) • Liczba p jest liczbą przestępnątzn. nie istnieje wielomian o współczynnikach całkowitych, którego p jest pierwiastkiem • Pitagorejczycy utrzymywali liczby niewymierne w tajemnicy!
Wartość liczby p • Wartość p: 3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679 82148 08651 32823 06647 09384 46095 50582 23172 53594 08128 48111 74502 84102 70193 85211 05559 64462 29489 54930 38196 44288 10975 66593 34461 28475 64823 37867 83165 …
Przybliżenia liczby p • Wartość: 3,14159 26535 89793 23846 26433 83279… • Przybliżenia:22/7 = 3,14285 71428 57142 85714…355/113 = 3,14159 29203 53982 30088…52163/16604 = 3,1415923873 76535 77451…103993/33102 = 3,14159 26530 11902 60407…3,14626 43699 41972 34232 91350…3,14159..(30 cyfr)
Metoda Monte-Carlo • Okrąg: r = 1 • Pole koła: pr2 = p • Pole kwadratu:a2 = 4 • Stosunek pól: p/4
Metoda Monte-Carlo • Autor: Rudolf Wolf(szwajcarski astronom) • Dokładność (N – ilość prób) • To raczej słabo!
Metoda Monte-Carlo • Realizacje (kłopot z liczbami losowymi) • dziecko rzuca kamyki na plaży (KM i BM) • deszcz i donica w akwarium (M. Chmielarz) • mąka na stole
Metoda Monte-Carlo • Realizacje (kłopot z liczbami losowymi) • dziecko rzuca kamyki na plaży (KM i BM) • deszcz i donica w akwarium (M. Chmielarz) • mąka na stole • symulacja komputerowa • http://www.fizyka.umk.pl/~jacek/dydaktyka/pi/(C, C++, C#, Java, Pascal/Delphi, nawet ZX Basic)
Metoda Monte-Carlo • Implementacja ulong i=0, N=(ulong)1E8; double x, y; do { i++; x=random.NextDouble(); y=random.NextDouble(); if(x*x+y*y<1) trafienia++; } while (i<N); double pi=4*(double)trafienia/N;
Metoda Monte-Carlo Demo
Igła Buffona • Problem sformułowany w 1773 roku przez Georga-Luisa Leclerca • Nietrywialny przykład realizacji metody Monte-Carlo • Typowe zadanie rach. prawdopodobieństwa(prawdopodobieństwo geometryczne)
Igła Buffona • Rzucamy N razy igłą na dywan w pasy • Igła o długości l jest krótsza niż odległość pasów d (l < d) • Zliczamy ile razy igła przetnie którąś z linii
Igła Buffona y – rzut połowy igły na kierunek poziomy x – odległość środka igły od najbliższej linii Igła przetnie linię gdy y > x y W rzucie igłą mamy dwa losowe parametry o jednorodnym rozkładzie: – położenie środka igły, co się przekłada na wielkość x, przy czym – orientację mierzoną kątem ostrym q między igłą i pionem, Rzut połowy igły: Igła przetnie linię gdy q x
Igła Buffona Losujemy dwa parametry (x, q) – punkt w przestrzeni 2D o rozmiarach Prawdopodobieństwo przecięcia linii: obszar pod krzywą pole całego prostokąta Prawdopodobieństwo = częstość losowania
Metoda Eulera • Autor: Leonhard Euler(szwajcarski matematyk) • Dokładność 1/N(N – ilość prób) • Znacznie lepiej niż w metodzie Wolfa
Metoda Eulera • Sumowanie szeregu • Suma to p2/6 Można z grubsza przyjąć, że ilość cyfr znaczących oszacowania wartości prówna jest rzędowi zsumowanych wyrazów. Zatem dla 105 wyrazów otrzymamy pięć cyfr znaczących.
Metoda Eulera • Implementacja ulong i=0, N=(ulong)1E8; double S=0; do { i++; S+=(1.0/(1.0*i*i)); } while (i<N); double pi=Math.Sqrt(6*S);
Metoda Eulera • Wartości częściowych sum
Metoda Eulera Demo
Metody obliczania p • Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html • szereg Madhava’ego, Gregory’ego, Reihe’a i Leibniza (1671): • szereg Abrahama Sharpa (1717):
Metody obliczania p • Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html
Metody obliczania p • Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html • Szereg Wallisa • Iloczyn Wallisa (1655)
Metoda iteracyjna Salamina-Brenta • Metody używane w XX wieku: D.H. Bailey, J.M. Borwein, P.B. Borwein, S. PlouffeThe Quest for Pi (1996) • Algorytm iteracyjny Salamina i Brenta (1976)Ustalamy: , , Dla k=1,2,3,… obliczamy pk zbiega do p kwadratowo,czyli każda iteracja podwajailość prawidłowych cyfr. Jeden z algorytmów używanych do bicia rekordów ilości policzonych cyfr p (obliczenia komputerowe)
Metody iteracyjne braci Borwein • Algorytm braci Borwein (1985):ciąg zbiegający do pkubicznie • Algorytm dwukwadratowy braci Borweinużywany przez Yasumasa Kanadę (Tokio) • Znaleźli wzór na ciągi dowolnego rzędu(co nie znaczy, że są szybsze od 4-go rzędu) • Dodatkowo mnożenia w wysokiej precyzji przyspieszane są dzięki użyciu algorytmu FFT (1965)
Metody iteracyjne braci Borwein • Yasumasa Kanada w swoim biurze
Metody iteracyjne braci Borwein Źródło: D.H. Bailey, J.M. Borwein, P.B. Borwein, S. PlouffeThe Quest for Pi (1996)
Wartość liczby p • Wartość p: 3,243F6 A8885 A308D 31319 8A2E0 37073 44A40 93822 299F3 1D008 2EFA9 8EC4E 6C894 52821 E638D 1377BE5466CF34E90C6CC0AC29B7C97C50DD3F84D5B5B54709179216D5D98979FB1BD1310BA698DFB5AC2FFD72DBD01ADFB7B8E1AFED6A267E96BA7C9045F12C7F9924A19947B3916CF708 …
Algorytmy kurkowe(?) • Niepewna nazwa: ang. spigotalgoritm(spigot = kran przy beczce, szpunt) • Algorytm, który pozwala na liczenie kolejnych cyfr stałej matematycznej nie używając ich już po policzeniu (w przeciwieństwie do wcześniej przedstawionych algorytmów rekurencyjnych) • Takie algorytmy istnieją dla: p, e, , itp. • Algorytmy te można zaimplementować bez liczb rzeczywistych (tylko liczby całkowite)
Algorytmy kurkowe(?) • Do policzenia 5000 cyfr liczby p potrzeba tylko 600 000 000 operacji na liczbach całkowitych! • Koszt obliczenia n-tej cyfry nie zależy od n. • Algorytm kurkowy dla liczby p toalgorytm Baileya-Borweina-Plouffe’a(BBP; 1995, 1997, 2003) bazujący na wzorze: • Pozwala na znalezienie konkretnej serii cyfr p!
Algorytm BBP David Bailey Peter Borwein Simon Plouffe
Algorytm BBP • Przygotowania:
Algorytm BBP • Aby obliczyć n-tą cyfrę liczby lw reprezentacji dziesiętnej można użyć triku: • Aby zaokrąglić liczbę l do n cyfr po przecinku: l*10^n – trunc(l*10^n) 10000*p – (int)(10000*p) = 0,9265358979 l*10^n % 1 trunc(l*10^n) / 10^n (int)(10000*p) / 10000 = 3,1415
Algorytm BBP • Aby obliczyć n-tą cyfrę liczby lw reprezentacji heksydecymalnej należy: • Aby zaokrąglić liczbę l do n cyfr po przecinku: l*16^n – trunc(l*16^n) 65536*p – (int)(65536*p) = 0,6A8885A308D31319 l*16^n % 1 trunc(l*16^n) / 16^n (int)(65536*p) / 65536 = 3,243F
Algorytm BBP • Aby obliczyć n-tą cyfrę liczby lw reprezentacji heksydecymalnej należy: • Aby zaokrąglić liczbę l do n cyfr po przecinku: l*10^n – trunc(l*10^n) 10000*p – (int)(10000*p) = 0,6A8885A308D31319 l*10^n % 1 trunc(l*10^n) / 10^n (int)(10000*p) / 10000 = 3,243F
Algorytm BBP • Cyfry sum S(j) począwszy od n-tej Bardzo szybko zbieżny szereg (sprawdzamy tylko, czy nie zmienia się ostatnia cyfra serii) część ułamkowa Wartość p od n-tej cyfry HEX Obliczanie potęg za pomocą algorytmu szybkiego potęgowania dla l. całkowit.(exponentiation by squaring)
Algorytm BBP Demo
Motywacja Po co tak dokładnie liczyć przybliżenia p?
Motywacja Po co tak dokładnie liczyć przybliżenia p?
Koniec • Wartość p: 3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280 34825 34211 70679 82148 08651 32823 06647 09384 46095 50582 23172 53594 08128 48111 74502 84102 70193 85211 05559 64462 29489 54930 38196 44288 10975 66593 34461 28475 64823 37867 83165 …