Imprimir
Publicado el por

Pi por teorema de Pitágoras: una posible solución para HP41c

i41CX_PrintoutLa semana pasada os propusimos un problema: cómo calcular Pi con vuestra calculadora, utilizando el teorema de Pitágoras. La propuesta inicial era preparar un programa para la HP Prime (que sigue en pie). Dimos como alternativa la posibilidad de crearlo para cualquier otra calculadora HP. ¿Cuál mejor que la HP41c? Como hace tiempo que no utilizo funciones de módulos, decidí usar sólo funciones standard, no las contenidas en módulos como el SOLVE del Advantage pack.

Como dijimos, hemos utilizado el polígono circunscrito en la circunferencia, doblando el número de lados del polígono en cada iteración. Este método se tiende a pi "por debajo". Una solución alternativa, que utilizaremos otro día se basa en el polígono cuyos lados son tangentes al círculo, y tiende a Pi "por encima".

El programa encuentra promero el lado del cuadrado inscrito en la circunferencia mediante el teorema de Pitágoras: dado r = ½ del diámetro (d), entonces el lado es l12 = r2+r2 = 2r2 => l1 = r*sqrt(2),

Desde aquí, viendo el dibujo, el siguiente polígono se puede calcular como la hipotenusa de un triángulo cuyo lado es la mitad del lado del cuadrado, y el otro lado, la diferencia entre el radio y el lado de otro triángulo, éste último con un lado que es el medio lado del polígono anterior, y como hipotenusa, el radio del círculo. Viéndolo escrito en notación matemática, es más fácil que escribiéndolo:

l(i+1) =sqrt((li/2)^2+(r-sqrt(r2-(li/2)2))^2)

Fijémonos que (li/2)^2 aparece dos veces: la única "astucia" que se me ocurre es intentar calcularlo una sóla vez cada iteración, utilizando el stack para guardar una copia para después. La belleza del RPN. Bueno, y ahorrar una tecla debido a que el cuadrado de (li/2)^2-r2 (que se puede calcular sin cambiar x por y) es igual a lo que buscamos, el cuadrado de r2-(li/2)2.

El programa para el HP41c está aquí al lado. Atención a la bella impresión, cortesía del programa i41cx+ de mi iPad. He puesto un stop (R/S) al principio del bucle, para  poder ver el estado de cada iteración:

¿Alguien se atreve con el polígono exterior?

IMG_1430

Comentarios: 1
Más sobre: Pi, Pitágoras, RPN, hp41c

Comentarios: 1

Oscar Campo |
Re: Pi por teorema de Pitágoras: una posible solución para HP41c
Gracias por compartirlo.
Tuve que revisar un poco en la red para poder entender más profundamente el concepto de aproximarse a PI mediante el teorema de Pitagoras y realmente es fascinante.
Comparto aquí el código que escribí para la HP-50:


«
→ n
«
2 √ 'L' STO
2 'nL' STO
1 n 1 -
FOR i
L 2 / SQ
1
1
L 2 / SQ - √ - SQ + √
'L' STO
2 nL * 'nL' STO
nL L * 'aPI' STO
NEXT
»
aPI →NUM
{'L' 'nL' 'aPI'} PURGE
»

Saludos!!
Solo los usuarios registrados pueden poner comentarios.
Identificarse y añadir comentario Regístrese ahora