Вы находитесь на странице: 1из 4

En esta leccin vamos a calcular muchas cifras del nmero , que es muy conocido y aparece por ejemplo como

la relacin entre la longitud y el dimetro de una circunferencia. (Para qu tantas cifras?) El primer mtodo conocido para calcular con tanta precisin como uno quisiera fue propuesto por Arqumedes, y consiste en inscribir y circunscribir polgonos regulares en un crculo de radio 1. El permetro del polgono inscripto es menor que la longitud de la circunferencia y el permetro del circunscripto es mayor, as que esto nos permite encontrar una buenas cotas de . Utilizando algunas propiedades geomtricas se puede encontrar una formula que relaciona los lados del polgono inscripto de n lados con el de 2n lados. Con esta misma formula se pueden encontrar el lado del polgono de 4n lados y as sucesivamente. En cada paso la aproximacin es mejor y siempre el permetro de este polgono es menor que . Para el polgono circunscripto se puede realizar un procedimiento anlogo y obteniendo valores ligeramente mayores que . El problema de este mtodo es que se necesitan muchos pasos trabajando con mucha precisin para obtener . En los ltimos siglos se desarrollaron otros mtodos que permiten calcular como una serie , o sea una suma infinita. La idea es que a medida que uno suma ms y ms trminos el nmero se parece cada ves ms a . Por ejemplo: = 4(1 - 1/3 + 1/5 - 1/7 + 1/9 -1/11 +1/13 ...) Si sumamos slo hasta el 1/13 queda Print 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13) Resultado = 3,283738 Si sumamos slo hasta el 1/15 queda Print 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13 - 1/15) Resultado = 3,017071 Asi que 3,017 3,284

Para llegar a tener los dos primeros decimales correctos (3,14..) es necesario sumar alrededor de 150 trminos (sugerencia: escribir un programa). Hay varios mtodos, incluso algunos que permiten calcular el valor de algunos dgitos sin conocer el valor de todos los anteriores. En esta leccin vamos a utilizar uno que calcula las primeras cifras de una manera parecida a la que usamos para calcular las cifras de e Para ello buscamos otra serie que se parezca a una escritura en base factorial:

Estos factoriales formados slo por impares se conocen como doble factorial (7!! =1*3*5*7) De vuelta usamos un programa elemental y obtenemos Print 2*(1 +1/3 +1*2/3/5 +1*2*3/3/5/7 +1*2*3*4/3/5/7/9 +1! *2*3*4*5/3/5/7/9/11 +1*2*3*4*5*6/3/5/7/9/11/13 ) Salida: 3,132157 Adems esta es mejor ya que se necesitan muchos menos trminos para que el error sea pequeo. Por ejemplo alcanza con 10 trminos pera llegar al valor de 3,14 . La diferencia respecto de la serie de e es que en realidad no esta en base factorial, porque los en los denominadores no estn los nmeros pares, pero es bastante parecida. Adems las "cifras" son demasiado grandes, pero esto tampoco representa un problema serio aunque complica un poco el programa. Para obtener ms cifras escribimos un programa parecido al de la leccin anterior, donde sumamos slo los primeros trminos. En un primer momento, se puede tratar de reemplazar el 1 que aparece en e por el numerador de las fracciones: ' Defino algunas constantes y variables '??????????????? 'Inicializo pi() arriba = 2 ' el dos de adelante For t = 1 To Terminos arriba = arriba * t pi(t) = arriba Next t ' Imprimo el numero en pantalla igual que antes '??????????????? Pero en seguida arriba se hace muy grande y aparece un error. Entonces para calcularlo hacemos todas las cuentas en base doble factorial, pero para que sea ms rpido sacamos factor comn y multiplicamos una sola vez por cada nmero. Por ejemplo si tomamos solo 4 trminos en vez de sumar de esta manera 2,(2*1)(2*1*2)(2*1*2*3)!! Hacemos la cuenta as: 2!!+1*(0,2!!+2*(0,02!! +3*0,002!!))

Para no tener que escribir el mismo cdigo varias veces, agregamos dos subrutinas, una que multiplica a las cifras por un nmero y otra que corrige la escritura de manera que el valor en cada posicin est en el rango permitido. Deflng A-Z Const cifras = 1000 Const terminos = 3333'Deberia llamarse TerminosMenosUno ' Cifras de pi en base doble a factorial

Dim Shared pi(0 TO terminos) ' 0=parte entera Const PrimeroNoNulo = 0 Const UltimoNoNulo = terminos

Cls ini! = Timer For t = terminos TO 1 Sete -1 If t Mod 100 = 0 Then Print "Voy por el "; t; "de "; terminos; Timer - ini!' cartel para no aburrirse End If ' Calculo el termino t pi(t) = pi(t) + 2' el dos de adelante Multiplicar t Arrastrar Next t pi(0) = pi(0) + 2 Cls Print pi(0); "."; ' es casi igual que para e ' calculo las cifras en base 10 For c = 1 TO cifras pi(0) = 0 ' borro la cifra anterior 'Multiplico por 10 para obtener la siguiente cifra Multiplicar 10 Arrastrar Print pi(0); ' la parte entera es la nueva cifra Next c Print Print Timer - ini! SUB Arrastrar arrastre = 0 ' borro el valor anterior de arrastre For t = terminos TO 1 Sete -1 ' De atras hacia adelante pi(t) = pi(t) + arrastre ' el valor tiene que estar entre 0 y (2*t+1)-1 arrastre = pi(t) \ (t * 2 + 1) pi(t) = pi(t) Mod (t * 2 + 1) Next t pi(0) = pi(0) + arrastre'no hay limites para la parte entera End SUB SUB Multiplicar (n) For t = 0 TO terminos pi(t) = pi(t) * n Next t End SUB

Para calcular cuantos trminos necesitamos sumar, basta notar que cada uno es menos de la mitad del anterior. As que si sumamos todos los trminos que cortamos obtenemos un nmero menor que el doble del primero que cortamos. Adems el termino n es menor que 1/2n. Entonces si cortamos en el termino n el

error es menor que 2*2*1/2n. Con esto podemos verificar que tomamos suficientes trminos.

Ejercicios:
1. Escribir un programa que calcule utilizando las dos series que aparecen en esta leccin (sin utilizar base factorial ni nada raro). Buscar en cada caso la relacin entre cantidad de trminos sumados y el error (aproximadamente). 2. Calcular la relacin entre el lado de un polgono regular de n lados y uno de 2n lados inscriptos en un circulo. Hacer lo mismo para polgonos circunscriptos. Utilizar estas formulas para calcular . Qu pasa cuando n es demasiado grande? 3. Analizar el tiempo que tarda el programa utilizado para calcular 1000 cifras de en funcin de la cantidad de cifras. Estimar cuanto tiempo tardara en calcular 10000 cifras. Se te ocurre por qu? 4. Analizar las primeras 100 cifras de y ver que no son peridicas (hasta donde uno analiz). (Nota: como no es racional las cifras no son peridicas, aunque la demostracin de la irracionalidad de necesita anlisis y es bastante ms difcil que la de e.)

Вам также может понравиться