x = número a calcular raiz cuadrada.
n = número que multiplicado por sí mismo más se aproxima a x.
nn = aproximación y/o igualación a x.
* Ejemplo de uso para cáculo de raiz cuadrada de 15
x = 15
Búsqueda de los valores de n y nn ( n · n = nn ):
...
2 · 2 = 4
3 · 3 = 9
4 · 4 = 16 <- este número(nn) es el más cercano a x, por tanto n = 4 y nn = 16
5 · 5 = 25
6 · 6 = 36
...
Código (MetodoBabilonico.java):
// Cálculo raiz cuadrada usando método Babilónico
package metodobabilonico;
public class MetodoBabilonico {
public static void main(String[] args) {
// Definición variables
double n = 0, nn = 0, r, x = 15;
double min = Double.MAX_VALUE;
double aux;
// Busca número más cercano
for (int i = 1; i < Integer.MAX_VALUE; i++) {
r = i * i;
aux = Math.abs(r - x);
if (aux < min) {
n = i;
nn = r;
min = aux;
} else {
break;
}
}
// Formula método Babilónico + aproximación
double m_babilonico = (x + nn) / (2 * n);
double aproximacion = Math.abs(m_babilonico * 100 / Math.sqrt(x) - 200);
// Mostrar resultados en pantalla
System.out.println("Raiz cuadrada de " + x);
System.out.println("Resultado real:\t\t " + Math.sqrt(x));
System.out.println("Método Babilónico:\t " + m_babilonico);
System.out.println("Aproximación: (%): " + aproximacion);
}
}
Resultado:
run:
Raiz cuadrada de 15.0
Resultado real: 3.872983346207417
Método Babilónico: 3.875
Aproximación: (%): 99.94793022297507
BUILD SUCCESSFUL (total time: 1 second)