28 de mayo de 2011

Método de Bisección!

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package biseccion;
import javax.swing.*;
/**
 *
 * @author Admin
 */
public class Main {
    /**
     * @param args the command line arguments
     */
    public static double f (double x) {
        double rta;
        rta= Math.pow(x,3) + 4 * Math.pow(x,2) -10;
        return (rta);
    }

    /*
    public static double df (double x) {
        double rta;
        rta= x * Math.sin(x);  //Aqui colocar la derivada de f
        return (rta);
    }
    */
    public static void main(String[] args) {
        // TODO code application logic here
        double a, b, p;
        double tol=0.0001;
        boolean sw=true;

        a= Double.parseDouble(JOptionPane.showInputDialog("Deme el valor de a?"));
        b= Double.parseDouble(JOptionPane.showInputDialog("Deme el valor de b?"));

        //JOptionPane.showMessageDialog(null, "Valor de f(a):" + f(a));

        if (f(a)*f(b) <0) {

            do {
                p= (b-a)/2 + a;
                JOptionPane.showMessageDialog(null, "Valor de p:" + p + " - Valor de f(p):" + f(p));
                if (f(p)==0) {
                    JOptionPane.showMessageDialog(null, "La raiz es: " + p);
                    sw=false;
                }
                else if (f(a) * f(p) >0) {
                         a=p;
                      }
                     else {
                         b=p;
                     }

            } while ((sw) && (Math.abs(f(p))>tol));

           if (sw)
              JOptionPane.showMessageDialog(null, "Valor cercano a la raiz:" + p);
        }
        else
              JOptionPane.showMessageDialog(null, "En ese intervalo no se asegura una raiz f(a)=" + f(a) + " - f(b)=" + f(b));
    }
}

No hay comentarios:

Publicar un comentario

En este espacio los comentarios son moderados con el fin de que si son dudas presentadas el proceder a su aclaración y también de ese modo verificar la información que se publique en el blog.

Nota: solo los miembros de este blog pueden publicar comentarios.