Formulación:
x = número a calcular.
n = número que multiplicado por sí mismo, más se aproxima a x.
Código (MetodoBakhsali.java):
// Cálculo raiz cuadrada usando método Bakhsali
package metodobakhsali;
public class MetodoBakhsali {
public static void main(String[] args) {
// Definición variables
double n = 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;
min = aux;
} else {
break;
}
}
// Formula método Bakhsali + aproximación
double numerador = Math.pow(n, 4) + 6 * Math.pow(n, 2) * x + Math.pow(x, 2);
double denominador = 4 * Math.pow(n, 3) + (4 * n * x);
double m_bakhsali = numerador / denominador;
double aproximacion = Math.abs(m_bakhsali * 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 Bakhsali:\t " + m_bakhsali);
System.out.println("Aproximación: (%): " + aproximacion);
}
}
Resultado:
run:
Raiz cuadrada de 15.0
Resultado real: 3.872983346207417
Método Bakhsali: 3.872983870967742
Aproximación: (%): 99.99998645074668
BUILD SUCCESSFUL (total time: 0 seconds)
entendible
ResponderEliminargracias
ResponderEliminarNo entendí ni madres..
ResponderEliminar