Metodo Newton-Raphson Error en compilacion

Iniciado por Virux23, 28 Febrero 2013, 04:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Virux23

Código (java) [Seleccionar]

Hola compañeros eh estado haciendo diferentes métodos y tengo un gran problema por que me marca un while parsing y no sé que hacer espero que alguien me explique en dónde se encuentra mi error y como puedo corregirlo 

import java.util.Scanner;
   
    public class NewtonRaphson{
       
        public static double funcion(double x){
            return 4*Math.pow(x,6)+ 3*Math.pow(x,4) + 2*Math.pow (x,2) + 8*x - 195.42;
        }
        public static double derivada(double x){
         return   24*Math.pow(x,5)+ 12*Math.pow(x,3) + 4*x + 8;
        }
       
        public static void main(String [ ] args) {
            Scanner in = new Scanner (System.in);
            System.out.println("Metodo de Newton-Raphson");
             System.out.println("Ingrese el valor inicial de x0 :");
             double err, x1, x = in.nextDouble ( );
             int i = 0;
             System.out.println ( ) ;
             do {
                 x1 = x;
                 x = x - funcion (x) / derivada (x);
                 err =   Math.abs(( x - x1) / x);
                 System.out.println("x" + i + "=" + x1 );
                 System.out.println("error" + err);
                i++;
                }
                while (x  = x1  &&  i<100);{
                if (i == 100){
                System.out.println("La solucion no es convergente " );
            }
            else{
                System.out.println ("La solucion es " + x );
            }
        }
    }


leogtz

while (x  = x1  &&  i<100);{

Estás haciendo una asignación, debería ser una comparación, utiliza "==".
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Oblivi0n

Además del problema ya mencionado del while, el metodo de newton rapson no tiene como criterios de parada solo el numero de iteracciones, en el while tendrías que poner funcion(x) == 0 && error <= cotaError