jacek matulewski zakład mechaniki kwantowej instytut fizyki, umk 14 marca 2011

50
Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011 Obliczanie

Upload: ivana-calhoun

Post on 30-Dec-2015

36 views

Category:

Documents


4 download

DESCRIPTION

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) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Jacek Matulewski

Zakład Mechaniki KwantowejInstytut Fizyki, UMK

14 marca 2011

Obliczanie

Page 2: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Jacek Matulewski

Zakład Mechaniki KwantowejInstytut Fizyki, UMK

14 marca 2011

Obliczanie

Page 3: 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

Page 4: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

• Jeden• Monas• Bóg• Parmenidejski byt

Page 5: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

• Dwa

• Relacja „po”

• Czas

• Arytmetyka

Page 6: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

• Trzy

• Relacja „obok”

• Przestrzeń

• Geometria

Page 7: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

2

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

211 22 d

Page 8: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

2

Page 9: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Liczby

• Liczba jest liczbą niewymierną tzn. nie można jej zapisać jako ułamka zwykłego (ilorazu dwóch liczb całkowitych)

• Liczba jest liczbą przestępną tzn. nie istnieje wielomian o współczynnikach całkowitych, którego jest pierwiastkiem

• Pitagorejczycy utrzymywali liczby niewymierne w tajemnicy!

Page 10: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Wartość liczby

• Wartość : 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 …

Page 11: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Przybliżenia liczby

• 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,14159 23873 76535 77451…103993/33102 = 3,14159 26530 11902 60407…

3,14626 43699 41972 34232 91350…

3,14159..(30 cyfr)

32

163/)744640320ln( 3

Page 12: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

RekordyKto: Kiedy: Prec. Wartość

Babilończycy 2000 p.n.e 1 3.125

Egipcjanie 2000 p.n.e 1 3.16045

Chińczycy 1200 p.n.e. 1 3

Biblia 550 p.n.e. 1 3 (1 Król. 7:23)

Archimedes 250 p.n.e. 3 3.141851±0.00100604

Ptolemeusz 150 3 3.14166

Tsu Ch’ung Chi 480 7 3.1415926

Fibonacci 1220 3 3.141818

Al-Kashi 1429 14

Viete 1593 9 3.1415926536

Newton 1665 16

Sharp 1699 71

Rutheford, W. 1824 208 (152) W 1853 policzył 404

Page 13: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

RekordyKto: Kiedy: Prec.

Ferguson 1946, 1947 620, 808

Reitwiesner i in. 1949 2 037 (ENIAC)

Felton 1957, 1958 7 480, 10 021

Shanks i Wrench 1961 100 265

Guilloud i in 1966 – 1982 250 000 – 2 000 050

Kanada i inni 1981 – 1995 2 000 036 – 6 442 450 938

bracia Chudovsky 1989 – 1994 480 000 000 – 4 044 000 000

Y. Kanada 2002 1 241 100 000 000 (600 godzin)

Page 14: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Archimedesa

70

103

71

103

142857,3140845,3

Page 15: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Monte-Carlo

• Okrąg: r = 1

• Pole koła: r

• Pole kwadratu:a2 = 4

• Stosunek pól: /4

Page 16: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Monte-Carlo

• Autor: Rudolf Wolf(szwajcarski astronom)

• Dokładność (N – ilość prób)

• To raczej słabo!

N/1

Page 17: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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

Page 18: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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)

Page 19: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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;

Page 20: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Monte-Carlo

Demo

Page 21: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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)

Page 22: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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

Page 23: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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

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 między igłą i pionem,

Rzut połowy igły:

