Mostrando entradas con la etiqueta algoritmo babilónico para cualcular una raiz cuadrada. Mostrar todas las entradas
Mostrando entradas con la etiqueta algoritmo babilónico para cualcular una raiz cuadrada. Mostrar todas las entradas

domingo, 3 de mayo de 2015

Algoritmo babilónico para calcular una raiz cuadrada. ( Artículo escrito en catalán )

Hi ha diversos algorismes per calcular l'arrel quadrada d'un nombre real positiu; un d'ells, és el conegut com algorisme babilònic. L'algorisme babilònic és especialment interessant perquè es fonamenta en una noció geomètrica senzilla: la longitud del costat d'un quadrat és igual a l'arrel quadrada del valor de l'àrea del quadrat. [ Observació: en aquest article parlarem tan sols del valor positiu de l'arrel quadrada ].

Per exemple, és clar que l'arrel quadrada d'un nombre quadrat, com ara 4 (valor de l'àrea), és igual a 2 (valor de lna longitud del costat), perquè 2·2=4 ('àrea d'un quadrat es calcula multiplicant la longitud del costat per si mateixa).

Si el radicand r no és un nombre quadrat, llavors caldrà imaginar un rectangle l'àrea, de costats a i b, l'àrea del qual sigui igual a r, és a dir, a·b=r. Evidentment, hi ha vàries possibilitats per escollir a i b, això és evident, però no és rellevant com s'escull a i b. Fet això, cal redefinir les dimensions d'aquest rectangle per tal que, conservant l'àrea, s'apropi a un quadrat , de tal manera que les la diferència entre les longituds dels dos costats desiguals sigui més petita; això ho farem de la manera següent:
$a \leftarrow \dfrac{a+b}{2}$
i
$b \leftarrow \dfrac{r}{a}$
Continuarem aquest procés fins que la diferència entre els valors de $a$ i de $b$ sigui tan petit com vulguem, d'acord amb la precisió amb què desitgem fer el càlcul de l'arrel quadrada. Llavors, complirà
$\sqrt{r}\approx a$

Exemple:
Considerem el radical $\sqrt{13}$. Com que $13$ no és un nombre quadrat, cal anar fent el que hem exposat:
--------------------------------------------------------
Iteració número 1: $a =4 \quad \text{i} \quad b=13/4=3,25$
--------------------------------------------------------
Iteració número 2: $a=\dfrac{4+3,25}{2}=3,625 \quad \text{i} \quad b=\dfrac{13}{3,625}\approx 3,5862$
--------------------------------------------------------
Iteració número 3: $a=\dfrac{4+3,25}{2}=3,625 \quad \text{i} \quad b=\dfrac{13}{3,625}\approx 3,5862$
--------------------------------------------------------
Iteració número 4: $a=\dfrac{3,625+3,5862}{2}=3,6056 \quad \text{i} \quad b=\dfrac{13}{3,6056}\approx 3,6055$
--------------------------------------------------------
Iteració número 5: $a=\dfrac{3,6056+3,6055}{2}\approx 3,6056 \quad \text{i} \quad b=\dfrac{13}{3,6056}\approx 3,6056$
(...)

Resultat:
Com podem veure a dalt, les longituds dels dos costats s'igualen a partir de la cinquena iteració, coincidint amb tres xifres decimals exactes pel cap baix; és a dir,
                        $\sqrt{13}\approx 3,6056$

Si desitgem més precisió, caldrà fer els càlculs prenent més xifres significatives; fent, és clar, més interacions.

$\square$


Aquest algorisme es pot implementar fent ús d'un ordinador o bé d'una calculadora programable, escrivint un programa. Hi ha molts llenguatges de programació adequats (C, Java, el llenguatge que incorpora MAXIMA, etcètera; per això, a continuació, donarem un esbós del programa, escrivint-lo en una mena de pseudocodi:

        // Càlcul de $\sqrt{r}$
  COMENÇA
        // entrada de dades
    radicand:=r // entrada del valor del radicand (volem calcular l'arrel quadrada d'aquest nombre)
    a:=a_0; // entrada de la longitud d'un dels costats del rectangle (a_0 < r)     b:=r/a; // longitud d'un dels costats del rectangle
    precisió:=p; // valor més petit de la diferència (en valor absolut) entre a i b
        // càlcul iteratiu
    FES MENTRE abs(a-b)>precisió
        a:=(a+b)/2;
        b:=r/a;
    FI DE FES
        // sortida
    ESCRIU "arrel de r=",a
  ACABA

$\square$


[nota del autor]