Foros del Web » Programación para mayores de 30 ;) » Java »

Método de Newton

Estas en el tema de Método de Newton en el foro de Java en Foros del Web. Escribe un programa que escriba por pantalla la raíz cuadrada de un número introducido por teclado.Para ello utilizaremos el método de Newton: Si A es ...
  #1 (permalink)  
Antiguo 03/11/2010, 12:07
 
Fecha de Ingreso: octubre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Método de Newton

Escribe un programa que escriba por pantalla la raíz cuadrada de un número introducido por teclado.Para ello utilizaremos el método de Newton: Si A es un aproximación a la raíz cuadrada de x, (A+(x/A))/2 es una aproximación mejor. Puedes iniciar la aproximación A con uno, e iterar hasta que la diferencia entre una aproximación y la calculada en el paso anterior sea menor que la precisión deseada (número de dígitos significativos. Declara la precisión deseada como una constante (p.e. final double PRECISION = 1E-5)

Comprueba el resultado con Math,sqrt().


Tengo esto:

import java.util.Scanner;
public class Taylor {

public static void main(String[]args){
Scanner entrada=new Scanner(System.in);
System.out.println("Introduce un número");
boolean salir=false;
double A=1.0;
double aux;
int x=entrada.nextInt();
while(!salir){
aux=(A+(x/A))/2;
if(A-aux<1E-5)
salir=true;
else
A=aux;
}

System.out.println("La raíz de "+x+" es "+A);

}


}


Y me sale por ejemplo;la raíz de 9 es 1.0


No encuentro el fallo o lo que me falta,¿alguien me podría ayudar?


Muchas gracias.
  #2 (permalink)  
Antiguo 04/11/2010, 02:19
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: Método de Newton

Esto ya está mejor

Algo que considero básico para aprender qué es lo que está pasando, sobre todo con los primeros programas que hagas, es a poner system.outs en todo lo que hagas para ver cuales son los valores que van tomando las variables. Otra opción si tienes un ide potente es activar el modo debug y ejecutar el código paso a paso (evitaria poner los System.out.println).

Así descubres si algo no se está comportando como quieres y lo puedes corregir

Otra cosa que deberías hacer es poner los paréntesis en el if-else (aunque sea sólo para ejecutar una única línea de código...).

Etiquetas: newton
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.