Faça uma função para calcular o número neperiano usando uma série. A função deve ter como parâmetro o número de termos que serão somados (note que, quanto maior o número, mais próxima a resposta estará do valor
).
Passo 1
O exercício pede uma função que receba um número de termos e retorne a soma truncada da série de Taylor para o número de Euler (base do logaritmo neperiano). O conteúdo é série infinita e fatorial, e vamos precisar calcular fatoriais de forma eficiente e acumular a soma de 1/n!.
Passo 2
A série é dada por
Para aproximar, truncamos em
termos:
Quanto maior
, mais próxima de
fica a soma.
Passo 3
Em vez de calcular o fatorial do zero a cada iteração (o que seria ineficiente), podemos usar a relação
e manter uma variável
que começa em 1 (correspondente a
) e a cada passo multiplica pelo índice atual. Isso evita recálculo repetido.
Passo 4
Assim, o algoritmo geral em Python fica: 1) inicializar
e
; 2) para cada
de 0 até
, se
fazemos , depois incrementamos
com
; 3) no fim retornamos
.
Passo 5
Testando com
temos
. Para
,
. Para
, obtemos aproximadamente 2.7166667, já bem perto de
.
Resposta
def neperiano(N):
“”“Calcula a aproximação de e somando 1/n! de n=0 até n=N.”""
soma = 0.0
fact = 1
for n in range(0, N+1):
if n > 0:
fact *= n
soma += 1.0 / fact
return soma
“”“Calcula a aproximação de e somando 1/n! de n=0 até n=N.”""
soma = 0.0
fact = 1
for n in range(0, N+1):
if n > 0:
fact *= n
soma += 1.0 / fact
return soma
Exemplo de uso:
#>>> print(neperiano(10)) # Aproximação de e usando 10 termos