You are on page 1of 1

#include <iostream>

#include <cmath>

using namespace std;

double f(double x) {
        return x*x - 4;
}

double secant(double x0, double x1, double tol) {


        double fx0 = f(x0);
        double fx1 = f(x1);
        double x2, fx2;
        int iter = 0;

        do {
                x2 = x1 - ((fx1 * (x1 - x0)) / (fx1 - fx0));
                fx2 = f(x2);

                x0 = x1;
                fx0 = fx1;
                x1 = x2;
                fx1 = fx2;

                iter++;
        } while (fabs(fx2) > tol && iter < 100);

        if (iter == 100) {
                cout << "Tidak konvergen setelah 100 iterasi." << endl;
                return NAN;
        }

        cout << "Akar persamaan: " << x2 << endl;


        cout << "Iterasi: " << iter << endl;

        return x2;
}

int main() {
        double x0, x1, tol;

        cout << "Masukkan tebakan awal x0: ";


        cin >> x0;
        cout << "Masukkan tebakan awal x1: ";
        cin >> x1;
        cout << "Masukkan toleransi: ";
        cin >> tol;

        secant(x0, x1, tol);

        return 0;
}

You might also like