Dokªadna arytmetyka liczb rzeczywistych w j zyku Python

Podobne dokumenty
2 Liczby rzeczywiste - cz. 2

1 Bª dy i arytmetyka zmiennopozycyjna

Materiaªy do Repetytorium z matematyki

1. Przedstaw w postaci algebraicznej liczby zespolone: 2. Narysuj zbiory punktów na pªaszczy¹nie:

Informacje pomocnicze:

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Informacje pomocnicze

10. arccos 3 + 4x, 11. tg sin cos x, 12. arcctg x ctg 2x, arcsin(2x 1) arcsin 2x 1, 21. sin2 x 2 1,

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Arytmetyka zmiennopozycyjna

Lab. 02: Algorytm Schrage

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

1 Funkcje elementarne

RAPORT Z BADAŃ WŁASNYCH OPRACOWANIE BIBLIOTEKI DOKŁADNYCH OBLICZEŃ NUMERYCZNYCH W JĘZYKU PYTHON

Rachunek ró»niczkowy funkcji jednej zmiennej

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

Zbiory i odwzorowania

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Metody numeryczne. Wst p do metod numerycznych. Dawid Rasaªa. January 9, Dawid Rasaªa Metody numeryczne 1 / 9

Analiza Matematyczna MAT1317

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Funkcje Andrzej Musielak 1. Funkcje

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

Funkcje, wielomiany. Informacje pomocnicze

Indeksowane rodziny zbiorów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Caªkowanie numeryczne - porównanie skuteczno±ci metody prostokatów, metody trapezów oraz metody Simpsona

Metody numeryczne i statystyka dla in»ynierów

f(x) f(x 0 ) i f +(x 0 ) := lim = f(x 0 + x) f(x 0 ) wynika ci gªo± funkcji w punkcie x 0. W ka»dym przypadku zachodzi:

sin x 1+cos 2x. 3. Znajd¹ okres podstawowy funkcji: 6) f(x) = cos(4πx + 2), 8) f(x) = cos 2 x, 9) f(x) = tg πx 4) f 1 ([1, 9]), 5) f ([ 1, 1]),

Metody numeryczne i statystyka dla in»ynierów

Podstawy logiki i teorii zbiorów wiczenia

Interpolacja Lagrange'a, bazy wielomianów

Zbiory ograniczone i kresy zbiorów

Przykªady problemów optymalizacji kombinatorycznej

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Funkcja kwadratowa, wielomiany oraz funkcje wymierne

Metody numeryczne i statystyka dla in»ynierów

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Kurs z matematyki - zadania

XVII Warmi«sko-Mazurskie Zawody Matematyczne

Statystyka opisowa. Wykªad II. Elementy statystyki opisowej. Edward Kozªowski.

x y x y x y x + y x y

1 Metody iteracyjne rozwi zywania równania f(x)=0

Algebra Liniowa 2. Zadania do samodzielnych wicze«wydziaª Elektroniki, I rok Karina Olszak i Zbigniew Olszak

Mathematica - podstawy

Podstawy matematyki dla informatyków

CAŠKA NIEOZNACZONA. Politechnika Lubelska. Z.Šagodowski. 18 lutego 2016

Funkcje wielu zmiennych

Programowanie i struktury danych 1 / 44

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Wst p do sieci neuronowych 2010/2011 wykªad 7 Algorytm propagacji wstecznej cd.

Przetwarzanie sygnaªów

Matematyka ETId I.Gorgol. Funkcja złożona i odwrotna. Funkcje

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

Funkcje jednej zmiennej. Granica, ci gªo±. (szkic wykªadu)

Zestaw 1 ZESTAWY A. a 1 a 2 + a 3 ± a n, gdzie skªadnik a n jest odejmowany, gdy n jest liczb parzyst oraz dodawany w przeciwnym.

Opis programu do wizualizacji algorytmów z zakresu arytmetyki komputerowej

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI

EGZAMIN MATURALNY Z MATEMATYKI CZERWIEC 2012 POZIOM PODSTAWOWY. Czas pracy: 170 minut. Liczba punktów do uzyskania: 50 WPISUJE ZDAJĄCY

Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).

Funkcje wielu zmiennych

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

Funkcje. Część pierwsza. Zbigniew Koza. Wydział Fizyki i Astronomii

Semestr letni 2014/15

Matematyka I. BJiOR Semestr zimowy 2018/2019 Wykład 2

Liniowe równania ró»niczkowe n tego rz du o staªych wspóªczynnikach

1. Wprowadzenie do C/C++

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Matematyka 1 (Wydziaª Architektury) Lista 1 - funkcje elmenetarne. 2. Rozwi za nast puj ce równania lub nierówno±ci:

Liczby zespolone Pochodna Caªka nieoznaczona i oznaczona Podstawowe wielko±ci zyczne. Repetytorium z matematyki

