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
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
Matematică,
8 ani în urmă
Studii sociale,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă