I_R_W14_M29_C++ W poszukiwaniu perfekcyjnego pierwiastka: sztuka obliczeń numerycznych
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 ):