Ÿ1 Oznaczenia, poj cia wst pne

Programowanie Delphi obliczenia, schematy blokowe

EGZAMIN MATURALNY Z MATEMATYKI

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

7. OPRACOWYWANIE DANYCH I PROWADZENIE OBLICZEŃ powtórka

Przy Matlabie istnieje duże społeczność wymieniająca się plikami, programami i poradami

Wielomiany. El»bieta Sadowska-Owczorz. 19 listopada 2018

Obliczenia Symboliczne

Wybrane poj cia i twierdzenia z wykªadu z teorii liczb

III. Funkcje rzeczywiste

AM II /2019 (gr. 2 i 3) zadania przygotowawcze do I kolokwium

Wst p do sieci neuronowych, wykªad 14 Zespolone sieci neuronowe

Lista 1 - Kilka bardzo prostych funkcji. Logarytm i funkcja wykªadnicza

Czas pracy 170 minut

Metody dowodzenia twierdze«

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Rozdziaª 7. Rozwi zywanie równa«nieliniowych. 7.1 Funkcja octave'a fzero()

Liniowe zadania najmniejszych kwadratów

Matematyka dyskretna dla informatyków

PAKIET MathCad - Część III

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

Podstawy nauk przyrodniczych Matematyka Wstęp

Macierze i Wyznaczniki

Macierze. Dziaªania na macierzach. 1. Niech b d dane macierze , D = , C = , B = 4 12 A = , F = , G = , H = E = a) Obliczy A + B, 2A 3B,

Logika dla matematyków i informatyków Wykªad 1

Transkrypt:

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python Marcin Ciura Zakªad Oprogramowania 28 marca 2007 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 1 / 24

Plan referatu 1 Arytmetyka liczb rzeczywistych w j zyku Python 2 Przykªad zastosowania dokªadnej arytmetyki 3 Obliczanie leniwe 4 Uªamki ªa«cuchowe 5 Podstawowe operacje arytmetyczne na uªamkach ªa«cuchowych 6 Rozstrzyganie nierozstrzygalnego 7 Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych 8 Podsumowanie Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 2 / 24

Arytmetyka liczb rzeczywistych w j zyku Python Dost pne implementacje Arytmetyka zmiennoprzecinkowa: typ float, biblioteka standardowa math Arytmetyka staªoprzecinkowa: typ i biblioteka standardowa Decimal Arytmetyka wielokrotnej precyzji: biblioteka dodatkowa gmpy Wspólne cechy Obliczenia s szybkie Wyst puj bª dy zaokr gle«marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 3 / 24

Arytmetyka liczb rzeczywistych w j zyku Python Omawiana nowa implementacja Cechy Dokªadna arytmetyka: typ i biblioteka cf (od continued fractions uªamki ªa«cuchowe) Brak bª dów zaokr gle«nie za darmo: obliczenia s wolniejsze Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 4 / 24

Przykªad zastosowania dokªadnej arytmetyki Teoria chaosu Odwzorowanie logistyczne w przedziale (0, 1) x 0 = 0,671875 x n+1 = 4x n (1 x n ) Wyniki liczbowe n x n (dokªadne) x n (float) 0 0,671875 0,671875 1 0,8818359375 0,8818359375 2 0,416805267334 0,416805267334 3 0,972314545827 0,972314545827 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 5 / 24

Przykªad zastosowania dokªadnej arytmetyki Wyniki liczbowe (c.d.) n x n (dokªadne) x n (float) 49 0,806174876108 0,804383930035 50 0,625027780961 0,629401692545 51 0,937472215952 0,933020807866 52 0,234472241082 0,249971919821 53 0,717980036976 0,749943836487 54 0,809938813921 0,750112314408 55 0,615751726501 0,749775320725 56 0,946406151249 0,750449156627 57 0,202886192510 0,74910087978 58 0,646893541595 0,751795006772 59 0,913689149751 0,746397098259 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 6 / 24

Obliczanie leniwe (lazy evaluation) Zasada dziaªania Wykonuje si tylko tyle oblicze«, ile jest w danej chwili potrzebne (w odró»nieniu od obliczania gorliwego) Podczas tworzenia wyra»enia nie wykonuj si»adne obliczenia Potem mo»na wyci ga z wyra»enia tyle cyfr, ile si chce Podwyra»enia dynamicznie dopasowuj swoj dokªadno± tak,»e zawsze dostajemy prawidªowe cyfry wyniku Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 7 / 24

Uªamki ªa«cuchowe Algorytm Euklidesa 96 = 1 65 + 31 65 = 2 31 + 3 31 = 10 3 + 1 3 = 3 1 96 65 = 1 + 1 2 + 1 = [1; 2, 10, 3] 10 + 1 3 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 8 / 24

