06. Liczby rzeczywiste
Contents
06. Liczby rzeczywiste#
Treści kształcenia. Szkic teorii aksjomatycznej liczb rzeczywistych, w tym kresy, zapis dziesiętny liczb rzeczywistych. Liczby wymierne i niewymierne. Sprawdzanie niewymierności liczb. Potęga o wykładniku rzeczywistym. Pierwiastek. Uwagi o arytmetyce komputerowej.
Efekty kształcenia: Student potrafi określić ograniczenia arytmetyki komputerowej w stosunku do pełnej teorii aksjomatycznej liczb rzeczywistych i dobrać odpowiednie metody dla unikania problemów. Potrafi też sprawdzać wykonalność obliczeń w pelnej precyzji. Potrafi sprawdzić wymierność lub niewymierność pewnych typów liczb rzeczywistych.
Wstęp#
Rozpocznijmy od uwagi: w szkole średniej ‘’niby’’ posługiwaliśmy się liczbami rzeczywistymi i każdy wie jak liczyć, ale czy na pewno? Co to w ogóle są liczby rzeczywiste? Nie było (na szczęście!!) formalnej definicji i jakoś sobie radziliśmy. No, może nie do końca, bo po prostu w szkole unikano problemów… Ale - w informatyce wszystko się ujawni!
Dlaczego? Z pomocą komputera obliczmy na ogół wielkości wynikające z potrzeb prowadzenia takich obliczeń ‘’jak na kartce’’. Ale tak się nie da! Postaramy się krótko przedstawić jak my liczymy na liczbach rzeczywistych, a jak potrafi to zrobić komputer.
Mamy dwie możliwości: albo prowadzimy obliczenia komputerowe na liczbach całkowitych za pomocą dodawania i mnożenia i wówczas - w pewnym uproszczeniu (w ograniczonym zakresie wielkości) - możemy liczyć na wyniki dokładne, albo ‘’udajemy’’ liczby rzeczywiste i wszystkie obliczenia obarczone są pewnym przybliżeniem (obliczenia numeryczne)! O tym dlaczego - za chwilę. Ale to dlatego położymy nacisk na przybliżanie wartości rzeczywistych za pomocą operacji dodawania i mnożenia liczb całkowitych i to dlatego takie algorytmy są najbardziej oczekiwane. O arytmetyce komputerowej precyzyjnie - nieco później, za to od razu zwrócimy uwagę na wszelkie trudności w reprezentowaniu liczb rzeczywistych i obliczeniach komputerowych. Coś, co ‘’na kartce’’ będzie wyglądało dobrze, nie musi być dobrym algorytmem obliczeniowym na komputerze! Właśnie dlatego, że nie liczymy na liczbach rzeczywistych!
Nawet obliczanie liczb rzeczywistych z zadaną precyzją i w rozsądnym czasie, to poważny problem. Interesuje nas przecież zbiór liczb zawierający m.in. wszystkie możliwe długości odcinków (np. przekątna kwadratu o boku 1), czy krzywych (np. w grafice komputerowej!), a to już istotne… Może warto też wspomnieć poszukiwania pierwiastków trójmianu kwadratowego (w szkole), a ogólniej rozwiązywanie równań - choćby wielomianowych. To będzie bardzo istotny aspekt obliczeń komputerowych, a w tym przypadku na ogół nie wiemy czy, ile i jakich rozwiązań poszukiwać. A niewymierne dla uczniów to były pierwiastki (niektóre) i liczba \(\pi\). To za mało…
Przykład 1. Ludziom pewien opis liczb nie sprawi problemu ze zrozumieniem, a co z komputerem? Niech
Wiemy co będzie dalej po przecinku? Mamy jedynki i rosnące (o 1) liczby zer. To z pewnością jesdt liczba rzeczywista. Ale czy wymierna? Niemożliwe - wiemy, że liczby wymierne mają rozwinięcia dziesiętne skończone lub okresowe, a tu na pewno nie zachodzi żaden z tych przypadków. Czy i jak można prowadzić obliczenia komputerowe na takich liczbach? Niestety - dokładnych rachunków się nie da! Będziemy pamiętali, że liczby niewymierne są potrzebne, ale do obliczeń komputerowych trzeba o nie ``zadbać’’.
Przykład 2. A co z liczbami wymiernymi? Na ogół w literaturze jest napisane, że możemy na nich precyzyjnie operować na komputerze (poza ‘’zbyt małymi’’ i ‘’zbyt dużymi’’). No to teraz sprawdźmy ułamek
Bez wątpienia to iloraz liczb całkowitych, a więc jest to liczba wymierna. Ale to dobry przykład, by nawet w przypadku działań na liczbach wymiernych na komputerze prowadzić obliczenia na ułamkach zwykłych (!). Gdyby kogoś interesowała postać dziesiętna (dwójkowa), to na komputerze … może być problem. Poza tym - dla uproszczenia mówimy tu o rozwinięciach dziesiętnych, tak naprawdę, to nawet liczby \(0.1\) nie da się dokładnie reprezentować w systemie dwójkowym.
Proszę (samodzielnie - dowolny program) poszukać czy rozwinięcie dziesiętne powyższej liczby jest skończone czy okresowe i jeśli okresowe, to jak długi ma okres? (Odp.: okresowe, ale długości nie podam…) Powodzenia! Dla niecierpliwych kod poniżej…
To teraz zauważmy różnicę pomiędzy działaniem
(liczby w liczniku i mianowniku - całkowite) oraz
(liczby w liczniku i mianowniku - rzeczywiste). To pierwsze działanie będzie wykonane jako
(i to dlatego warto było rozważać algorytmy \(NWD(a,b)\)!). Proszę spojrzeć na wynik i przemyśleć jak jest wykonane drugie z działań.
Można też każdy z ułamków zamienić na dziesietny i dopiero później dodać. Proszę to wszystko też sprawdzić np. w Pythonie…
## obliczanie dlugosci okresu ulamka 1/n
import sys
# funkcja obliczania
def getPeriod(n):
# slownik
mymap = dict()
# zapoczatkowane wartości reszty i jej polozenia
rem = 1
i = 1
pos = 0
# znajdujemy kolejne reszty az do powtorzenia
while True:
# nastepna reszta - widoczne jak zmodyfikować dla reszt w systemach niedziesietnych
rem = (10 * rem) % n
# gdy reszta znajdzie sie w slowniku, to roznica pomiedzy
# biezaca i poprzednia pozycja wystapienia jest dlugoscia okresu
if (rem in mymap):
return (i - mymap[rem])
# gdy nie istnieje dodajemy 'i' do slownika
mymap[rem] = i
i += 1
# a ta linia kodu nigdy nie zostanie wykonana - bo każda liczba wymierna, w tym 1/n
# ma rozwiniecia skonczone lub okresowe!
return sys.maxint
# Tu wstawiamy swoje liczby n
print(getPeriod(3313))
print(getPeriod(7))
3312
6
Zadanie samodzielne: znaleźć rozwinięcie dwójkowe liczby \((0,1)_{10}\).
Ciekawostka: ten banalny problem - myślenie w kategoriach rozwinięć dziesiętnych - doprowadził do dużego problemu w amerykańskim systemie rakietowym Patriot (zliczano impulsy co \(0.1\) sekundy - poprawiono na \(0.125\) - DLACZEGO?).
Uwaga na program:
x=float(0)
while (x!=1):
x+=0.1
print(x)
print("Do tego miejsca nigdy nie docieramy...")
Wniosek: liczb zmiennoprzecinkowych NIE WOLNO przyrównywać do wartości dokładnych!
A zainteresowani (czyli: wszyscy) znajdą więcej o poważnych problemach spowodowanych przez takie błędy zaokrągleń ‘’Błądzić rzeczą nie tylko ludzką… czyli arytmetyka z komputera’’, Łukasz Bodzon
Przykład 3. I jeszcze jedna operacja poznana w szkole średniej - potęga liczby. Mamy dla \(a > 0\), \(m,n \in {\mathbb{N}}\)
i pojawia się pierwszy problem: \(c = b^{\frac{1}{n}}\). Jasne, że chodzi o liczbę \(c\) taką, że \(c^n = b\). Czy tak liczba istnieje? (sprawdzimy) Czy jest wymierna (sprawdzimy)? Jak ma ją obliczyć komputer? A najgorsze przed nami! Co to jest \(a^x\), gdy \(x\) jest liczbą rzeczywistą? Wyjaśnimy…
Ale informatyka interesują obliczenia: jak obliczyć tę liczbę na komputerze? Tam ma być szybko i łatwo :-) Najczęściej chcemy mieć
ale \(p\) nie powinna być niewymierna (bo nie ma dokładnej reprezentacji i powiększamy błąd), jak najprostsza, a najlepiej \(p= 1\)! Dla jakiego \(a\) tak jest? I tu niespodzianka: tak jest dla ‘’specjalnej liczby’’ \(a = e\) (o której wkrótce musimy powiedzieć).
A jak jest dla innych liczb \(a\)?
Pojawi się (lub już jest znany) problem konieczności poszerzenia zbioru liczb rzeczywistych (np. liczby zespolone), ale również w ich przypadku konieczne będzie posługiwanie się liczbami rzeczywistymi i musimy je wcześniej dobrze poznać.
Liczby rzeczywiste.#
W cytowanej literaturze zainteresowani mogą znaleźć różne definicje (konstrukcje) zbioru liczb rzeczywistych, ale one nie będą pomocne w obliczeniach, więc przyjmiemy inny punkt widzenia:
to będzie pewien niepusty zbiór z określonymi w nim dwoma działaniami (dodawania i mnożenia) oraz relacją porządku (''mniejszy'') i gdy spełnione pewne aksjomaty.
Czyli: w ujęciu aksjomatycznym pojęcie zbioru \({\mathbb{R}}\) oraz arytmetyki liczb rzeczywistych stanowi sześć pojęć pierwotnych \(({\mathbb{R}},0,1,+,\cdot,<)\), gdzie \({\mathbb{R}}\) jest pewnym zbiorem, 0 i 1 są elementami \({\mathbb{R}}\) natomiast \(+\) i \(\cdot \) oznaczają działania dwuargumentowe określone w \({\mathbb{R}}\) oraz \(<\) oznacza relację dwuargumentową określoną w \({\mathbb{R}}\). Do tego aksjomaty określają własności tych obiektów.
Aksjomaty.
[A.1] (Przemienność dodawania). Dla wszystkich \(x, y \in {\mathbb{R}}\) zachodzi równość \(x + y = y + x\).
[A.2] (Łączność dodawania). Dla wszystkich \(x, y, z \in {\mathbb{R}}\) zachodzi równość \((x + y) + z = x + (y + z)\).
[A.3] (Element neutralny dodawania). Dla wszystkich \(x \in {\mathbb{R}}\) jest \(x + 0 = x\).
[A.4] (Istnienie elementów przeciwnych). Dla każdego \(x \in {\mathbb{R}}\) istnieje element \(-x \in {\mathbb{R}}\) taki, że \(x + (-x) = 0\).
[A.5] (Przemienność mnożenia). Dla wszystkich \(x, y \in {\mathbb{R}}\) zachodzi równość \(x\cdot y = y\cdot x\).
[A.6] (Łączność mnożenia). Dla wszystkich \(x, y, z \in {\mathbb{R}}\) zachodzi równość \((x\cdot y)\cdot z = x\cdot (y\cdot z)\).
[A.7] (Charakteryzacja jedynki). Dla wszystkich \(x \in {\mathbb{R}}\) jest \(x \cdot 1= x\).
[A.8] (Istnienie elementów odwrotnych). Dla każdego \(x \in {\mathbb{R}}\), \(x \not= \emptyset\), istnieje element \(x^{-1} \in {\mathbb{R}}\) taki, że \(x\cdot x^{-1} = 1\).
[A.9] (Rozdzielność mnożenia względem dodawania). Dla wszystkich \(x, y, z \in {\mathbb{R}}\) zachodzi równość \(x\cdot (y + z) = x\cdot y + x\cdot z\).
[N.1] (Prawo trichotomii). Dla wszystkich \(x, y \in {\mathbb{R}}\) zachodzi dokładnie jedna z trzech możliwości: \(x < y, x = y, y < x\).
[N.2] (Przechodniość). Dla wszystkich \(x, y, z \in {\mathbb{R}}\), jeśli \(x < y\) i \(y < z\), to \(x < z\).
[N.3] (Związki nierówności z działaniami). Dla wszystkich \(x, y, z \in {\mathbb{R}}\): (a) jeśli \(x < y\), to \(x + z < y + z\); (b) jeśli \(x < y\) i \(0 < z\), to \(x\cdot z < y\cdot z\).
plus ważny: Aksjomat ciągłości (Dedekinda, Archimedesa)
[C.1] Każdy niepusty, ograniczony z góry podzbiór \(A \subset {\mathbb{R}}\) ma kres górny \(M = \sup A \in {\mathbb{R}}\).
Nie uczymy się tych aksjomatów na pamięć! W praktyce są wszystkim znane (może poza ostatnim). Jako ciekawostkę podajmy, że zbiór liczb wymiernych spełnia wszystkie aksjomaty - poza aksjomatem ciągłości!
A co szczególnego jest w tym ostatnim aksjomacie? O! Dla informatyka ma on sporo konsekwencji!
Funkcja ‘’entier’’. Jedną z podstawowych konsekwencji aksjomatyki liczb rzeczywistych jest istnienie funkcji ‘’entier’’. Jest ona używana (i użyteczna) w arytmetyce komputerowej (i to mimo braku liczb rzeczywistych w takich obliczeniach).
Definicja. Dla każdej liczby rzeczywistej \(x\) określamy
A jaki związek z aksjomatem? To proste: zbiór liczb całkowitych \(\{ k \in {\mathbb{Z}} : k \leq x \}\) jest ograniczony z góry (przez \(x\)), czyli ma kres górny. Prosty dowód (nie wprost) pokazuje, że ten kres to właśnie \(Ent(x)\) (samodzielne ćwiczenie).
Oczywiście mamy np. \(Ent(5) = 5\), \(Ent(\sqrt{2}) = 1\), \(Ent(-\sqrt{2}) = -2\), \(Ent(\frac{5}{17}) = 0\) itp.
Ćwiczenie 1. wykonać wykresy funkcji \(y = Ent(x)\) oraz \(y = x - Ent(x)\).
Ćwiczenie 2. Teraz już możemy się domyślić jak jest zdefiniowana liczba \(a^x\) przy \(x\) - dowolnym rzeczywistym (niewymiernym). Dla dowolnej liczby rzeczywistej \(x\) rozpatrzmy zbiór liczb wymiernych
jako podzbiór \({\mathbb{R}}\). Jest on ograniczony z góry, czyli ma kres górny (niekoniecznie liczba wymierna, bo przypomnijmy, że aksjomat ciągłości jest spełniony dla liczb rzeczywistych - a dla wymiernych nie jest prawdziwy) będący liczbą rzeczywistą. }
Pełen dowód - w literaturze np. [1.].
I kolejna ważna konsekwencja aksjomatu ciągłości
Twierdzenie. (zasada Archimedesa) Dla dowolnego \(x \in {\mathbb{R}}\) oraz \(a > 0\) istnieje liczba naturalna \(n \in {\mathbb{N}}\) taka, że
A gdzie z tego korzystamy? M.in. z tego wynika istnienie zapisu dziesiętnego liczb rzeczywistych (o innych podstawach także). Dowód - pozostawiamy zainteresowanym. Także gęstość zbioru liczb wymiernych w \({\mathbb{R}}\) jest jej konsekwencją. Poza tym wynika z tego, że zbiór \({\mathbb{N}}\) nie jest ograniczony z góry, czy właśnie fakt istnienia części całkowitej z liczby \(x \in {\mathbb{R}}\) - istnieje dokładnie jedna liczba naturalna \(n \in {\mathbb{N}}\) taka, że
Kolejna ważna własność wykorzystywana w oparciu o aksjomat Archimedesa: dla dowolnej liczby \(\varepsilon > 0\) istnieje liczba naturalna \(n\) taka, że \(\frac{1}{n} < \varepsilon\).
Ćwiczenie samodzielne - wykazać to. Tę własność często wykorzystamy w algorytmach…
No i nareszcie geometryczna intuicja tej zasady jest następująca: jeśli mamy dwa odcinki długości \(x\) i \(y\), to odkładając odcinek długości \(x\) odpowiednią (czyli \(n\)-krotnie)) ilość razy otrzymamy w sumie odcinek o długości większej niż \(y\).
Czy liczby rzeczywiste są potrzebne?
Definicja. Liczby, których nie można przedstawić wzorem \(\frac {\displaystyle l}{\displaystyle m}\), gdzie \(l,m\in \Bbb Z\) oraz \(m\neq 0\) nazywamy liczbami niewymiernymi.
Przykładami liczb niewymiernych są np. liczby \(\pi\), \(\sqrt 2\), \(\sqrt {18}\) i inne. To jednak tylko przykłady! Jeśli ktoś potrzebuje nieco więcej o problemach (typu szkolnego!!): polecam np. ‘’Miniatury Matematyczne’’ tom 11, Z. Bobiński, A. Świątek, J. Macys, ‘’O liczbach niewymiernych’’.
Zadanie 1. Pokażemy, że \(\sqrt{3}\) jest liczbą niewymierną.
Rozwiązanie: Przypomnimy procedurę znaną ze szkoły średniej, a dla pierwiastków najlepszy wybór to
dowód nie wprost.
Przypuśćmy, że jest to liczba wymierna, czyli, że istnieją liczby całkowite względnie pierwsze \(p\) i \(q\) takie, że
Podnosimy obustronnie do kwadratu (formalnie: obie strony mnożymy przez tę sama liczbę…) i mnożymy otrzymane równanie przez \(q^2\):
Lewa strona jrest podzielna przez 3, a więc prawa też musi taka być, ale jeżeli \(3|p^2\), to \(3|p\). To jednak oznacza, że lewa strona musi być podzielna przez 9. Stąd \(3|q^2\), a więc \(3|q\) - sprzeczość, bo liczby \(p\) i \(q\) sa względnie pierwsze.
Ale żeby nie było tak łatwo: zwróćmy uwagę, że sprawdzenie niewymierności liczby może być trudne (np. \(\pi\)) lub mieć niestandardowy dowód (np. \(a = 0,1010010001000010000010000001...\)). Dlaczego to dla nas ważne? Bo z całą pewnością liczby niewymierne będą jedynie przybliżane na komputerze, więc warto kontrolować czy wynik jest dokładny, czy przybliżony. Tak jako ciekawostka: są liczby, o których nie wiemy (!) czy są wymierne, czy nie (tzn. nie mamy w tym przypadku dowodu).
Zadanie 2. Pokazać, że liczba \(\sqrt[3]{100}\) nie jest wymierna.
Rozwiązanie. Dowód nie wprost. Przypuśćmy, że liczba ta jest wymierna i jest postaci \(\frac{a}{b}\), gdzie \(a\) i \(b\) są liczbami całkowitymi względnie pierwszymi. Podnosząc obie strony równania \(\sqrt[3]{100} = \frac{a}{b}\) do potęgi 3 i przekształcając otrzymujemy równoważną równość
Teraz wykorzystamy rozkład liczb naturalnych na czynniki pierwsze i skorzystamy z faktu (twierdzenia), które mówi, że każdą liczbę naturalną można przedstawić w postaci iloczynu liczb pierwszych i rozkład taki jest jednoznaczny z dokładnością do kolejności występowania czynników pierwszych. Dla liczby 100 mamy następujący rozkład na czynniki pierwsze: \(100 = 2^5 \cdot 5^2\), a więc dwie dwójki i dwie piątki, w dowolnej kolejności. Porównajmy teraz obie strony równania i policzmy ilość piątek (dwójki - analogicznie, ale wystarczy jeden czynnik), które występują w rozkładzie na czynniki pierwsze obu stron.
Po pierwsze, lewa strona jest podzielna przez 5, więc i prawa strona musi być podzielna przez 5. Ale jeśli \(5|a^3\), to także \(5|a\). Zatem liczba 5 występuje w rozkładzie liczby \(a\) na czynniki pierwsze.
Oznaczmy więc ilość piątek w tym rozkładzie przez \(k\). Czyli dzieli \(a\) i żadna wyższa potęga liczby 5 nie dzieli liczby \(a\). Stąd wynika, że \(5^{3k}\) dzieli prawą stronę, czyli w rozkładzie prawej strony na czynniki pierwsze liczba piątek jest podzielna przez 3. Natomiast w rozkładzie na czynniki pierwsze liczby po lewej stronie liczba piątek daje przy dzieleniu przez 3 resztę 2, gdyż ilość piątek w rozkładzie liczby \(b^3\) jest podzielna przez 3, a do tego dochodzą jeszcze 2 piątki z rozkładu liczby 100. Zatem liczba czynników pierwszych równych 5 po lewej stronie jest inna niż po prawej stronie. Sprzeczność.
Teraz coś bardziej ogólnego niż poprzednie zadania (dowód jednak pominiemy…):
Twierdzenie. Dla dowolnej liczby naturalnej \(x \geq 1\) i dowolnej liczby naturalnej \(n \geq 2\) istnieje dokładnie jeden pierwiastek \(n\)-tego stopnia z \(x\) oznaczany przez \(\sqrt[n]{x} = x^{\frac{1}{n}}\) i jest albo liczbą naturalną, albo niewymierną.
Koniecznie trzeba zwrócić uwagę na dwa elementy tezy: ‘’pierwiastek istnieje’’ i ‘’jest co najwyżej jeden’’ (jednoznaczność).
To dwa stałe i konieczne elementy w każdym użyciu obiektu w informatyce! Symbol \(\exists !\) czytamy właśnie ‘’istnieje dokładnie jeden’’.
Uwaga: Przypomnijmy, że problem z liczbami niewymiernymi w obliczeniach komputerowych polega na tym, że są ciekawe charakteryzacje takich liczb - ale wszystkie one wymagają nieskończonych operacji (cokolwiek to znaczy :-), musimy to sprecyzować). Komputer nie pozwala na operacje nieskończone…
Komputer może posługiwać się typem real (rzeczywiste), ale nie są to jednak liczby rzeczywiste, a jest to jedynie
skończony zbiór reprezentantów przedziałów.
Patrz: paragraf 8.2, strony 120-130
Całą pracę musi wykonać informatyk…
Obliczenia numeryczne = obliczenia (przybliżone) na danych typu real. Co w ogóle robi komputer? Tylko jedno! Przetwarza liczby… Problem w tym, że nie są to liczby rzeczywiste.
Uwaga: skoro ludziom trudno przyswoić rozumienie liczb rzeczywistych i operować nimi, to jak miałby to zrobić komputer? Niestety: nie może!
To informatyk musi przewidzieć skutki braku liczb rzeczywistych w arytmetyce komputerowej!
Zarówno liczby, jak i funkcje wydają się być nam dobrze znane, ALE… nie komputerom. To po co nam one? Sporo przykładów nie nadaje się dla studentów I roku, ale z pewnością wszyscy napotkają sieci neuronowe i sztuczna inteligencję: potrzebujemy obliczyć wagi połączeń między sztucznymi neuronami - i to jak najdokładniej (liczby rzeczywiste).
A już np. liczba rzeczywista \(e \in {\mathbb{R}}\) będzie nam bezpośrednio potrzebna (np. przy zagadnieniach wizualizacji) - wprowadzimy ją wkrótce.
Uwaga: w związku z tym nie można oczekiwać, że aksjomaty liczb rzeczywistych (a więc i nasze oczekiwania wobec własności np. działań) bądą spełnione w arytmetyce komputerowej!
Fakt, że w arytmetyce zmiennoprzecinkowej nie istnieją liczby rzeczywiste w sensie matematycznym, czyli nie muszą być spełnione wszystkie aksjomaty, nie oznacza, że nie ma tam żadnych reguł!*
To może nie jest właściwy przedmiot, aby to wszystko omówić, ale nadal istnieje zbiór aksjomatów, które muszą spełniać operacje elementarne bez względu na stosowaną arytmetykę zmiennopozycyjną! Czyli: nie są zdefiniowane dokładnie, ale pewne warunki muszą zachodzić. Zainteresowani znajdą je np tu: Niklaus Wirth, ‘’Wstęp do programowania systematycznego’’, WNT (str.42-45). Warto sprawdzić czym się różnią od naszych aksjomatów…*
A teraz kluczowa własność liczb rzeczywistych pozwalająca na ich dowolne przybliżanie liczbami wymiernymi: gęstość zbioru liczb wymiernych w zbiorze liczb rzeczywistych: zbiór \(A\) nazywamy gęstym w \({\mathbb{R}}\) jeżeli dla dowolnych \(x,y \in {\mathbb{R}}\), \(x< y\) istnieje element \(a \in A\) taki, że
Twierdzenie. Zbiory \(A = {\mathbb{Q}}\) liczb wymiernych oraz \(B = {\mathbb{R}} \setminus {\mathbb{Q}}\) są geste w zbiorze liczb rzeczywistych \({\mathbb{R}}\).
Oczywiście, w informatyce ważniejszy jest ten fakt dla zbioru \({\mathbb{Q}}\).
Zadanie 3. Jak już wiemy liczby wymierne mogą nie być dokładnie reprezentowane, ale liczby niewymierne z pewnością nie mają dokładnej reprezentacji na komputerze. Warto zawsze wykonywać operacje na liczbach całkowitych (wymiernych). Ale wymierne przybliżenia nie zawsze są łatwe. Znajdziemy dobre przyliżenia pierwiastków z liczb wymiernych (pierwszy, ale nie jedyny algorytm).
Przypomnijmy nierówność Cauchy’ego dla średnich: dla dowolnych liczb dodatnich \(a,b \in {\mathbb{R}}\) zachodzi nierówność pomiędzy ich średnimi
Co więcej (a to istotne!), równość zachodzi wtedy i tylko wtedy, gdy \(a=b\).
W szczególności dla dowolnego \(x > 0\), \(x \in {\mathbb{Q}}\) wybierzmy dowolny (na razie) rozkład na iloczyn \( x = a\cdot b\), \(a,b \in {\mathbb{Q}}\) i wtedy
a więc pierwiastek \(\sqrt{x}\) jest oszacowany z góry i z dołu przez liczby wymierne! Jak dobre to oszacowanie? Na razie nie wiemy. Jak uzyskać lepsze? To proste: zauważmy, że możemy wziąć kolejny rozkład na czynniki wymierne
Oznaczmy te liczby odpowiednio przez \(a_1\) i \(b_1\). Czyli
Nie wyprowadzamy i nie uczymy się gotowego wzoru: sprawdzimy na przykładach. Oszacujmy więc np. \(\sqrt{11}\).
Rozwiązanie. Rozpoczniemy od oczywistego rozkładu: \(x = 11 = 1 \cdot 11\), czyli \(a =1\), \(b = 11\). Czyli
Słabe oszacowanie! Liczymy dalej: \(x = \frac{11}{6} \cdot 6\):
I powtarzamy dla \(x = \frac{132}{47} \cdot \frac{47}{12}\) … (samodzielnie). Jak na informatyków przystało chcemy też zwiększyć precyzję tego algorytmu i zmniejszyć jego złożoność obliczeniową. Jak? Należy już w pierwszym kroku wybrać liczby ‘’jak najbliższe sobie’’: proszę zaznaczyć na osi liczbowej wszystkie uzyskane oszacowania! To będą algorytmy doboru wartości początkowych… Może warto rozpocząć od \(a = 3\) i \(b= \frac{11}{3}\)? Dlaczego? Bo \(a\) jest największa liczbą całkowitą dla której jej kwadrat jest mniejszy niż 11: \(a^2 = 9 < 11\). Proszę przemyśleć inną metodę doboru wartości początkowej.
Zadanie 4. Oszacować wartości
a) \(\sqrt{17}\)
b) \(\sqrt{3313}\)
c) \(\sqrt{2453260}\).
Niestety, ten algorytm np. dla \(\sqrt{\pi}\) jest … niezadowalający. To problem i np. w arkuszach kalkulacyjnych to często predefiniowana stała (np. PIERW.PI w ‘’Excel’u’’). Proszę samodzielnie sprawdzić dlaczego. Dla innych liczb niewymiernych dopiero będziemy poznawać podobne algorytmy.
Zadanie 5. A co z pierwiastkami wyższych stopni? A tu ponownie potrzebna matematyka - tym razem nierówność Cauchy’ego dla \(n\)-elementów (dowody są różne, chyba najprostszy - indukcja matematyczna). Niech \(n \in {\mathbb{N}}\), \(a_1, a_2, ... , a_n > 0\), wtedy
Oczywiście również teraz: w nierówności zachodzi znak równości wtedy i tylko wtedy, gdy wszystkie liczby są równe.
Tak przy okazji warto wspomnieć o kolejnej średniej = średniej kwadratowej:
akurat bardzo często spotykanej w informatyce: (‘’błąd średniokwadratowy’’). Jest ona jeszcze większa niż średnia arytmetyczna. } Czyli mamy
a) średnią arytmetyczną, którą dla \(n\) liczb rzeczywistych \(a_1,a_2,…,a_n\) definiuje się jako:
b) średnią geometryczną, którą dla \(n\) liczb nieujemnych \(a_1,a_2,…,a_n\) definiuje się jako:
c) średnią harmoniczną którą dla \(n\) liczb dodatnich \(a_1,a_2,…,a_n\) definiuje się jako:
d) średnią kwadratową, którą dla \(n\) liczb rzeczywistych \(a_1,a_2,…,a_n\) definiuje się jako:
A teraz zadania : proszę za pomocą tej nierówności i metody rozkładu na czynniki oszacować wymiernie liczby
a2) \(\sqrt[3]{67}\),
b2) \(\sqrt[7]{21807}\).
Zadanie 6. Proszę znaleźć wymierne oszacowania dla
Rozwiązanie. Rozpoczniemy od średniej geometrycznej liczb
czyli
czyli
Można też prowadzić dalsze oszacowania, ale te jest wystarczające w większości przypadków (porównamy to także przy granicach ciągów).
Zadanie 7. Niech \(a,b,c\) będą liczbami rzeczywistymi i dodatnimi. Sprawdzić, że
Rozwiązanie. Wskazówką do tego wniosku powinno być wyrażenie \(a+b+4c\) znajdujące się w jednym z nawiasów. Zatem wykorzystując naszą obserwację oraz korzystając z nierówności pomiędzy średnią arytmetyczną a geometryczną możemy otrzymać następującą nierówność:
Następnie po spotęgowaniu nawiasów znajdujących się po lewej stronie, odpowiednim rozbiciu poszczególnych wyrazów i wykorzystaniu nierówności pomiędzy średnią arytmetyczną a geometryczną otrzymujemy:
W kolejnym kroku wystarczy wykorzystać obie otrzymane powyżej nierówności.
Zatem nasza nierówność została udowodniona.
Zadanie 8. Nie zawsze warto prowadzić bezpośrednie obliczenia na liczbach niewymiernych, bo możemy - zupełnie niepotrzebnie - uzyskiwać tylko wartości przybliżone zamiast dokładnych. Na ogół programy przeznaczone do obliczeń też wykonują takie operacje! Sprawdzić, czy liczba
jest wymierna czy nie. Oblicz ją (operacjami algebraicznymi i poprzez symulacje na komputerze - dla porównania).
Rozwiązanie. Korzystamy ze wzorów redukcyjnych:
Zadania domowe.
(1) Sprawdzić, czy liczba
jest wymierna czy nie. Oblicz ją.
(2) Sprawdź, że dla dowolnej liczby naturalnej \(n \geq 1\)
jest zawsze liczbą niewymierną. Zwróćmy uwagę, że symulacja komputerowa nam nie pomoże - ale można próbować…
(3) Dowieść, że dla dowolnych dodatnich rzeczywistych liczb \(a,b,c\) zachodzi nierówność:
(4) Sprawdź, że
Wskazówka: albo skorzystać z faktu, że mamy wykazać równość i przekształcić ją równoważnie, albo w takich zadaniach sprowadzamy wyrażenia pod pierwiastkiem do kwadratu sumy lub różnicy.
(5) Udowodnić bezpośrednio, że liczba \(\sqrt{3} + \sqrt{4}\) jest niewymierna.
(6) Udowodnić, że liczba \(\sqrt[3]{4} + \sqrt[3]{5}\) jest niewymierna.