Metodos Numericos, Metodo De La Secante
Ingeniería en Sistemas Computacionales
Métodos Numéricos
Jonathan Salazar Romo
07/02/12
Jacobo Natanael Lopez VelazquezSolución = -5.89102
Aproxima a = 0.000014
Código:
package metodos;
public class calculo
{
public static void main(String[] args)
{
//Calculando la ecuación = X^3 + 6X^2 + 2X + 8double pa=-13;
double pc=5;
double pb;
double error = 0.00001;
int total = 30;
int cont=0;
//Encabezado
System.out.println("No A B C f(A)f(B) f(C)");
while(true)
{
//Recorta
pb=(pa+pc)/2;
pa*=1000000;
int ipa = (int)pa;
pa=(double)ipa;
pa/=1000000;
pb*=1000000;
int ipb =(int)pb;
pb=(double)ipb;
pb/=1000000;
pc*=1000000;
int ipc = (int)pc;
pc=(double)ipc;
pc/=1000000;
double fa = (pa*pa*pa)+(6*pa*pa)+(2*pa)+8;
fa*=1000000;int ifa=(int)fa;
fa=(double)ifa;
fa/=1000000;
double fb = (pb*pb*pb)+(6*pb*pb)+(2*pb)+8;
fb*=1000000;
int ifb=(int)fb;
fb=(double)ifb;
fb/=1000000;double fc = (pc*pc*pc)+(6*pc*pc)+(2*pc)+8;
fc*=1000000;
int ifc=(int)fc;
fc=(double)ifc;
fc/=1000000;
System.out.println(++cont+" "+pa+" "+pb+" "+pc+""+fa+" "+fb+" "+fc);
if(cont>=30 || Math.abs(fb) <= error)
{
System.out.println("Solución más aproximada: "+pb+" ya que es cercano a 0 "+fb);
break;
}if(pa<0 && fa >=0 || pa >= 0 && fa < 0 || pb < 0 && fb >= 0 || pb >=0 && fb <0)
{
pc=pb;
continue;
}
if(pc <0 && fc >= 0 || pc >= 0 && fc < 0)
{
pa=pb;
}
else
{
System.out.println("No Existe Solución");
break;
}
}
}
}
Regístrate para leer el documento completo.