%regula falsi
clear all
close all
clc

x=linspace(0.5,1.5);
f=@(x) 1./sqrt(x) -1;
Nmax=200;
tol=sqrt(eps);

[c] = RFALSI(f,x,Nmax,tol)
fplot(f)
xline(c)

function [x0] = RFALSI(f,x,Nmax,tol)
    m=x(1);
    M=x(end);
    x0= m - f(m)/(f(M)-f(m))*(M-m);
    k=1;
    e(k)=abs(f(x0));

    while e(k)>tol && k<Nmax
        r=(f(M)-f(m))/(M-m);
        x0= x0 - f(x0)/r;

        if f(x0)*f(M)<0
            m=x0;
        elseif f(x0)*f(M)>0
            M=x0;
        else
            return
        end
        k=k+1;
        e(k)=abs(f(x0));    
    end
end 