Escriba un programa que estime el valor de la constante matemática e, mediante el uso de la fórmula:
e = 1 + 1/1! + 1/2! + 1/3! + ...
Necesito que me corrijan si entendí bien, bueno, para empezar no recuerdo haber visto lo de la constante "e" en la preparatoria o al menos creo que la vi un poco en temas de derivadas, pero en fin, nunca la estudie muy a fondo, así que cuando lei la definición en la wikipedia me sentí deslumbrado por la cantidad de conceptos que no entiendo, y por lo tanto me di cuenta de mi falta de conocimiento teórico en matemáticas, bueno según a lo que yo entiendo tengo que sacar el valor de "e" que es aproximadamente : 2,7182818284590452..., mediante la formula que va en ascenso, es decir después de 1/3! sigue el 1/4! y así sucesivamente hasta que el resultado de un numero aproximado a e?.
Exactamente, aproximado, pero nunca exacto.
El número "e" es irracional.
Es decir: tiene un numero infinito de decimales. Generalmente con unos pocos es mas que suficiente para cualquier aplicación, pongamos 8 decimales por ejemplo deberían de ser suficientes.
No es un caso raro, hay muchos números irracionales que se usan habitualmente en matemática, como Pi o la raíz de 2
para hacerlo no es tan complicado, muestra algo de progreso si quieres recibir algo de ayuda real...
si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso
Calculo de pi en alta precisión (aporte) (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)
Hola mort, lo solicitado se refiere a las series extendidas de Taylor. Es una aproximación mediante la suma de sucesivos términos -que se obtienen de las derivadas sucesivas de f en a- siendo necesario que la funcion f (o un intervalo de ella) sea continua, o sea presente límites izquierdos y derechos iguales para todos a en dicho intervalo. Para acercarse más al valor correcto, se debe agregar el resto, como un término más.
el número e presenta la particularidad que todas su derivadas valen lo mismo. :)
Te sugiero que leas sobre ello, igualmente teniendo la FT para e solo es cuestión de codearlo... y ya engel lex hizo un gran aporte sobre Pi que puedes implementarlo para tu ejercicio. O bien hacer una versión simple sin gmp, pero recuerda el límite de las variables.
Saludos
El número 'e' es el límite de la sucesión:
an= (1+1/n)n
(http://upload.wikimedia.org/math/b/3/a/b3a27b55340c924723746011ca7f33b1.png)
luego es:
e= lim (1+1/n)n -> cuando n tiende a infinito
De modo que cuanto mayor sea el valor de N más exacto será el valor de 'e'. Por ejemplo:
(1 + 1/100)100= 2.7048138294031855135...
(1 + 1/1000)1000= 2.7169239326424202463...
(1 + 1/10000)10000= 2.7181459268252250988...
(1 + 1/100000)100000=2.7182682371744897556...
(1 + 1/1000000)1000000=2.7182804693193768982...
(1 + 1/10000000)10000000=2.7182816925449640074...
...
Solamente se puede tener el número aproximado pues es un número irracional.
Si usas programas de cálculo, es posible que si da un número muy elevado a N te de como resultado 1 y no 2,71....
También sirve:
(http://upload.wikimedia.org/math/c/c/d/ccd9aa9dff01f5631d00c01d6a263111.png)
Aquí te dejo una manera de hacerlo con VB6, tendrás que pasarlo a C
Private Sub Command1_Click()
Dim e As Variant
Dim i As Variant
For i = 0 To (100)
e = e + (1 / Factorial(i))
Next i
Print e
End Sub
Private Sub Command2_Click()
Dim e As Variant
e = (1 + 1 / 10000000000#) ^ 10000000000#
Print e
End Sub
Public Function Factorial(NumFactorizar As Variant) As Variant
Dim X As Variant
X = NumFactorizar
For i = 1 To NumFactorizar - 1
X = X * (NumFactorizar - i)
Next i
If X = 0 Then X = 1
Factorial = X
End Function
Seguramente haya una manera mejor, pero espero que te sirva de idea
Cita de: engel lex en 17 Febrero 2015, 13:59 PM
para hacerlo no es tan complicado, muestra algo de progreso si quieres recibir algo de ayuda real...
si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso
Calculo de pi en alta precisión (aporte) (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)
Yo había visto en un proyecto de VB6 que para calcular PI usaba ésto:
MsgBox Atn(1) * 4
Hola,
El sábado estaba algo aburrido y me propuse averiguar otra forma de obtener el número e o base de los logaritmos naturales. Mi objetivo era obtener algo así:
2.718281828458563411277850606202642376785584483618617451918618203875586213119643873179950822014292195
Pero no lo he conseguido. Sin embargo he podido reducir la forma de calcularlo que puse en mi ejemplo anterior, eliminando la función "Factorial":
Dim e As Double
Dim X As Integer
Dim Fact As Double
Fact = 1
For X = 0 To 100
If X > 0 Then Fact = Fact * CDbl(X)
e = e + (1 / Fact)
Next X
Print e
Cita de: okik en 24 Febrero 2015, 14:32 PM
Hola,
El sábado estaba algo aburrido y me propuse averiguar otra forma de obtener el número e o base de los logaritmos naturales. Mi objetivo era obtener algo así:
2.718281828458563411277850606202642376785584483618617451918618203875586213119643873179950822014292195
repito
Cita de: engel lex en 17 Febrero 2015, 13:59 PM
si quieres hacerlo en alta precisión (miles o millones de decimales) aquí un tema con un poco de eso
Calculo de pi en alta precisión (aporte) (https://foro.elhacker.net/programacion_cc/calculo_de_pi_en_alta_precision_aporte-t412338.0.html;msg1934259#msg1934259)