A constante de Catalan, geralmente denotada por G, é um número irracional que surge em várias áreas da matemática, como teoria dos números, combinatória e análise. Numericamente, seu valor é aproximadamente: G \approx 0.915965594177219. A constante pode ser definida pela série infinita na Equação 11.20. Escreva um programa que calcule G com o número de termos solicitado pelo usuário. Calcule o erro relativo em todas as iterações e mostre, em um gráfico, sua evolução.
O enunciado pede um programa para aproximar a constante de Catalan
G = \sum_{n=0}^{\infty} \frac{(-1)^{n}}{(2n+1)^{2}}
com um número finito de termos N indicado pelo usuário, calcular em cada iteração o erro relativo da aproximação em relação ao valor verdadeiro de G e mostrar, em um gráfico, a evolução desse erro. O conteúdo envolve séries numéricas, programação imperativa e análise de erro.
Passo 2
Para implementar a aproximação, vamos pedir ao usuário a quantidade de termos N. Em seguida inicializamos
S = 0
para a soma parcial, e criamos um vetor erros de comprimento N para armazenar o erro relativo em cada iteração. Também definimos o valor de referência de G com precisão alta, por exemplo
G_{\text{verdadeiro}} = 0{,}915965594177219.
Passo 3
Percorremos n de 0 até N-1. A cada passo calculamos o termo
Terminada a iteração, teremos um vetor erros com a evolução do erro relativo para cada n. Basta então traçar um gráfico de \varepsilon_n versus n, usando escala logarítmica no eixo vertical para visualizar melhor a convergência.
Passo 5
Abaixo está um exemplo de código em Python que implementa esses passos. Basta copiá-lo num arquivo catalan.py e executá-lo.
import numpy as np
import matplotlib.pyplot as plt
def \(aproxima_catalan\)(N):
\[G_true =0.915965594177219\]
S \(=0.0\)
erros = np.zeros(N)
for n inrange(N):
termo = (-1)**n / (2*n \(+1\))**2
S \(+=\) termo
erros[n] = abs((S - \(G_true\)) / \(G_true\))
return erros
defmain():
N = int(input("Digite o número de termos N: "))
erros = \(aproxima_catalan\)(N)
plt.figure()
plt.semilogy(range(N), erros, marker='o', linestyle='-')
plt.xlabel("Iteração \(n\)")
plt.ylabel("Erro relativo \(\varepsilon_n\)")
plt.title("Convergência da série da constante de Catalan")
plt.grid(True, which="both", ls="--")
plt.show()
if __name__ \(==\) "__main__":
main()
Resposta
O programa acima lê o número de termos N, computa as somas parciais da série
G \approx \sum_{n=0}^{N-1} \frac{(-1)^{n}}{(2n+1)^{2}},
calcula o erro relativo em cada passo e plota sua evolução em escala logarítmica.