Igła przetnie linię gdy

)sin(2

ly

20 dx

20

)sin(2

lyx

Page 24: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Igła Buffona

Losujemy dwa parametry (x, ) – punkt w przestrzeni 2D o rozmiarach

]2,0[]2,0[ d

)sin(2

lyx

Prawdopodobieństwo przecięcia linii:

obszar pod krzywą

pole całego prostokąta

22

d

dl

2

0

)sin(2

4

d

2

l

d

l

2

Prawdopodobieństwo = częstość losowania

N

n

d

l

2

nd

lN2

Page 25: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Autor: Leonhard Euler(szwajcarski matematyk)

• Dokładność 1/N(N – ilość prób)

• Znacznie lepiej niż w metodzie Wolfa

Metoda Eulera

6

1 2

12

i i

Page 26: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Eulera

Page 27: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Sumowanie szeregu

• Suma to 2/6 Można z grubsza przyjąć, że ilość cyfr znaczących oszacowania wartości

równa jest rzędowi zsumowanych wyrazów. Zatem dla 105 wyrazów otrzymamy pięć cyfr znaczących.

Metoda Eulera

2221

22

1...

3

1

2

1

1

11

niS

n

in

nSnSS nnn /16/166

S

Page 28: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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);

Page 29: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Wartości częściowych sum

Metoda Eulera

n

in i

S1

2

166

1 2,44948974278318

2 2,73861278752583

3 2,85773803324704

4 2,92261298612503

5 2,96338770103857

6 2,99137649474842

7 3,01177394784621

8 3,02729785665784

9 3,03950758956105

10 3,04936163598207

100 3,13207653180911

1 000 3,14063805620599

10 000 3,14149716394721

100 000 3,14158310432646

1 000 000 3,14159169866051

10 000 000 3,14159255809590

100 000 000 3,14159264498239

1 000 000 000 przekracza precyzjęliczb podwójnejprecyzji (double)!

Page 30: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metoda Eulera

Demo

Page 31: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metody obliczania

• Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html

– szereg Madhava’ego, Gregory’ego, Reihe’a i Leibniza (1671):

– szereg Abrahama Sharpa (1717):

0

...7

1

5

1

3

11

