Bisection Method

void Bisection(double xl , double xu, double es, int maxi) {
		double xr = 0, xrOld = 0, i = 0, ea = 0;

    if(f(xl)* f(xu) > 0) {
        cout << "No root" << endl;
        return;
    }

    cout << "i\\t" << "xl\\t" << "f(xl)\\t" << "xr\\t" << "f(xr)\\t" << "xu\\t" << "f(xu)\\t" << "ea\\t" << endl;

    do {
        xrOld = xr;
        xr = (xl + xu) / 2;
        ea = abs((xr - xrOld) / xr) * 100;

        if (i == 0) 
            cout << ++i << "\\t" << xl << "\\t" << f(xl) << "\\t" << xr << "\\t" << f(xr) << "\\t" << xu << "\\t" << f(xu)
                 << "\\t"
                 << "--\\t" << endl;
        else 
            cout << ++i << "\\t" << xl << "\\t" << f(xl) << "\\t" << xr << "\\t" << f(xr) << "\\t" << xu << "\\t" << f(xu)
                 << "\\t"
                 << ea << endl;
        
        f(xl) * f(xr) < 0 ? xu = xr : xl = xr;
    } while(ea > es && i < maxi);
}

False Position Method

void FalsePosition(double xl , double xu, double es, int maxi) {
    double xr = 0, xrOld = 0, i = 0, ea = 0;

    if(f(xl)* f(xu) > 0) {
        cout << "No root" << endl;
        return;
    }

    cout << "i\\t" << "xl\\t" << "f(xl)\\t" << "xr\\t" << "f(xr)\\t" << "xu\\t" << "f(xu)\\t" << "ea\\t" << endl;

    do {
        xrOld = xr;
        xr = xu - (f(xu) * (xl - xu)) / (f(xl) - f(xu));
        ea = abs((xr - xrOld) / xr) * 100;

        if (i == 0)
            cout << ++i << "\\t" << xl << "\\t" << f(xl) << "\\t" << xr << "\\t" << f(xr) << "\\t" << xu << "\\t" << f(xu)
                 << "\\t"
                 << "--\\t" << endl;
        else
            cout << ++i << "\\t" << xl << "\\t" << f(xl) << "\\t" << xr << "\\t" << f(xr) << "\\t" << xu << "\\t" << f(xu)
                 << "\\t"
                 << ea << endl;

        f(xl) * f(xr) < 0 ? xu = xr : xl = xr;

    } while(ea > es && i < maxi);
}

Simple Fixed Point

void SimpleFixedPoint (double x0, double es, double maxi){
    double xOld = 0, ea = 0;
    int i = 0;

    cout << "i\\t" << "xi\\t" << "f(x\\t" << "ea\\t" << endl;

    do {
        xOld = x0;
        x0 = f(x0);
        ea = abs((x0 - xOld) / x0) * 100;

        if (i == 0)
            cout << ++i << "\\t" << x0 << "\\t" << f(x0) << "\\t" << "--\\t" << endl;
        else
            cout << ++i << "\\t" << x0 << "\\t" << f(x0) << "\\t" << ea << endl;

    } while(ea > es && i < maxi);
}

Newton

void Newton(double x0, double es, double maxi) {
    double xOld = 0, ea = 0;
    int i = 0;

    cout << "i\\t" << "xi\\t" << "f(xi)\\t" << "f'(xi)" << "ea\\t" << endl;

    do {
        xOld = x0;
        x0 = df(x0);
        ea = abs((x0 - xOld) / x0) * 100;

        if (i == 0)
            cout << ++i << "\\t" << x0 << "\\t" << f(x0) << "\\t" << df(x0) << "\\t" << "--" << endl;
        else
            cout << ++i << "\\t" << x0 << "\\t" << f(x0) << "\\t" << df(x0) << "\\t" << ea << endl;

    } while(ea > es && i < maxi);
}0

Secant

void Secant(double x_1, double x0 , double es, int maxi){
    double xr = 0, xrOld = 0, i = 0, ea = 0;

    cout << "i\\t" << "xi-1\\t" << "f(xi-1)\\t" << "xi\\t" << "f(xi)\\t" << "ea\\t" << endl;

    do {
        xrOld = xr;
        xr = x0 - (f(x0) * (x_1 - x0)) / (f(x_1) - f(x0));
        ea = abs((xr - xrOld) / xr) * 100;

        if (i == 0)
            cout << ++i << "\\t" << x_1 << "\\t" << f(x_1) << "\\t" << xr << "\\t" << f(xr) << "\\t" << "--\\t" << endl;
        else
            cout << ++i << "\\t" << x_1 << "\\t" << f(x_1) << "\\t" << xr << "\\t" << f(xr) << "\\t" << ea << endl;

        x_1 = x0;
        x0 = xr;

    } while(ea > es && i < maxi);
}