R11QP63256FGA
Fotografia przedstawia osobę pracującą na laptopie. Na biurku znajdują się również kalkulator oraz tablet.

I_R_W14_M29_C++ W poszukiwaniu perfekcyjnego pierwiastka: sztuka obliczeń numerycznych

Źródło: Charles Deluvio, domena publiczna.

Pierwiastek kwadratowy

Pierwiastkowanie to operacja odwrotna do potęgowania. Pierwiastek stopniastopień pierwiastkastopnia n z liczby a będzie równy liczbie b, która podniesiona do potęgi n, da nam liczbę a.

an=b
bn=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:

Przykład 1

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.

36=6
62=6·6=36

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.

Przykład 2

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ęść całkowita liczbyczęści całkowitej lub z prawej strony w przypadku części ułamkowejczęść ułamkowa liczbyczęści ułamkowej. Podzielmy więc liczbę w opisany sposób (poszczególne pary oddzielimy znakiem „|”):

|02|07|,|07|21|
  • 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ę.

RHUBMROPACGLZ
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
  • 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:

1000+2=2
  • Otrzymaną resztę zapiszemy pod rozpatrywaną parą:

RRE71RL7ABF4X
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
  • 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:

b=(20w+a)a
br
  • Podstawiamy dane:

b=(200+a)a=a2
a22
  • 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:

b=(200+1)1=12=1
  • 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|.

R1VZXXPC9P5DX
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

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.

R73KPQR9TE3NG
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Pierwsza seria działań (dla pary 02):

b = (20 · 1 + a) · a = 20a + a2
a2  2
a = 1
b = (20 · 0 + 1) · 1 = 1
R19Z9UHS8THL9
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Druga seria działań (dla pary 07):
b=(20·1+a)·a=20a+a2
20a+a2107
a4,39
a=4
b=(20·1+4)·4=96
RC759EHUZCR7Z
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Trzecia seria działań (dla pary 07):
b=(20·14+a)·a=280a+a2
280a+a21107
a3,90
a=3
b=(20·14+3)·3=849
RKZF18AA66UDR
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Czwarta seria działań (dla pary 21):
b=(20·143+a)·a=2860a+a2
2860a+a225821
a9
a=9
b=(20·143+9)·9=25821
stopień pierwiastka
stopień pierwiastka

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)

część całkowita liczby
część całkowita liczby

dla określonej liczby a największa liczba całkowita c spełniająca warunek:

c a
część ułamkowa liczby
część ułamkowa liczby

różnica liczby a oraz jej części całkowitej c