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).
Resposta: 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)=(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)!,/,l(2^N,N!r), (2N)!!=2^N,N!,
logo
R(N)=(2N)!2^N,N!;2^N,N! =prodk=1^N2k-12k,
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 razão1ã.
5. Para k de 1 até N:
razãorazãotimes2k-12k ãã
6. Retornar 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 de a , 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: e .

Passo 6

Em particular, para N=100 obtemos
R(100)=199!!200!!approx0,056348
Pela série de Stirling,
n!simraiz2pi n,l(tfracner)^n,
segue-se que para N grande
R(N)=(2N)!2^2N(N!)^2 approx4^N2^2Nraizpi N=1raizpi N
Para N=100,
1raizpicdot100 =110raizpiapprox0,05642,
que concorda bem com 0,056348.

Resposta

199!!200!!=0,056348

Exercícios de Livros Relacionados