Przeczytaj
Pierwiastek kwadratowy
Pierwiastkowanie to operacja odwrotna do potęgowania. Pierwiastek stopniastopnia n
z liczby a
będzie równy liczbie b
, która podniesiona do potęgi n
, da nam liczbę a
.
W przypadku, gdy stopień pierwiastka n
równy jest 2, mówimy o pierwiastku kwadratowym. Oznaczamy go za pomocą symbolu √, pomijając wpisywanie stopnia w lewym górnym rogu znaku. Pamiętajmy, że w wypadku pierwiastka kwadratowego zakładamy, że liczby a
oraz b
są nieujemne. Przeanalizujmy prosty przykład:
Wybraną liczbę poddamy operacji pierwiastkowania kwadratowego. Będzie to 36. Znajdźmy liczbę nieujemną, której podniesienie do kwadratu da 36. W tym wypadku wystarczy znajomość tabliczki mnożenia – szukaną wartością będzie oczywiście 6.
Przypomnieliśmy, czym są pierwiastki kwadratowe, zatem możemy przejść do algorytmu ich obliczania.
Obliczanie pierwiastka kwadratowego
Algorytm matematyczny – „liczenie w słupku”
Obliczając wartość pierwiastka kwadratowego, zwykle sięgamy do swojej pamięci bądź – w przypadku trudniejszych przykładów – korzystamy z kalkulatora. Tworząc programy, możemy stosować też biblioteki, dzięki którym da się przeprowadzić pierwiastkowanie z użyciem jednej funkcji. W rzeczywistości istnieje sporo algorytmów, których użycie umożliwia ręczne obliczenie wartości pierwiastków. Przeanalizujmy jedną z prostszych metod, określaną jako „cyfra po cyfrze”, „liczenie w słupku” lub „pierwiastkowanie pod kreską”. Na pierwszy rzut oka metoda ta może przypominać liczenie pisemne i rzeczywiście jest ono w niej wykorzystywane. Prześledźmy algorytm na przykładzie.
Mamy obliczyć pierwiastek kwadratowy z liczby , dysponując jedynie kartką papieru i długopisem. Czekające nas obliczenia mogą wydawać się skomplikowane, jednak by ułatwić sobie zadanie, skorzystamy z omawianego algorytmu.
Kolejne kroki algorytmu:
Podaną liczbę dzielimy na dwucyfrowe pary, przy czym przecinek ma stanowić punkt oddzielający od siebie dwie pary (nie możemy stworzyć np. pary |7,0|). Gdy w danym segmencie brakuje nam jednej cyfry do stworzenia pary, możemy dopisać 0 z lewej strony w przypadku części całkowitejczęści całkowitej lub z prawej strony w przypadku części ułamkowejczęści ułamkowej. Podzielmy więc liczbę w opisany sposób (poszczególne pary oddzielimy znakiem „|”):
Kolejne cyfry wyniku będziemy wpisywać nad pierwiastkowaną liczbą, przy czym nad każdą parą pojawiać się będzie dokładnie jedna odpowiadająca jej cyfra. Dodatkowo sam przecinek również zachowa swoją pozycję.
Możemy teraz przejść do właściwych obliczeń. Wykonamy serię identycznych działań dla każdej z par, rozpoczynając od pierwszego segmentu z lewej strony i przemieszczając się w prawo. Będziemy operować na wartości tzw. reszty – zmiennej oznaczanej literą r. Dotychczasową resztę (która w przypadku rozpatrywania pierwszego segmentu jest zawsze równa 0) mnożymy razy 100 i dodajemy do niej daną parę. Wynik tej operacji jest nową resztą. Dla pierwszej pary – czyli |02| – opisane działanie prezentuje się następująco:
Otrzymaną resztę zapiszemy pod rozpatrywaną parą:
Od teraz dotychczasowy wynik pierwiastkowania oznaczać będziemy jako w (nie uwzględniamy w nim przecinka). Naszym celem jest znalezienie największej naturalnej liczby a oraz liczby b, opisywanych przez warunki:
Podstawiamy dane:
Największą liczbą naturalną spełniającą ten warunek jest 1, w takim razie a = 1. Wartości liczby a dla kolejnych par są poszukiwanymi cyframi wyniku. Obliczamy teraz wartość b:
Pierwszą serię działań zakończy odjęcie liczby b od obecnej wartości reszty, a następnie nadpisanie otrzymanym wynikiem wartości reszty. Jeżeli po przeprowadzeniu działania uzyskaliśmy liczbę 0 i rozpatrzyliśmy już każdą z par, wówczas algorytm kończy się, a zapisany na górze słupka wynik uznajemy za końcowy. Jeśli zaś wynik reszty nie jest równy 0, a rozpatrzyliśmy już każdą z dotychczasowych par, niezbędne jest dopisanie kolejnego segmentu wypełnionego zerami – |00|.
Przedstawione działania powtarzamy dla kolejnych par, aż do otrzymania pełnego wyniku. Poniżej zaprezentowane zostały wyniki oraz konstrukcja słupka dla każdego z segmentów.
Pierwsza seria działań (dla pary ):
Realizacja algorytmu w programie – metoda Newtona‑Raphsona
Algorytm „liczenia w słupku” należy do metod dokładnych, których implementacja jest czasochłonna i wymaga zaangażowania dużej ilości pamięci obliczeniowej komputera. W sytuacji gdy nie zależy nam na precyzyjnym wyniku, optymalną decyzją jest wybór metody przybliżonejmetody przybliżonej. Jedną z nich jest metoda Newtona‑Raphsona.
Przeanalizujmy przedstawioną specyfikację oraz pseudokod, a następnie zapoznajmy się z opisem całego algorytmu.
Specyfikacja problemu:
Dane:
a
– liczba podpierwiastkowa; pole kwadratu, którego długość boku jest poszukiwanym pierwiastkiem; nieujemna liczba rzeczywistaepsilon
– bezwzględna wartość różnicy pomiędzy bokami prostokąta o polu powierzchnia
, po której osiągnięciu przerywamy dalsze wyznaczanie pierwiastka i zwracamy ostatni otrzymany wynik; określa dokładność obliczeń; nieujemna liczba rzeczywista
Wynik:
b
– wynik pierwiastkowania liczbya
dla określonej wartości zmiennejepsilon
; liczba rzeczywista
Podstawowym założeniem omawianej metody jest fakt, że wynik pierwiastkowania danej liczby będzie taki sam jak długość boku kwadratu o polu równym pierwiastkowanej liczbie.
Zatem jeżeli chcemy obliczyć pierwiastek z a
, znajdujemy bok kwadratu o polu równym a
.
Poszukiwania rozpoczynamy od prostokąta o bokach długości b
i c.
Wartości te są równe:
W każdym kolejnym kroku wyznaczamy bok b
ze średniej arytmetycznej długości boków b
i c
z poprzedniego kroku.
Długość boku c
uzyskujemy, dzieląc pole przez długość boku b
.
Etap ten powtarzamy, aż wartość bezwzględna różnicy pomiędzy obydwoma bokami osiągnie określoną przez nas precyzję. Wtedy końcowym wynikiem pierwiastkowania będzie wartość b
. Pamiętajmy jednocześnie, że im mniejsza jest wartość precyzji, tym dokładniejszy będzie końcowy rezultat.
Osiągnięcie konkretnej precyzji jest tylko jednym z dostępnych wariantów warunku zakończenia algorytmu. Dalsze wyznaczanie wartości pierwiastka b
może być przerwane np. po wykonaniu zadanej maksymalnej liczby iteracji. Należy podkreślić, że te warunki niekoniecznie będą spełnione jednocześnie. Najprawdopodobniej program skończy się wówczas po wykonaniu maksymalnej liczby iteracji albo po osiągnięciu konkretnej precyzji. Pisząc program, możemy zatem zdecydować się z góry na zaimplementowanie tylko jednego z tych wariantów.
W sekcji „Symulacja interaktywna” dowiesz się, jak zrealizować omawiany algorytm za pomocą arkusza kalkulacyjnego.
Podsumowując: algorytm Newtona–Raphsona należy do tzw. metod iteracyjnych. Wyróżniamy dla niego dwa kryteria zakończenia obliczeń:
wykonanie podanej liczby iteracji;
sytuację, w której dwa kolejne przybliżenia leżą dostatecznie blisko siebie.
Słownik
dla określonej liczby
różnica określonej liczby
metoda, której celem nie jest dokładny wynik, a jedynie oszacowanie przybliżonego wyniku
wykładnik potęgi będącej operacją odwrotną do konkretnego przypadku pierwiastkowania (np. potęga o wartości wykładnika równej 5 będzie operacją odwrotną w stosunku do pierwiastka o stopniu równym 5)