8.1.28 (a) Escreva um subprograma de função para calcular a razão de fatoriais duplos (2 N-1) ! ! /(2 N) ! !. Inclua provisão para N=0 e para rejeição e uma mensagem de erro se N for negativo. Calcule e tabule essa razão para N=1(1) 100.
(b) Verifique o cálculo de seu subprograma de função para 199!!/200!!. em comparação com o valor obtido pela série de Stirling (Seção 8.3).
\text { Resposta: } \frac{199 ! !}{200 ! !}=0,056348 .

Passo 1

O enunciado pede um subprograma de função que, dado um inteiro N, calcule a razão de fatoriais duplos
R(N)=\frac{(2N-1)!!}{(2N)!!}
com a condição de que, se N<0, o programa rejeite a entrada com uma mensagem de erro, e que para N=0 a função retorne R(0)=1. Em seguida devemos usar esse subprograma para tabular R(N) para N=1,2,\dots,100. Por fim, em (b) verificamos o valor de R(100)=199!!/200!! comparando-o com a aproximação dada pela série de Stirling.

Passo 2

Para evitar overflow e manter estabilidade numérica, note que
(2N-1)!!=(2N)!\,/\,\bigl(2^N\,N!\bigr), \quad (2N)!!=2^N\,N!,
logo
R(N)=\frac{(2N)!}{2^N\,N!\;2^N\,N!} =\prod_{k=1}^{N}\frac{2k-1}{2k},
com o produto vazio definido como 1 quando N=0.

Passo 3

Esboço do subprograma de função (pseudo-código):
1. Entrada: inteiro N.
2. Se N<0 então imprimir “Erro: N negativo” e encerrar.
3. Se N=0 então retornar 1.
4. Inicializar \text{razão}\leftarrow1ã.
5. Para k de 1 até N:
\text{razão}\leftarrow\text{razão}\times\frac{2k-1}{2k}.ãã
6. Retornar \text{razão}ã.

Passo 4

Pseudocódigo detalhado:
função R(N: inteiro) \(\to\) real:
  se N < \(0\) então
    escreva "Erro: N negativo"
    pare
  se N = \(0\) então
    retorne \(1\)
  razão \(\gets\) \(1\)
  para k de \(1\) até N faça
    razão \(\gets\) razão \cdot \frac{2 \cdot k - 1}{2 \cdot k}
  fim para
  retorne razão
fim função

Passo 5

Para tabular R(N) de N=1 a 100, basta chamar dentro de um laço:
para N de \(1\) até \(100\) faça
  escreva N, R(N)
fim para
O programa imprimirá uma tabela com dois campos: N e R(N).

Passo 6

Em particular, para N=100 obtemos
R(100)=\frac{199!!}{200!!}\approx0,056348.
Pela série de Stirling,
n!\sim\sqrt{2\pi n}\,\bigl(\tfrac{n}{e}\bigr)^n,
segue-se que para N grande
R(N)=\frac{(2N)!}{2^{2N}(N!)^2} \approx\frac{4^N}{2^{2N}\sqrt{\pi N}}=\frac{1}{\sqrt{\pi N}}.
Para N=100,
\frac{1}{\sqrt{\pi\cdot100}} =\frac{1}{10\sqrt{\pi}}\approx0,05642,
que concorda bem com 0,056348.

Resposta

\displaystyle\frac{199!!}{200!!}=0,056348

Exercícios de Livros Relacionados