A série infinita apresentada na Equação 11.16 converge para o valor \lambda=\frac{\pi^{4}}{90} quando n \rightarrow \infty. Escreva um programa em Python para calcular a aproximação de f(n) com base em um número de iteraçōes fornecido pelo usuário. Para cada iteração, calcule o erro relativo em relaçāo ao valor exato de \lambda. Ao final, gere um gráfico que mostre a evoluçāo do erro relativo ao longo das iteraçöes.
f(n)=\sum_{n=1}^{\infty} \frac{1}{n^{4}}
Passo 1
O enunciado pede para aproximar a série
f(n)=\sum_{k=1}^{n}\frac{1}{k^{4}}
até um número de iterações n fornecido pelo usuário, comparar cada soma parcial com o valor exato
e, ao final, traçar um gráfico que mostre a evolução de \text{erro}(n) em função de n.
Passo 2
Para implementar isso em Python vamos precisar:
Calcular o valor exato \lambda = \pi^{4}/90 usando math.pi.
Fazer um loop de k=1 até k=n, acumulando a soma parcial e guardando, a cada passo, o erro relativo.
Usar matplotlib para traçar o gráfico de \text{erro}(n) vs.\ n, preferencialmente em escala logarítmica no eixo vertical para evidenciar a convergência.
Passo 3
Segue o programa Python completo. Ele:
Lê N do usuário.
Itera acumulando a soma \sum_{k=1}^{n}1/k^4.
Calcula a lista de erros relativos.
Plota o gráfico com escala log no eixo y.
Resposta
import math
import matplotlib.pyplot as plt
def \(aprox_serie\)(N):
# valor exato da soma até infinito
lam = math.pi**4 / 90
soma \(=0.0\)
erros = []
for k inrange(1, N\(+1\)):
soma \(+=1.0\) / k**4
\(erro_rel\) = abs(soma - lam) / lam
erros.append(\(erro_rel\))
return erros
defmain():
N = int(input("Digite o número de iterações (N): "))
erros = \(aprox_serie\)(N)
xs = list(range(1, N\(+1\)))
plt.figure()
plt.plot(xs, erros, marker='o', linestyle='-')
plt.yscale('log')
plt.xlabel("Iteração \(n\)")
plt.ylabel("Erro relativo")
plt.title("Convergência de \(\sum_{k=1}^{n} \frac{1}{k^{4}}\)")
plt.grid(True, which="both", ls="--")
plt.show()
if __name__ \(==\) "__main__":
main()