Rzut oka na współczesną matematykę spotkanie 3: jak liczy kalkulator i o źródłach chaosu P. Strzelecki pawelst@mimuw.edu.pl Instytut Matematyki, Uniwersytet Warszawski MISH UW, semestr zimowy 2011-12 P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 1 / 8
O co chodzi? Zrozumieć, jaką metodą obliczane są (np.) pierwiastki kwadratowe na kalkulatorze; Poznać zalety i szybkość tej metody; Zobaczyć, że nadaje się ona świetnie do rozwiązywania wielu równań typu f(x) = 0; Dowiedzieć się, że gdy ta metoda przestaje działać, to z hukiem i trzaskiem. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 2 / 8
Jak rozwiązać, gdy nie umiemy rozwiązać? Czasem wiadomo, że jakieś równanie ma rozwiązanie; mimo to rozwiązania nie można określić gotowym wzorem. Przykład. Funkcja ciągła f, gdzie f(0) < 0 < f(1), na pewno ma pierwiastek w przedziale (0, 1). Rysunek: równanie x cos x = 0 ma pierwiastek x = 0,739085... (0, 1). P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 3 / 8
Pierwiastkowanie na kalkulatorze Proszę pomyśleć nad odpowiedziami na następujące pytania: Ogólniej: Ile różnych liczb potrafi wyświetlić kalkulator? Jak szybko kalkulator oblicza pierwiastki? A może kalkulator pamięta wyniki wszystkich działań? czy obliczanie dobrych przybliżeń liczby n można łatwo sprowadzić do wykonywania 4 działań arytmetycznych? P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 4 / 8
Naiwne rozwiązywanie równań f(x) = 0 Początek. Wiemy, że pierwiastek równania f(x) = 0 jest w przedziale (np.) [0, 1], gdyż f(0) < 0 < f(1). Dalsze kroki. Przedział, w którym jest pierwiastek f, dzielimy na 2 równe części. Sprawdzamy, jaką wartość przybiera funkcja f w środku przedziału. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 5 / 8
Naiwne rozwiązywanie równań f(x) = 0 Początek. Wiemy, że pierwiastek równania f(x) = 0 jest w przedziale (np.) [0, 1], gdyż f(0) < 0 < f(1). Dalsze kroki. Przedział, w którym jest pierwiastek f, dzielimy na 2 równe części. Sprawdzamy, jaką wartość przybiera funkcja f w środku przedziału. Efekt. Po jednym kroku znamy rozwiązanie równania z dokładnością do 1 2, po dwóch z dokładnością do 1 4 itd. Wada. Dokładność obliczeń rośnie powoli. Po 10 krokach znamy rozwiązanie równania z dokładnością 1/2 10 0, 001. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 5 / 8
Naiwne rozwiązywanie równań f(x) = 0 Początek. Wiemy, że pierwiastek równania f(x) = 0 jest w przedziale (np.) [0, 1], gdyż f(0) < 0 < f(1). Dalsze kroki. Przedział, w którym jest pierwiastek f, dzielimy na 2 równe części. Sprawdzamy, jaką wartość przybiera funkcja f w środku przedziału. Efekt. Po jednym kroku znamy rozwiązanie równania z dokładnością do 1 2, po dwóch z dokładnością do 1 4 itd. Wada. Dokładność obliczeń rośnie powoli. Po 10 krokach znamy rozwiązanie równania z dokładnością 1/2 10 0, 001. Istnieją algorytmy znacznie lepsze. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 5 / 8
Obliczanie n opis algorytmu. Dane: liczba n N. Szukane: n, kilka(naście) cyfr po przecinku. Algorytm. Niech f(x) = x 2 + n 2x. Wybieramy jakikolwiek punkt startowy x 0 > 0 i obliczamy x 1 = f(x 0 ) P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 6 / 8
Obliczanie n opis algorytmu. Dane: liczba n N. Szukane: n, kilka(naście) cyfr po przecinku. Algorytm. Niech f(x) = x 2 + n 2x. Wybieramy jakikolwiek punkt startowy x 0 > 0 i obliczamy x 1 = f(x 0 ), x 2 = f(x 1 ) P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 6 / 8
Obliczanie n opis algorytmu. Dane: liczba n N. Szukane: n, kilka(naście) cyfr po przecinku. Algorytm. Niech f(x) = x 2 + n 2x. Wybieramy jakikolwiek punkt startowy x 0 > 0 i obliczamy x 1 = f(x 0 ), x 2 = f(x 1 ), x 3 = f(x 2 ) P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 6 / 8
Obliczanie n opis algorytmu. Dane: liczba n N. Szukane: n, kilka(naście) cyfr po przecinku. Algorytm. Niech f(x) = x 2 + n 2x. Wybieramy jakikolwiek punkt startowy x 0 > 0 i obliczamy x 1 = f(x 0 ), x 2 = f(x 1 ), x 3 = f(x 2 ), x 4 = f(x 3 ),... Efekt: Liczby x k to coraz lepsze przybliżenia n. Z grubsza, liczba cyfr znaczących podwaja się z każdym krokiem. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 6 / 8
Obliczanie n opis algorytmu. Dane: liczba n N. Szukane: n, kilka(naście) cyfr po przecinku. Algorytm. Niech f(x) = x 2 + n 2x. Wybieramy jakikolwiek punkt startowy x 0 > 0 i obliczamy x 1 = f(x 0 ), x 2 = f(x 1 ), x 3 = f(x 2 ), x 4 = f(x 3 ),... Efekt: Liczby x k to coraz lepsze przybliżenia n. Z grubsza, liczba cyfr znaczących podwaja się z każdym krokiem. Uwaga: te obliczenia wymagają tylko dzieleń, mnożeń i dodawań. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 6 / 8
Źródło tego algorytmu: metoda stycznych Metoda stycznych Newtona pozwala (w przybliżeniu) rozwiązywać wiele równań typu F(x) = 0. Żeby znaleźć rozwiązanie równania F(x) = 0 w przedziale [a, b], gdzie F(a) < 0 < F(b) i F jest rosnąca oraz wypukła, 1 rysujemy styczną do wykresu w tym końcu przedziału, gdzie wykres jest stromszy; 2 znajdujemy miejsce zerowe stycznej; 3 zmniejszamy przedział, w którym jest pierwiastek równania; 4 powtarzamy wszystko dla mniejszego przedziału. Dla F(x) = x 2 n to algorytm opisany wcześniej. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 7 / 8
Wszytko to bardzo piękne, ale... Czasem równanie f(x) = 0 ma kilka nieznanych pierwiastków; w dodatku, f może nie być rosnąca i wypukła...... wtedy wszystko zależy od tego, jak wybierzemy punkt startowy, od którego zaczynamy iteracje! P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 8 / 8
Wszytko to bardzo piękne, ale... Czasem równanie f(x) = 0 ma kilka nieznanych pierwiastków; w dodatku, f może nie być rosnąca i wypukła...... wtedy wszystko zależy od tego, jak wybierzemy punkt startowy, od którego zaczynamy iteracje! Bardzo trudne pytanie: Jaki jest zbiór tych wartości startowych x 0, dla których metoda Newtona doprowadzi nas do konkretnego pierwiastka równania f(x) = 0? Na to nie ma prostej odpowiedzi już wtedy, gdy f jest wielomianem stopnia 3. P. Strzelecki pawelst@mimuw.edu.pl (IM) Rzut oka... 3. Metoda stycznych 17.10.2011 8 / 8