Método de Herón – Algoritmos antiguos

Método de Herón
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
Raíz cuadrada de 16 Error tolerado:0.0000001
Paso 1
Elegir un número arbitrario los más cercano al resultado posible
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
Si el valor tiene un error mayor a el tolerado repetir pasos 2 y 3
Error=36-(6.5*6.5)=6.5
Paso 2
36/6.5=5,538461538
Paso 3
Nueva aproximación= (5,538461538+6.5)/2=6,019230769 Error=36-(6,019230769*6,019230769)=0,23113905
Paso 2
36/6,019230769=5,980830671
Paso 3
Nueva aproximación=(5,980830671+6,019230769)/2=6,00003072 Error=36-(6,00003072*6,00003072)=0,000368641
Paso 2
36/6,00003072=5,99996928
Paso 3
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; }
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.