Untitled

 avatar
unknown
plain_text
4 months ago
1.1 kB
4
Indexable
#include <iostream>
#include <math.h>
using namespace std;
float f(float x) {
    return x - sin(x) - 0.5;
}
int main() {
    double a = 0.0, b = 3.0;
    double epsilon = 0.00001;
    int ITMAX = 100;
    int k = 0;
    double x;
    if (f(a) * f(b) > 0) {
        cout << "Nu exista radacina in [" << a << ", " << b << "]" << endl;
        return 0;
    }
    if (abs(f(a)) <= epsilon) {
        cout << "Radacina este x = " << a ;
        return 0;
    }
    if (fabs(f(b)) <= epsilon) {
        cout << "Radacina este x = " << b;
        return 0;
    }
    x = (a + b) / 2;
    while (abs(f(x)) > epsilon && k <= ITMAX) {
        if (f(a) * f(x) < 0) {
            b = x;
        }
        else {
            a = x;
        }
        x = (a + b) / 2;
        k = k + 1;
    }
    if (k > ITMAX) {
        cout << "Nr maxim de iteratii depasit.";
    }
    else {
        cout << "Valoarea aproximativa a solutiei este x = " << x << endl;
        cout << "Nr de iteratii efectuate este: " << k;
    }
    return 0;
}
Editor is loading...
Leave a Comment