Uªamki ªa«cuchowe Reprezentacja kanoniczna a = [a 0 ; a 1, a 2,..., a k ], gdzie ogniwo a 0 jest liczb caªkowit, a dalsze ogniwa a n s liczbami naturalnymi wi kszymi od 0 Niektóre wªasno±ci Liczbom wymiernym odpowiadaj sko«czone uªamki ªa«cuchowe, a niewymiernym niesko«czone uªamki ªa«cuchowe Obci cie uªamka ªa«cuchowego daje najlepsze mo»liwe przybli»enie liczby, np. dla π: 3, 22/7, 333/106, 355/113,... (Lochs) Dla prawie wszystkich liczb do przedstawienia n cyfr dziesi tnych potrzeba asymptotycznie 0,97027n ogniw, np. 1000 cyfr dziesi tnych π odpowiada 971 ogniwom Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 9 / 24

Uªamki ªa«cuchowe Przykªady rozwini liczb niewymiernych w uªamki ªa«cuchowe 2 = [1; 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,...] 2 = [ 2; 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2,...] 3 = [1; 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1,...] e = [2; 1, 2, 1, 1, 4, 1, 1, 6, 1, 1, 8,...] e 1/2 = [1; 1, 1, 1, 5, 1, 1, 9, 1, 1, 13, 1,...] tan(1/2) = [0; 1, 1, 4, 1, 8, 1, 12, 1, 16, 1, 20,...] π = [3; 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1,...] 3 2 = [1; 3, 1, 5, 1, 1, 4, 1, 1, 8, 1, 14,...] Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 10 / 24

Podstawowe operacje arytmetyczne na uªamkach ªa«cuchowych Funkcja bihomograczna z = axy + bx + cy + d exy + f x + g y + h = a b c d e f g h Przypadki szczególne x + y = xy = 0xy + 1x + 1y + 0 0xy + 0x + 0y + 1 1xy + 0x 0y + 0 0xy + 0x + 0y + 1 x y = x/y = 0xy + 1x 1y + 0 0xy + 0x + 0y + 1 0xy + 1x 0y + 0 0xy + 0x + 1y + 0 Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 11 / 24

Podstawowe operacje arytmetyczne na uªamkach ªa«cuchowych Leniwe obliczanie ogniw funkcji bihomogracznej (Gosper) Je±li a e = b f = c g = d h = r, to emituj ogniwo r i zmie«e f g h warto±ci wspóªczynników na a er b fr c gr d hr W przeciwnym razie je±li b a > c a f e g e, to pobierz ogniwo p z x c + ap d + bp a b i zmie«warto±ci wspóªczynników na g + ep h + fp e f W przeciwnym razie pobierz ogniwo q z y i zmie«warto±ci b + aq a d + cq c wspóªczynników na f + eq e h + gq g Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 12 / 24

Rozstrzyganie nierozstrzygalnego Problem [1; 1, 2, 2, 4, 3, 3,...] [1; 1, 2, 2, 4, 3, 3,...]? Równo± liczb niewymiernych jest nierozstrzygalna w sko«czonej liczbie kroków Problem ten wyst puje, je±li argumenty operacji s niewymierne, a wynik jest prawdopodobnie wymierny Rozwi zanie Je±li algorytm Gospera wykonaª i max iteracji z jednakowymi warto±ciami a e, b f, c g i d h nie emituj c»adnego ogniwa, to emituje max ( a e, b f, c g, d ) h i (znak ko«ca uªamka ªa«cuchowego) Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 13 / 24

Rozstrzyganie nierozstrzygalnego Prawdopodobie«stwo bª du Je±li i max = 100, to na mocy twierdze«lochsa i Gaussa-Ku¹mina prawdopodobie«stwo omyªkowego obci cia uªamka ªa«cuchowego, który powinien by niesko«czony jest mniejsze ni» 1,5 10 31 liczba ogniw Wymierne warto±ci funkcji o argumentach niewymiernych Np. przy obliczaniu warto±ci cos π/3 albo ln e wyst puje analogiczny problem rozwi zanie jest podobne (nie omawiane w tym referacie) Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 14 / 24

Rozstrzyganie nierozstrzygalnego Prawie jak system algebry komputerowej >>> (sqrt(2) - 1)*(sqrt(2) + 1) 1. >>> sqrt(5 + 2*sqrt(6)) == sqrt(2) + sqrt(3) True >>> [sin(x)**2 + cos(x)**2 for x in... [pi*random(), pi*random(), pi*random()]] [1., 1., 1.] >>> [cos(3*x)/cos(x) == cos(x)**2-3*sin(x)**2 for x in... [pi*random(), pi*random(), pi*random()]] [True, True, True] Prosz spróbowa tego samego z typem float Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 15 / 24

