Sã se calculeze radacina parata dintr-un numar real x, prin generarea unui sir A. numere (ai)<=n care o aproximeaza, folosind definiția recurentă:a1=1a2=(1+x/1 )/2a3=((1+x)/2+x/((1 +x)/2))/2 7
………………………………………
an= (an-1+x/an-1)/2
Termenii aivor fi generati recursiv până când diferența |ai – ai-1| va fi mai mica decât o valoare e (eroarea acceptata, un numar subunitar foarte mic). Ultimul termen ai generat va contine valoarea aproximativa a radicalului din numarul x. x si e se introduc de la tastatura.
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double x, a = 1, e;
cout << „Introduceti numarul x: „;
cin >> x;
cout << „Introduceti eroarea e: „;
cin >> e;
while (true) {
double a_anterior = a;
a = (a + x / a) / 2;
if (abs(a – a_anterior) < e) {
cout << „Rădăcina pătrată a lui ” << x << ” este: ” << a << endl;
break;
}
}
return 0;
}
Acesta este un algoritm pentru a aproxima rădăcina pătrată a unui număr folosind metoda lui Newton-Raphson:
- Se citește numărul real x și eroarea e de la tastatură.
- Se inițializează variabila a cu 1.
- Se calculează a următorul termen al șirului folosind formula: a = (a + x/a) / 2.
- Se calculează diferența dintre a și termenul anterior, |a – a_anterior| și se compară cu eroarea e.
- Dacă diferența este mai mică decât eroarea, se afișează a și se termină algoritmul.
- Altfel, se reia pasul 3 cu a devenind termenul anterior și se continuă până când diferența este mai mică decât eroarea.