Informatică, întrebare adresată de rusum9533, 8 ani în urmă

Să se scrie un program care determină rădăcina ecuaţiei f(x)=0 din intervalul [a,b] cu o eroare mai mică decât EPS=1e-8, ştiind că ecuaţia are o singură rădăcină în intervalul respectiv şi f(x) este o funcţie continuă pe acest interval. Se va utiliza o funcţie ce apelează ca parametru funcţia f căreia i se calculează rădăcina.
(Indicaţie:
Una din cele mai simple metode de calcul este metoda înjumătăţirii al cărei algoritm este următorul:
1)
c=(a+b)/2
2)
Dacă f(c)=0, atunci c este soluţia căutată şi se întrerupe procesul de calcul.
3)
Dacă f(a)*f(c)<0, atunci se pune b=c, altfel a=c
4)
Dacă b-a Altfel algoritmul se reia de la pasul 1).
Se va aplica programul de mai sus la calculul rădăcinii ecuaţiei:
x-sin(x+1)=0
în intervalul [0.5 , 1], cu o eroare mai mică de 1e-8.
Programul trebuie realizat in C++

Răspunsuri la întrebare

Răspuns de andrei750238
2

#include <iostream>

#include <iomanip>

#include <cmath>

using namespace std;

const double EPS=1e-8;

double radacina(double x, double a, double b) {

double mij = (a + b) / 2;

if (abs(mij*mij-x) < EPS) return mij;

if (mij * mij > x)return radacina(x, a, mij);

if (mij * mij < x)return radacina(x, mij, b);

}

int main() {

cout << fixed << setprecision(8);

double x;

cout << "Introduceti numarul  : ";

cin >> x;

cout << "Radacina lui " << x << " este " << radacina(x, 0, x);

}

Anexe:
Alte întrebări interesante