/*
* 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.