poniedziałek, 10 kwietnia 2017

Algorytm Newtona-Raphsona

Interpretacja geometryczna pierwiastka kwadratowego 
Szukamy długości boku kwadratu o zadanym polu, poprzez jego przybliżanie kolejnymi prostokątami o tym samym polu.

Ponieważ dana figura ma być kwadratem więc wartości x i p/x powinny być sobie równe. Jeśli nie są, to szukane rozwiązanie jest położone między nimi, czyli możemy przyjąć, że jest to średnia arytmetyczna tych dwóch wielkości.A zatem możemy wyznaczyć kolejne przybliżenia pierwiastka.
 
Mamy za zadanie obliczyć wartość pierwiastka kwadratowego z liczby dodatniej
Nie możemy jednak posłużyć się funkcją standardową SQRT. Na szczęście jeden z takich przepisów został podany ponad 300 lat temu przez Newtona i Raphsona. Przepis Newtona – Raphsona: Jako pierwsze przybliżenie bierzemy np.1, a jako kolejne – wyrażenie: średnią arytmetyczną z poprzedniego przybliżenia i liczby podzielonej przez poprzednie przybliżenie.
Skończymy ciąg obliczeń wtedy, gdy różnica między kolejnymi przybliżeniami będzie nie większa niż podana dokładność.

Wzór na ciąg kolejnych przybliżeń ma postać:
Lista kroków:
  1. Pobieramy wartość liczby podpierwiastkowej p oraz dokładność obliczeń Eps
  2. Przyjmujemy pierwsze przybliżenie poszukiwanego rozwiązania np. x=1
  3. Jeśli |x – p/x|<=Eps  to idziemy do 6.
  4. Obliczamy kolejne przybliżenie x:= (x+p/x)/2
  5. Przechodzimy do 3.
  6. Wypisujemy wartość x.
  7. Koniec

Schemat blokowy:
C++
#include <iostream> 
#include <math.h>   
using namespace std;   
int main() 
{     
float A,a;     
float eps = 0.0001;         
cin >> A;     
a = A/2;         
while(fabs(A/a-a)>eps)     
{         
a = (A/a+a)/2;    
 }         cout << a;     
return 0; 
}

Program w Excel




Opracował: Mateusz Cz.