Método de Herón – Algoritmos antiguos
Es este artículo de describirá el método de Herón y su aplicación en varios lenguajes.
El método de Herón es un algoritmo que permite obtener la raíz cuadrada de cualquier número. También es llamado el método Babilonio ya que originalmente fue descubierto por este pueblo pero fue Herón de Alejandría el primero en dejar escrito el algoritmo en el siglo I D.C
Herón fue un matemático e ingeniero griego mayormente conocido por su fórmula para obtener la superficie un triángulo y por varios inventos entre los que se encuentran sistemas de acción automática.
Método de Herón – Algoritmo
Seleccionamos el número del cual se quiere obtener la raiz cuadrada y un nivel de error tolerado.
Raíz cuadrada de 16
Error tolerado:0.0000001
Paso 1
Aproximación = 4
Paso 2
Dividir el número por el número aproximado
36/4=9
Paso 3
Obtener la media entre los dos números
Nueva aproximación= (4+9)/2=6.5
Paso 4
Obtener el error
Error=36-(6.5*6.5)=6.5
Paso 5
Repetir los 2 y 3 hasta que el error sea aceptable
36/6.5=5,538461538 Nueva aproximación= (5,538461538+6.5)/2=6,019230769 Error=36-(6,019230769*6,019230769)=0,23113905 36/6,019230769=5,980830671 Nueva aproximación=(5,980830671+6,019230769)/2=6,00003072 Error=36-(6,00003072*6,00003072)=0,000368641 Nueva aproximación=(5,99996928+6,00003072)/2=6 Error=36-(6*6)=0;
Al final del algoritmo obtenemos una aproximación a la raíz cuadrada dentro del rango de error tolerado.
Pseudocódigo para PSeint
Proceso MetodoHeron
numero=36;
//1-Elegir un número arbitrario los más cercano al resultado posible
a=4;
//2-Dividir el número por el número aproximado
b = numero/a;
//3-Obtener la media entre los dos números
a=(a+b)/2;
//4-Si el valor tiene un error mayor a el esperado repetir pasos 2 y 3
Mientras abs(numero- a*a) > 0.00000000001 Hacer
Escribir a;
//Repito pasos anteriores
b=numero/a;
a=(a+b)/2;
FinMientras
Escribir a;
FinProceso
Algoritmo para PHP
<?php
$numero=36;
//1-Elegir un número arbitrario los más cercano al resultado posible
$a=4;
//2-Dividir el número por el número aproximado
$b = $numero/$a;
//3-Obtener la media entre los dos números
$a=($a+$b)/2;
//4-Si el valor tiene un error mayor a el esperado repetir pasos 2 y 3
while(abs($numero- $a*$a) > 0.00000000001)
{
echo "$a <br/>";
//Repito pasos anteriores
$b=$numero/$a;
$a=($a+$b)/2;
}
echo "$a";
Algoritmo para C
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(int argc, char** argv){
double numero=36.0;
//1-Elegir un número arbitrario los más cercano al resultado posible
double a=4.0;
//2-Dividir el número por el número aproximado
double b = numero/a;
//3-Obtener la media entre los dos números
a=(a+b)/2.0;
//4-Si el valor tiene un error mayor a el esperado repetir pasos 2 y 3
while(fabs(numero - (a*a)) > 0.00000000001){
printf("Valor: %.13f\n",a);
//Repito pasos anteriores
b=numero/a;
a=(a+b)/2.0;
}
printf("Valor: %.13f\n",a);
return 0;
}
Algoritmo para Python
numero=36
#1-Elegir un número arbitrario los más cercano al resultado posible
a = 4
#2-Dividir el número por el número aproximado
b = numero/a
#3-Obtener la media entre los dos números
a=(a+b)/2
#4-Si el valor tiene un error mayor a el esperado repetir pasos 2 y 3
while abs(numero- (a*a)) > 0.00000000001:
print(a)
#Repetir pasos anteriores
b=numero/a
a=(a+b)/2
print(a)
Aunque hoy en día la mayoría de los lenguajes de programación tienen funciones para encontrar las raíces cuadradas este algoritmo demuestra cómo es posible resolver problemas matemáticos con una serie de operaciones aritméticas sencillas.