Diferencia entre revisiones de «Cursos/E M T/3º Informática - Matemáticas»

Contenido eliminado Contenido añadido
HHHanzo (discusión | contribs.)
Sin resumen de edición
HHHanzo (discusión | contribs.)
Línea 49:
raíz cuadrada exacta
 
== Algoritmo de la raízbabilónico cuadrada==
 
[[Archivo:Sqrt babylonian algorithm.png|thumb|El algoritmo babilónico aproxima un [[rectángulo]] a [[cuadrado]].]]
El [[algoritmo]] babilónico<ref>No hay una evidencia directa de cómo los Babilónicos calculaban raíces cuadradas aunque hay conjeturas informadas. ([[Raíz cuadrada de 2#Notas]] da un resumen y referencias.)</ref> se centra en el hecho de que cada lado de un [[cuadrado]] es la raíz cuadrada del [[área]]. Fue usado durante muchos años para calcular raíces cuadradas a mano debido a su gran eficacia y rapidez. Para calcular una raíz, dibuje un [[rectángulo]] cuya [[área]] sea el [[Número real|número]] al que se le busca raíz y luego aproxime la base y la altura del rectángulo hasta formar o por lo menos aproximar un cuadrado.
 
El algoritmo se puede enunciar sin el uso de dibujos como sigue:
 
Raíz(x):
1Si el radicando tiene más de dos cifras, separamos las cifras en grupos de dos empezando por la derecha.
# Escoja dos números <math>b</math> y <math>h</math> tales que <math>bh=x</math>
# Si <math>h\approx b</math> vaya al paso 6, si no, vaya al paso 3
# Asigne <math>b\leftarrow\frac{h+b}{2}</math>
# Asigne <math>h\leftarrow\frac{x}{b}</math>
# Vaya al paso 2
# Escriba "<math>\sqrt x \approx b</math>"
[[Archivo:AlgoritmoRaiz.png|thumb|200px|[[Diagrama de flujo]] del algoritmo babilónico.]]
 
Este algoritmo aproxima la raíz cuadrada de cualquier número real tanto como se desee. Es claro que no se necesita conocer el valor de <math>h</math>, puesto que depende directamente de <math>x</math> y que el área del rectángulo siempre se aproxima a la raíz cuadrada de <math>x</math> sin importar el valor de <math>b</math> siempre y cuando <math>b>0</math>. De esta manera surge la [[función recursiva]]
 
:<math>f_0(x)=x\,</math>
2 Calculamos la raíz cuadrada entera o exacta, del primer grupo de cifras por la izquierda.
:<math>f_n(x)=\frac{1}{2}\left(\frac{x}{f_{n-1}(x)}+f_{n-1}(x)\right)</math>
de manera tal que <math>n</math> es la <math>n</math>-ésima aproximación a <math>\sqrt x</math>. Esto implica que
:<math>f_\infty(x)=\sqrt{x}</math>
 
Puesto que algunas raíces son [[Número irracional|números irracionales]] es necesario definir qué tanto es "aproximadamente". Afortunadamente nadie es capaz de escribir un número con una infinita cantidad de dígitos, por lo que el umbral de aproximación se limita a la cantidad de dígitos que se es capaz de escribir. Entonces podemos definir que el algoritmo termine en el momento que la última aproximación es la misma que la anterior (es decir, ya no se puede aproximar más).
 
=== Descripción formal ===
3El cuadrado de la raíz obtenida se resta al primer grupo de cifras que aparecen en el radicando.
 
De manera formal, se expresa el algoritmo babilónico usando [[pseudocódigo]] de la siguiente manera:
:{| width=61.8% border = 1
|
'''función''' <math>\mathrm{raiz}(x)\,</math>
:<math>r\leftarrow x</math>
:<math>t\leftarrow 0</math>
:'''mientras <math>t\neq r</math>'''
::<math>t\leftarrow r</math>
::<math>r\leftarrow \frac 1 2\left(\frac x r + r\right)</math>
:'''devolver''' <math>r\,</math>
|}
 
donde <math>x\leftarrow y</math> significa "sustituya el valor de <math>x</math> por del de <math>y</math>", y '''devolver''' expresa el resultado del algoritmo y su terminación.
4 Detrás del resto colocamos el siguiente grupo de cifras del radicando, separando del número formado la primera cifra a la derecha y dividiendo lo que resta por el duplo de la raíz anterior.
 
5 El cociente que se obtenga se coloca detrás del duplo de la raíz , multiplicando el número formado por él, y restándolo a la cantidad operable del radicando.
 
6 El cociente obtenido es la segunda cifra de la raíz.
 
7 Bajamos el siguiente par de cifras y repetimos los pasos anteriores.