Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Virux23 en 28 Febrero 2013, 04:54 am



Título: Metodo Newton-Raphson Error en compilacion
Publicado por: Virux23 en 28 Febrero 2013, 04:54 am
Código
  1.  

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 );
            }
        }
    }



Título: Re: Metodo Newton-Raphson Error en compilacion
Publicado por: leogtz en 28 Febrero 2013, 07:54 am
while (x  = x1  &&  i<100);{

Estás haciendo una asignación, debería ser una comparación, utiliza "==".


Título: Re: Metodo Newton-Raphson Error en compilacion
Publicado por: Oblivi0n en 28 Febrero 2013, 14:03 pm
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