Free Web Site - Free Web Space and Site Hosting - Web Hosting - Internet Store and Ecommerce Solution Provider - High Speed Internet
Search the Web

Método de la Secante


Este método consiste en generar la sucesión

con el criterio de parada a partir de X0 y X1 suficientemente cerca de t, tal que f(t) = 0

Implementación

class Secante
{
    public static double EPSILON = 0.00005;
    public final static int MAX_ITER = 500;     
    
    private double xi,xf;
    
    private int cont;
    
    public void asignarDatos(double xi , double xf)
    {
        this.xi = xi;
        this.xf = xf;
        this.cont = 0;
    }
    
    public int numIteraciones( )
    {
        return cont;    
    }
    
    public double raiz(Evaluar e)
    {
        do
        {
            double temp = xf;
            double aux = e.f(xf) - e.f(xi); 
            
            if (aux != 0)
                xf -= (e.f(xf) * (xf - xi)) / aux;
            else
                break;
            
            xi = temp;
            
            if (++cont > MAX_ITER ) break;
            
            if(Math.abs(xf - xi) <= EPSILON) break;
            
        } while(true);    
    
        return xf;
    }     
}

Programa de prueba

Consiste en aplicar el método de la secante a un polinomio de grado tres.

Código fuente

class pruebaSecante
{
    public static void main(String arg[ ])
    {
        Secante s = new Secante( );    
        
        double coef[ ] = { -1.0 , 0.0 , 0.0 , 1.0 };
        
        EvalPolinomio p = new EvalPolinomio(coef);
        
        s.asignarDatos(0.0 , 2.0);
        
        System.out.println("\n\tPrograma de prueba para metodo de la Secante");
          System.out.println("\t--------------------------------------------");
        
        System.out.println("\n\tf(t) : " + p.toString("t"));
        
        System.out.println("\n\tf(0.0) : " + p.f(0.0));
        System.out.println("\tf(2.0) : " + p.f(2.0));
        
        System.out.println("\n\traiz : " + s.raiz(p));
    
        System.out.println("\n\tnumero de iteraciones : " + s.numIteraciones( ));

        System.out.println( );
    }        
}

bajar archivos
anterior siguiente