Rozstrzyganie nierozstrzygalnego Prawie jak system algebry komputerowej (c.d.) >>> [x == x + cf(10)**-1000 for x in... [cf(random()), cf(random()), cf(random())]] [False, False, False] Ale tylko prawie >>> sqrt(2) == sqrt(2) + cf(10)**-1000 True Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 16 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Ró»ne niezb dne a proste funkcje Konstruktor, tworz cy uªamki ªa«cuchowe z liczb caªkowitych, zmiennoprzecinkowych i uªamków zwykªych Funkcje konwertuj ce uªamki ªa«cuchowe na liczby caªkowite, zmiennoprzecinkowe i napisy Oprócz czterech dziaªa«arytmetycznych równie» operator reszty z dzielenia % i operator zmiany znaku - Operatory porównania: <, <=, ==,!=, >=, > Funkcja warto±ci bezwzgl dnej abs() Jeszcze kilka pomniejszych funkcji Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 17 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych To»samo±ci sin x = cos x = ( ) / ( ) 2 tan x 1 + tan 2 x ( 2 ) / ( 2 ) 1 tan 2 x 1 + tan 2 x 2 2 arcsin x = arctan Podstawowe funkcje i π x 1 x 2 arccos x = π/2 arcsin x x y = e y ln x log 10 x = ln x/ ln 10 sqrt(), exp(), tan(), log(), atan(), pi Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 18 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Leniwe obliczanie pierwiastka kwadratowego Metoda Newtona (szybsza ni» x 1/2 = e (ln x)/2 ) a := caªkowitoliczbowe przybli»enie x Tak dªugo, jak ogniwa liczb a i x s równe, emituj je; a w przypadku ich nierówno±ci oblicz nast pne przybli»enie a := 1 2 Zbie»no± kwadratowa ( ) a + x a Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 19 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Leniwe obliczanie warto±ci funkcji e x Leniwie rozwijaj x w szereg Ostrogradskiego-Sierpi«skiego x = x + 1/q 1 1/q 2 + 1/q 3 1/q 4 +..., pami taj c dwie ostatnie sumy cz ±ciowe s k 1 i s k e 1/q = [1; q 1, 1, 1, 3q 1, 1, 1, 5q 1,...] e x+y = e x e y, e x y = e x /e y Tak dªugo, jak ogniwa liczb e s k 1 i e s k s równe, emituj je; w przypadku ich nierówno±ci oblicz nast pn sum cz ±ciow s k+1 Zbie»no± kwadratowa (w szeregu O-S q k > q 2 k 1 ) Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 20 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Leniwe obliczanie warto±ci tangensa Leniwie rozwijaj x w szereg Ostrogradskiego-Sierpi«skiego, pami taj c dwie ostatnie sumy cz ±ciowe s k 1 i s k tan(1/q) = [0; q 1, 1, 3q 2, 1, 5q 2, 1, 7q 2,...] tan x ± tan y tan(x ± y) = 1 tan x tan y Tak dªugo, jak ogniwa liczb tan s k 1 i tan s k s równe, emituj je; w przypadku ich nierówno±ci oblicz nast pn sum cz ±ciow s k+1 Zbie»no± kwadratowa Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 21 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Leniwe obliczanie warto±ci logarytmu naturalnego Leniwie znajduj sumy cz ±ciowe szeregu Ostrogradskiego-Sierpi«skiego tak,»eby e s k 1 < x e s k lub e s k 1 > x e s k Tak dªugo, jak ogniwa liczb s k 1 i s k s równe, emituj je; w przypadku ich nierówno±ci oblicz nast pn sum cz ±ciow s k+1 Zbie»no± kwadratowa Leniwe obliczanie warto±ci arcus tangensa Tak, jak logarytmu naturalnego, tylko z tan s k 1 i tan s k zamiast e s k 1 i e s k Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 22 / 24

Funkcje matematyczne operuj ce na uªamkach ªa«cuchowych Leniwe obliczanie warto±ci π Uogólniony uªamek ªa«cuchowy π = 3 + 6 + 6 + 1 9 25 6 + 49 6 + 81... Zbie»no± liniowa, ale ten algorytm okazaª si w praktyce szybszy od algorytmów o wy»szym rz dzie zbie»no±ci Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 23 / 24

Podsumowanie Wyniki praktyczne Dziaªaj ca biblioteka implementuj ca dokªadn arytmetyk liczb rzeczywistych Wyniki teoretyczne Nowe algorytmy obliczania warto±ci funkcji wykªadniczej, logarytmów oraz funkcji trygonometrycznych i cyklometrycznych uªamków ªa«cuchowych, oparte na rozwini ciu w szereg Ostrogradskiego-Sierpi«skiego Plany na przyszªo± Zaimplementowanie algorytmów w j zyku C++ Marcin Ciura (Zakªad Oprogramowania) Dokªadna arytmetyka liczb rzeczywistych 28 marca 2007 24 / 24