• Nie Znaleziono Wyników

Za każdym następnym razem pierwiastek jest obliczony z coraz większą dokładnością

N/A
N/A
Protected

Academic year: 2021

Share "Za każdym następnym razem pierwiastek jest obliczony z coraz większą dokładnością"

Copied!
2
0
0

Pełen tekst

(1)

Obliczanie pierwiastka kwadratowego metodą Newtona-Raphsona

W przypadku pisania programów z elementami matematycznymi programista dostaje do dyspozycji zestaw bibliotek matematycznych zawierających typowe funkcje matematyczne. Na dodatek funkcje te często wykorzystują koprocesor matematyczny w procesorze co znacząco zwiększa szybkość wykonywanych obliczeń. Mogą się jednak zdarzyć takie przypadki, gdzie programista będzie musiał sam opracować zestaw funkcji, które pozwalają na szybkie wykonywanie obliczeń matematycznych (obliczenia z bardzo dużą dokładnością). W takim przypadku najlepiej użyć gotowych i efektywnych algorytmów realizujących poszczególne funkcje matematyczne.

Przykładem takiego algorytmu jest obliczanie pierwiastka kwadratowego metodą Newtona-Raphsona.

Pozwala on na szybkie wyliczenie pierwiastka z dużą dokładnością i na dodatek za pomocą podstawowych operacji jak dzielenie i dodawanie.

Sam algorytm jest rekurencyjny. Oznacza to, że pierwiastek jest wyznaczany w pętli wiele razy. Za każdym następnym razem pierwiastek jest obliczony z coraz większą dokładnością. W każdym cyklu pętli przy liczeniu pierwiastka wykorzystuje się wartość poprzednio wyliczonego pierwiastka. Całość można opisać zobrazować następująco:

Przykład.

Obliczamy pierwiastek z 100 (7 kroków):

x1 = 0.5*a = 0.5*100 = 50

x2 = 0.5 * (x1 + a / x1) = 0.5*(50+100/50) = 26

x3 = 0.5 * (x2 + a / x2) = 0.5*(26+100/26) = 14.92307692

x4 = 0.5 * (x3 + a / x3) = 0.5*(14.92307692+100/14.92307692) = 10.81205393 x5 = 0.5 * (x4 + a / x4) = 0.5*(10.81205393+100/10.81205393) = 10.03049520 x6 = 0.5 * (x5 + a / x5) = 0.5*(10.03049520+100/10.03049520) = 10.00004636 x7 = 0.5 * (x6 + a / x6) = 0.5*(10.00004636+100/10.00004636) = 10.00000000

(2)

Zad. 1.

Bazując na powyższym przykładzie, napisz program, który obliczy wartość pierwiastka dla dowolnej liczby rzeczywistej z zadaną dokładnością.

Zadanie dodatkowe:

Powyższy program jest wersją iteracyjną algorytmu. Napisz program, który oblicza pierwiastek rekurencyjnie, z zadaną dokładnością.

Cytaty

Powiązane dokumenty

ikonograficznych, kartograficznych, muzycznych oraz dokumentów życia społecznego dotyczących Kujaw, Pomorza i Ziemi Dobrzyńskiej;.  materiały dydaktyczne - cyfrowe

Autorzy: Ewa Piotrowska, Tomasz Sztyber Program nauczania języka angielskiego dla II-ego etapu edukacyjnego (szkoła podstawowa klasy

Istnieje pewien szablon, pewne konwencje, które powtarzają się co roku.. Za każdym razem podobny problem, za każdym razem należy pisać

Próba wykonania operacji przypisania wartości typu double do zmiennej tempc typu float spowoduje wyświetlenie przez kompilator odpowiedniego ostrzeżenia.. Jeszcze inna

Próba wykonania operacji przypisania wartości typu double do zmiennej tempc typu float spowoduje wyświetlenie przez kompilator odpowiedniego ostrzeżenia.. Jeszcze inna

Wyrażenia arytmetyczne mogą zawierać operatory arytmetyczne jednoargumentowe, dwuargumentowe, nawiasy zwykłe oraz wywołania funkcji.. Każde wyrażenie arytmetyczne

Po pierwsze, jak pokazują przeglądy badań ewaluacyjnych (6, 8, 13, 14, 15) wy- kazanie nie tylko dużego, ale jakiegokolwiek wplywu programu profilaktyki alkoholowej

Następnie narysuj lub napisz jeżeli potrafisz wszystko, co zaobserwowałeś w tabelce: 5 rzeczy, które zauważysz, 4 rzeczy, jakie słyszysz, 3 rzeczy jakie czujesz, 2 rzeczy