In documentation for lreduce and rreduce, supply second argument as an explicit list
[maxima.git] / doc / info / pt_BR / zeilberger.texi
blob2f6c32769e8599071318049c21711c69649eac93
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /zeilberger.texi/1.6/Sat Jun  2 00:13:35 2007//
3 @menu
4 * Introdução a zeilberger::
5 * Funções e Variáveis Definidas para zeilberger::
6 @end menu
8 @node Introdução a zeilberger, Funções e Variáveis Definidas para zeilberger, zeilberger, zeilberger
9 @section Introdução a zeilberger
11 @code{zeilberger} é uma implementação do algorítmo de Zeilberger
12 para somatório hipergeométricos definidos, e também 
13 para o algorítmo de Gosper para somatórios hipergeométricos
14 indefinidos.
16 @code{zeilberger} faz uso do método de otimização "filtering" desenvolvido por Axel Riese.
18 @code{zeilberger} foi desenvolvido por Fabrizio Caruso.
20 @code{load ("zeilberger")} torna esse pacote disponível para uso.
22 @subsection O problema dos somatórios hipergeométricos indefinidos
24 @code{zeilberger} implementa o algorítmo de Gosper
25 para somatório hipergeométrico indefinido.
26 Dado um termo hipergeométrico @math{F_k} em @math{k} queremos encontrar sua anti-diferença
27 hipergeométrica, isto é, um termo hipergeométrico @math{f_k} tal que @math{F_k = f_(k+1) - f_k}.
29 @subsection O problema dos somatórios hipergeométricos definidos
31 @code{zeilberger} implementa o algorítmo de Zeilberger
32 para somatório hipergeométrico definido.
33 Dado um termo hipergeométrico apropriado (em @math{n} e @math{k}) @math{F_(n,k)} e um
34 inteiro positivo @math{d} queremos encontrar um @math{d}-ésima ordem de recorrência
35 linear com coeficientes polinomiais (em @math{n}) para @math{F_(n,k)}
36 e uma função racional @math{R} em @math{n} e @math{k} tal que
38 @math{a_0 F_(n,k) + ... + a_d F_(n+d),k = Delta_K(R(n,k) F_(n,k))}
40 onde @math{Delta_k} é o @math{k}-seguinte operador de diferença, i.e.,
41 @math{Delta_k(t_k) := t_(k+1) - t_k}.
43 @subsection Níveis de detalhe nas informações
45 Existe também versões de níveis de detalhe fornecidos pelos comandos
46 que são chamados (os níveis) através da adição de um dos seguintes prefixos:
48 @table @code
49 @item Summary
50 Apenas um sumário é mostrado no final
51 @item Verbose
52 Algumas informações nos passos intermediários
53 @item VeryVerbose
54 Muita informação
55 @item Extra
56 Muito mais informação incluindo informação sobre
57 o sistema linear no algorítmo de Zeilberger
58 @end table
60 Por exemplo:
61 @code{GosperVerbose}, @code{parGosperVeryVerbose},
62 @code{ZeilbergerExtra}, @code{AntiDifferenceSummary}.
65 @node Funções e Variáveis Definidas para zeilberger, , Introdução a zeilberger, zeilberger
66 @section Funções e Variáveis Definidas para zeilberger
68 @deffn {Função} AntiDifference (@var{F_k}, @var{k})
70 Retorna a anti-diferença hipergeométrica
71 de @var{F_k}, se essa anti-diferença.
72 De outra forma @code{AntiDifference} retorna @code{no_hyp_antidifference}.
73 @end deffn
75 @deffn {Função} Gosper (@var{F_k}, @var{k})
76 Retorna o certificado racional @var{R(k)} para @var{F_k}, isto é,
77 uma função racional tal que
79 @math{F_k = R(k+1) F_(k+1) - R(k) F_k}
81 se essa função racional exitir.
82 De outra forma, @code{Gosper} retorna @code{no_hyp_sol}.
83 @end deffn
85 @deffn {Função} GosperSum (@var{F_k}, @var{k}, @var{a}, @var{b}) 
87 Retorna o somatório de @var{F_k} de @math{@var{k} = @var{a}} a @math{@var{k} = @var{b}}
88 se @var{F_k} tiver ma diferença hipergeométrica.
89 De outra forma, @code{GosperSum} retorna @code{nongosper_summable}.
91 Exemplos:
93 @c ===beg===
94 @c load ("zeilberger");
95 @c GosperSum ((-1)^k*k / (4*k^2 - 1), k, 1, n);
96 @c GosperSum (1 / (4*k^2 - 1), k, 1, n);
97 @c GosperSum (x^k, k, 1, n);
98 @c GosperSum ((-1)^k*a! / (k!*(a - k)!), k, 1, n);
99 @c GosperSum (k*k!, k, 1, n);
100 @c GosperSum ((k + 1)*k! / (k + 1)!, k, 1, n);
101 @c GosperSum (1 / ((a - k)!*k!), k, 1, n);
102 @c ===end===
103 @example
104 (%i1) load ("zeilberger");
105 (%o1)  /usr/share/maxima/share/contrib/Zeilberger/zeilberger.mac
106 (%i2) GosperSum ((-1)^k*k / (4*k^2 - 1), k, 1, n);
108 Dependent equations eliminated:  (1)
109                            3       n + 1
110                       (n + -) (- 1)
111                            2               1
112 (%o2)               - ------------------ - -
113                                   2        4
114                       2 (4 (n + 1)  - 1)
115 (%i3) GosperSum (1 / (4*k^2 - 1), k, 1, n);
116                                 3
117                           - n - -
118                                 2       1
119 (%o3)                  -------------- + -
120                                 2       2
121                        4 (n + 1)  - 1
122 (%i4) GosperSum (x^k, k, 1, n);
123                           n + 1
124                          x          x
125 (%o4)                    ------ - -----
126                          x - 1    x - 1
127 (%i5) GosperSum ((-1)^k*a! / (k!*(a - k)!), k, 1, n);
128                                 n + 1
129                 a! (n + 1) (- 1)              a!
130 (%o5)       - ------------------------- - ----------
131               a (- n + a - 1)! (n + 1)!   a (a - 1)!
132 (%i6) GosperSum (k*k!, k, 1, n);
134 Dependent equations eliminated:  (1)
135 (%o6)                     (n + 1)! - 1
136 (%i7) GosperSum ((k + 1)*k! / (k + 1)!, k, 1, n);
137                   (n + 1) (n + 2) (n + 1)!
138 (%o7)             ------------------------ - 1
139                           (n + 2)!
140 (%i8) GosperSum (1 / ((a - k)!*k!), k, 1, n);
141 (%o8)                  nonGosper_summable
142 @end example
143 @end deffn
145 @deffn {Função} parGosper (@var{F_@{n,k@}}, @var{k}, @var{n}, @var{d})
146 Tenta encontrar uma recorrência de @var{d}-ésima ordem para @var{F_@{n,k@}}.
148 O algorítmo retorna uma seq@"{u}ência
149 @math{[s_1, s_2, ..., s_m]} de soluções.
150 Cada solução tem a forma
152 @math{[R(n, k), [a_0, a_1, ..., a_d]]}
154 @code{parGosper} retorna @code{[]} caso não consiga encontrar uma recorrência.
155 @end deffn
157 @deffn {Função} Zeilberger (@var{F_@{n,k@}}, @var{k}, @var{n})
158 Tenta calcular o somatório hipergeométrico indefinido de @var{F_@{n,k@}}.
160 @code{Zeilberger} primeiro invoca @code{Gosper}, e se @code{Gosper} não conseguir encontrar uma solução, então @code{Zeilberger} invoca
161 @code{parGosper}com ordem 1, 2, 3, ..., acima de @code{MAX_ORD}.
162 Se Zeilberger encontrar uma solução antes de esticar @code{MAX_ORD},
163 Zeilberger para e retorna a solução.
165 O algorítmo retorna uma seq@"{u}ência
166 @math{[s_1, s_2, ..., s_m]} de soluções.
167 Cada solução tem a forma
169 @math{[R(n,k), [a_0, a_1, ..., a_d]]}
171 @code{Zeilberger} retorna @code{[]} se não conseguir encontrar uma solução.
173 @code{Zeilberger} invoca @code{Gosper} somente se @code{gosper_in_zeilberger} for @code{true}.
174 @end deffn
176 @section Variáveis globais gerais
178 @defvr {Variável global} MAX_ORD
179 Valor padrão: 5
181 @code{MAX_ORD} é a ordem máxima de recorrência tentada por @code{Zeilberger}.
182 @end defvr
184 @defvr {Variável global} simplified_output
185 Valor padrão: @code{false}
187 Quando @code{simplified_output} for @code{true},
188 funções no pacote @code{zeilberger} tentam
189 simplificação adicional da solução.
190 @end defvr
192 @defvr {Variável global} linear_solver
193 Valor padrão: @code{linsolve}
195 @code{linear_solver} nomeia o resolvedor que é usado para resolver o sistema
196 de equações no algorítmo de Zeilberger.
197 @end defvr
199 @defvr {Variável global} warnings
200 Valor padrão: @code{true}
202 Quando @code{warnings} for @code{true},
203 funções no pacote @code{zeilberger} imprimem
204 mensagens de alerta durante a execução.
205 @end defvr
207 @defvr {Variável global} gosper_in_zeilberger
208 Valor padrão: @code{true}
210 Quando @code{gosper_in_zeilberger} for @code{true},
211 a função @code{Zeilberger} chama @code{Gosper} antes de chamar @code{parGosper}.
212 De outra forma, @code{Zeilberger} vai imediatamente para @code{parGosper}.
213 @end defvr
215 @defvr {Variável global} trivial_solutions
216 Valor padrão: @code{true}
218 Quando @code{trivial_solutions} for @code{true},
219 @code{Zeilberger} retorna soluções
220 que possuem certificado igual a zero, ou todos os coeficientes iguais a zero.
221 @end defvr
223 @section Variáveis relacionadas ao teste modular
225 @defvr {Variável global} mod_test
226 Valor padrão: @code{false}
228 Quando @code{mod_test} for @code{true},
229 @code{parGosper} executa um
230 teste modular discartando sistemas sem solução.
231 @end defvr
233 @defvr {Variável global} modular_linear_solver
234 Valor padrão: @code{linsolve}
236 @code{modular_linear_solver} nomeia o resolvedor linear usado pelo  teste modular em @code{parGosper}.
237 @end defvr
239 @defvr {Variável global} ev_point
240 Valor padrão: @code{big_primes[10]}
242 @code{ev_point} é o valor no qual a variável @var{n} é avaliada
243 no momento da execução do teste modular em @code{parGosper}.
244 @end defvr
246 @defvr {Variável global} mod_big_prime
247 Valor padrão: @code{big_primes[1]}
249 @code{mod_big_prime} é o módulo usado pelo teste modular em @code{parGosper}.
250 @end defvr
252 @defvr {Variável global} mod_threshold
253 Valor padrão: 4
255 @code{mod_threshold} is the
256 maior ordem para a qual o teste modular em @code{parGosper} é tentado.
257 @end defvr