12

)1(

4 i

i

i

0

2/1

12

3)1(2

i

ii

i

Page 32: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html

Metody obliczania

0

...11

1

9

1

7

1

5

1

3

11

14

)1(

34

)1(

4

2

i

ii

ii

...876

1

654

1

432

1

423222

)1(

4

3

0

i

i

iii

...9

1

4

11

1

6 12

2

n

i i

...25

1

9

11

12

1

8 12

2

n

i i

Page 33: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Inne szeregi: http://mathworld.wolfram.com/PiFormulas.html

- Szereg Wallisa

- Iloczyn Wallisa (1655)

Metody obliczania

...15

2

3

22...

120

82

6

41

1

21

!12

2)!(

0

12

i

i

i

i

...9

8

7

8

7

6

5

6

5

4

3

4

3

2

1

2

14

4

2 2

2

0

i

ii

Page 34: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Metody używane w XX wieku: D.H. Bailey, J.M. Borwein, P.B. Borwein, S. Plouffe The Quest for Pi (1996)

- Algorytm iteracyjny Salamina i Brenta (1976)

Ustalamy: , ,

Dla k=1,2,3,… obliczamy

Metoda iteracyjna Salamina-Brenta

10 a 210 b 210 s

211

kkk

baa

11 kkk bab

22kkk bac

kk

kk css 21 k

kk s

ap

22

pk zbiega do kwadratowo,czyli każda iteracja podwaja ilość prawidłowych cyfr.Jeden z algorytmów używanych do bicia rekordów

ilości policzonych cyfr (obliczenia komputerowe)

Page 35: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Algorytm braci Borwein (1985):ciąg zbiegający do kubicznie

• Algorytm dwukwadratowy braci Borwein uż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

Page 36: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Yasumasa Kanada w swoim biurze

Metody iteracyjne braci Borwein

Page 37: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Metody iteracyjne braci Borwein

Źródło: D.H. Bailey, J.M. Borwein, P.B. Borwein, S. Plouffe The Quest for Pi (1996)

Page 38: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Wartość liczby

• Wartość : 3,243F6 A8885 A308D 31319 8A2E0 37073 44A40 93822 299F3 1D008 2EFA9 8EC4E 6C894 52821 E638D 1377B E5466 CF34E 90C6C C0AC2 9B7C9 7C50D D3F84 D5B5B 54709 17921 6D5D9 8979F B1BD1 310BA 698DF B5AC2 FFD72 DBD01 ADFB7 B8E1A FED6A 267E9 6BA7C 9045F 12C7F 9924A 19947 B3916 CF708 …

Page 39: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Niepewna nazwa: ang. spigot algoritm (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: , e, , itp.

• Algorytmy te można zaimplementować bez liczb rzeczywistych (tylko liczby całkowite)

Algorytmy kurkowe(?)

2

Page 40: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Do policzenia 5000 cyfr liczby potrzeba tylko 600 000 000 operacji na liczbach całkowitych!

• Koszt obliczenia n-tej cyfry nie zależy od n.

• Algorytm kurkowy dla liczby toalgorytm Baileya-Borweina-Plouffe’a (BBP; 1995, 1997, 2003) bazujący na wzorze:

• Pozwala na znalezienie konkretnej serii cyfr

Algorytmy kurkowe(?)

0 68

1

58

1

48

2

18

4

16

1

ii iiii

Page 41: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Algorytm BBP

David Bailey Peter Borwein Simon Plouffe

Page 42: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Przygotowania:

Algorytm BBP

0 68

1

58

1

48

2

18

4

16

1

ii iiii

0 8

1

16

1)(

ii ji

jS

)6()5()4(2)1(4 SSSS

Page 43: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

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

Algorytm BBP

ll nn 1010 l*10^n – trunc(l*10^n)

n

n l

10

10

10000* – (int)(10000*) = 0,9265358979

(int)(10000*) / 10000 = 3,1415

trunc(l*10^n) / 10^n

l*10^n % 11 mod 10 ln

Page 44: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Aby obliczyć n-tą cyfrę liczby lw reprezentacji heksydecymalnej należy:

• Aby zaokrąglić liczbę l do n cyfr po przecinku:

Algorytm BBP

ll nn 1616 l*16^n – trunc(l*16^n)

n

n l

16

16

65536* – (int)(65536*) = 0,6A8885A308D31319

(int)(65536*) / 65536 = 3,243F

trunc(l*16^n) / 16^n

l*16^n % 11 mod 16 ln

Page 45: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Aby obliczyć n-tą cyfrę liczby lw reprezentacji heksydecymalnej należy:

• Aby zaokrąglić liczbę l do n cyfr po przecinku:

Algorytm BBP

ll nn 1010 l*10^n – trunc(l*10^n)

n

n l

10

10

10000* – (int)(10000*) = 0,6A8885A308D31319

(int)(10000*) / 10000 = 3,243F

trunc(l*10^n) / 10^n

l*10^n % 11 mod 10 ln

Page 46: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

• Cyfry sum S( j) począwszy od n-tej

Algorytm BBP

0 8

1

16

1)(

ii ji

jS

100 8

16

8

8mod16

8

16)(16

ni

inn

i

in

i

inn

jiji

ji

jijS

część ułamkowa

Bardzo szybko zbieżny szereg(sprawdzamy tylko, czy nie zmienia się ostatnia cyfra serii)

Obliczanie potęg za pomocą algorytmu szybkiego potęgowania dla l. całkowit.(exponentiation by squaring)

Wartość od n-tej cyfry HEX

)6()5()4(2)1(4 SSSS

Page 47: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Algorytm BBP

Demo

Page 48: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Po co tak dokładnie liczyć przybliżenia ?

Motywacja

Page 49: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Po co tak dokładnie liczyć przybliżenia ?

Motywacja

Page 50: Jacek Matulewski Zakład Mechaniki Kwantowej Instytut Fizyki, UMK 14 marca 2011

Koniec

• Wartość : 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 …