Função para Cálculo pelo Método Secante para Gretl - Blog do Estudante de Atuariais

quinta-feira, 4 de abril de 2019

Função para Cálculo pelo Método Secante para Gretl


function [x,k,resultado]=secante(x0,x1,eps,del,kmax)
    // [x,k,resultado]=secante(x0,x1,eps,del,kmax)
    eps_m = number_properties('eps')
    f_x0 = f(x0) ; f_x1 = f(x1)
    for k=1:kmax
        delta_f = f_x1-f_x0
        if abs(delta_f)<sqrt(eps_m) then
            resultado = -1
            break       
        end
        x = x1-f_x1*(x1-x0)/delta_f
        f_x = f(x)
        printf('k=%g x0=%g f(x0)=%g x1=%g f(x1)=%g x=%g f(x)=%g\n',k,x0,f_x0,x1,f_x1,x,f_x);
        if abs(f_x)<eps then
            resultado = 0
            break
        end
        if abs(x-x1)<del then
            resultado = -2
            break
        end
        x0 = x1 ; f_x0 = f_x1
        x1 = x ; f_x1 = f_x
    end
    if k>kmax then
        resultado = -3
    end
endfunction

Nenhum comentário:

Postar um comentário