<< Las cifras de e >> |
Lecciones anteriores:
Base factorial y otras parecidas
En esta lección vamos a
calcular muchas cifras del número e. Este tiene muchas
aplicaciones en análisis matemático, en donde aparece por
ejemplo en las funciones ex y ln(x) (logaritmo natural
o neperiano), que están en casi todas las calculadoras. Para
obtener las primeras cifras podemos utilizar la función exp
que calcula ex. Así
que el programa sería
Print exp(1#)
(Realmente muy sencillo)
Así obtenemos que
e=2.71828182845905... (la última cifra aparece redondeada)
2.7182818284590452970994047064
Pero de esta manera no podemos obtener más de unas 15 cifras.
También podemos obtener e analizando el siguiente problema:
A principio de año depositamos $100 en un banco que nos da el 100% de interés. Así que si volvemos a fin de año nos devuelven $200. Si en cambio volvemos a mitad de año como paso la mitad del tiempo nos dan la mitad de interés o sea el 50% así que lo volvemos a depositar y en esta segunda mitad del año nos da otro 50% más, o sea $150+$150*50/100=$225 o sea que ¡gane $25 más! Otra forma de calcular esto es así:
Inicio =$100
Mitad =$100+$100*50/100 =$100*(1+50/100) =$100*(1+1/2) =$150
(Sacando factor común $100)
Final =$150+$150*50/100 =$150*(1+1/2) =$225
Pero reemplazando a $150 por $100*(1+1/2) queda
Final =$100*(1+1/2) *(1+1/2) =$100*(1+1/2) *(1+1/2) =$100*(1+1/2)2 =$225
Si fuéramos al banco cada 4 meses nos darían el 25% cada ves, así que al final obtendríamos $100*(1+25/100) *(1+25/100) *(1+25/100) *(1+25/100) = $100*(1+1/4)4= $244,140625
Engolosinados tratamos de ir cada ves más seguido para obtener más plata, vamos cada 1 mes, todas las semanas, cada 10 minutos, pero por más que nos esforcemos nunca podemos obtener más de cierta cantidad de dinero. ¿Cuál es esa cantidad?
Para resolverlo escribimos un programa que calcule $100 * (1+1/n)^n para distintos n, o mejor (1+1/n)^n, por ejemplo para n=1, 10, 100, 1000, ... .
Lo primero que uno nota es que a partir de un momento el resultado es ¡uno! Esto se debe a que si 1/n es muy chiquito (muy chiquito en comparación con 1) al sumarle 1, no le alcanzan los dígitos a la computadora y redondea a 1, y al elevarlo a la n da 1. También se pueden obtener resultados mayores que 3, cuando n es muy chiquito, pero no tanto, de manera que en ves de redondear para abajo la computadora redondea para arriba
Así que los valores más confiables son los del medio, donde n ya es grande pero 1/n todavía no es muy chico (en mi computadora n=10000 aproximadamente). En estos casos los valores se parecen mucho a e. Se puede demostrar que en realidad si uno trabaja con infinita precisión estos números se acercan cada ves más a e. Bueno, en realidad esta es una de las definiciones posibles de e. Lo malo es que este método nos permite calcular sólo las primeras 6 o 7 cifras de e.
(Nota: en realidad este no es un buen método para volverse rico, porque como este efecto es conocido se aclara siempre el interés y el periodo de tiempo, esta es una de las causas por las que aparecen varios "intereses" en la letra chiquita)
Otra posible definición es
e =1/0!+ 1/1! +1/2! +1/3! +1/4! +1/5! +1/6! +1/7! +...
Habría que demostrar que esta suma no da infinito, y que el e que obtenemos así es el mismo que el de antes (Esto esta en cualquier libro de Análisis I, pero obviamente hay que saber algo de análisis para entenderlo).
De vuelta usamos un programa elemental y obtenemos
Print 1/1 +1/1 +1/2 +1/2/3 +1/2/3/4 +1/2/3/4/5 +1/2/3/4/5/6 +1/2/3/4/5/6/7 +1/2/3/4/5/6/7/8 +1/2/3/4/5/6/7/8/9
Salida: 2.718282
Queda como ejercicio escribir un programa para que calcule la suma de los primeros n términos, pueden ser de ayuda algunas de las ideas de Recurrencia e iteraciones.
Otra posibilidad es notar que salvo los dos primeros términos esta escrito en base factorial , o sea que e=2,11111111111111111...! y lo único que tenemos que hacer es pasarlo a base 10. Para ello lo que hacemos es sacarle la parte entera y multiplicarlo por 10, para ir obteniendo las cifras. Como es imposible usar un número infinitamente largo, lo cortamos en alguna de sus cifras.
DefInt A-Z Const Terminos = 500 ' quizas deberia llamarse TerminosMenos1 Const Cifras = 1000 Cls ' Cifras de e en base factorial Dim e(2 To Terminos) ' 0=parte entera 'La parte entera la pongo a mano en la pantalla Print "2."; 'las cifras "decimales" de e valen 1 For t = 2 To Terminos e(t) = 1 Next t ' calculo las cifras en base 10 For c = 1 To Cifras 'Multiplico por 10 For t = 2 To Terminos e(t) = e(t) * 10 Next t 'Calculo el arrastre arrastre = 0 ' borro el valor viejo del arrastre For t = Terminos To 2 Sete -1 ' De atras hacia adelante e(t) = e(t) + arrastre ' en la posicion t, los valores van de 0 a t-1 arrastre = e(t) \ t e(t) = e(t) Mod t Next t ' La parte entera es la que arrastro Print arrastre; Next c
Lo primero que uno se pregunta es cuántos términos, o sea cuantas cifras en base factorial hay que poner para tener las primeras 1000 cifras en base 10 correctas. Se puede hacer el cálculo de la parte que cortamos de la siguiente manera:
Si llamamos f al número que obtenemos al cortar e
e = 2,111111111...1111111111111111111111...! f = 2,111111111...1111111111110000000000...! (k unos) e-f= 0,0000000000000000000000001111111111...! (k ceros) e-f< 0,0000000000000000000000002000000000...! (k ceros y un 2 en la posición k+1) Así que error =e-f <2*1/(k+1)!. Si k=terminos=500 entonces error<2/501!=3,2 10-1137 . Por lo tanto las primeras 1000 cifras, que fueron las que calculamos están correctas.
Ejercicios:
Lecciones siguientes:
La idea es que hagan los ejercicios y piensen que otras cosas interesantes se pueden hacer relacionadas con estos temas. Cuéntennos lo que consiguieron y pregunten lo que no les salió. Envíen sus preguntas, dudas, sugerencias, experiencias y propuestas. Nuestra dirección es cym98@oma.org.ar .
También nos gustaría saber tu opinión sobre esta clase. Les pedimos que se tomen unos instantes y contesten estas preguntas. Con tu ayuda podremos hacer un curso cada vez mejor.
OmaNet Curso CyM98 | OmaNet - Educación Interactiva www.oma.org.ar/omanet | omanet@oma.org.ar |
mensajes: webmaster@oma.org.ar |