Considere a série para o número
.
Implemente o algoritmo em uma linguagem de programação e aproxime o valor de
com diversos valores de
.
Implemente o algoritmo em uma linguagem de programação e aproxime o valor de
Passo 1
O enunciado pede para aproximar o número
implementando um algoritmo (em qualquer linguagem) que some os termos de
até
.
Conteúdo: séries infinitas (série de Taylor/Maclaurin para com
), fatoriais e programação básica (laços de repetição, acumulação).
Conteúdo: séries infinitas (série de Taylor/Maclaurin para
Passo 2
Antes de codar, vamos entender a teoria.
- A série de Taylor de
em torno de 0 é Para vira - Cada termo é
. O fatorial é o produto de 1 até . - Como não podemos somar infinitos termos, pegamos só até
: - À medida que
cresce, a soma parcial se aproxima mais do valor real de , pois os termos posteriores ficam muito pequenos.
Passo 3
Agora a implementação em Python (a ideia vale para outras linguagens):
def aproximar_e(t):
# Função que retorna soma parcial de 0 a t de 1/n!
soma = 0.0
fatorial = 1 # vamos atualizar fatorial de forma iterativa
for n in range(0, t+1):
if n > 0:
fatorial *= n # atualiza n! = (n-1)! * n
soma += 1.0 / fatorial # adiciona 1/n! à soma
return soma
# Exemplo de uso:
for t in [1, 2, 5, 10, 20]:
print(t, aproximar_e(t))
Explicação do código passo a passo:
- Inicializamos
soma = 0.0
efatorial = 1
(já serve para 0! = 1). - Para cada
n
de 0 atét
:- Se
n>0
, atualizamosfatorial = fatorial * n
(assim obtemos n! sem recalcular do zero). - Somamos
1/fatorial
ao acumuladorsoma
.
- Se
- No final,
soma
guarda a aproximação de.
Passo 4
Vamos ver o que o código imprime para alguns valores de
:
- t = 1: soma =
- t = 2: soma =
- t = 5: soma ≈ 2.7166666666666663
- t = 10: soma ≈ 2.7182818011463845
- t = 20: soma ≈ 2.7182818284590455
Resposta
Para diferentes
, a aproximação de
fica:
t = 1 → 2.0
t = 2 → 2.5
t = 5 → 2.7166666666666663
t = 10 → 2.7182818011463845
t = 20 → 2.7182818284590455
t = 1 → 2.0
t = 2 → 2.5
t = 5 → 2.7166666666666663
t = 10 → 2.7182818011463845
t = 20 → 2.7182818284590455