[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
75.1 Introdução a zeilberger | ||
75.2 Funções e Variáveis Definidas para zeilberger |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
zeilberger
é uma implementação do algorítmo de Zeilberger
para somatório hipergeométricos definidos, e também
para o algorítmo de Gosper para somatórios hipergeométricos
indefinidos.
zeilberger
faz uso do método de otimização "filtering" desenvolvido por Axel Riese.
zeilberger
foi desenvolvido por Fabrizio Caruso.
load (zeilberger)
torna esse pacote disponível para uso.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
zeilberger
implementa o algorítmo de Gosper
para somatório hipergeométrico indefinido.
Dado um termo hipergeométrico F_k em k queremos encontrar sua anti-diferença
hipergeométrica, isto é, um termo hipergeométrico f_k tal que F_k = f_(k+1) - f_k.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
zeilberger
implementa o algorítmo de Zeilberger
para somatório hipergeométrico definido.
Dado um termo hipergeométrico apropriado (em n e k) F_(n,k) e um
inteiro positivo d queremos encontrar um d-ésima ordem de recorrência
linear com coeficientes polinomiais (em n) para F_(n,k)
e uma função racional R em n e k tal que
a_0 F_(n,k) + ... + a_d F_(n+d),k = Delta_K(R(n,k) F_(n,k))
onde Delta_k é o k-seguinte operador de diferença, i.e., Delta_k(t_k) := t_(k+1) - t_k.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Existe também versões de níveis de detalhe fornecidos pelos comandos que são chamados (os níveis) através da adição de um dos seguintes prefixos:
Summary
Apenas um sumário é mostrado no final
Verbose
Algumas informações nos passos intermediários
VeryVerbose
Muita informação
Extra
Muito mais informação incluindo informação sobre o sistema linear no algorítmo de Zeilberger
Por exemplo:
GosperVerbose
, parGosperVeryVerbose
,
ZeilbergerExtra
, AntiDifferenceSummary
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Retorna a anti-diferença hipergeométrica
de F_k, se essa anti-diferença.
De outra forma AntiDifference
retorna no_hyp_antidifference
.
Retorna o certificado racional R(k) para F_k, isto é, uma função racional tal que
F_k = R(k+1) F_(k+1) - R(k) F_k
se essa função racional exitir.
De outra forma, Gosper
retorna no_hyp_sol
.
Retorna o somatório de F_k de k = a a k = b
se F_k tiver ma diferença hipergeométrica.
De outra forma, GosperSum
retorna nongosper_summable
.
Exemplos:
(%i1) load (zeilberger); (%o1) /usr/share/maxima/share/contrib/Zeilberger/zeilberger.mac (%i2) GosperSum ((-1)^k*k / (4*k^2 - 1), k, 1, n); Dependent equations eliminated: (1) 3 n + 1 (n + -) (- 1) 2 1 (%o2) - ------------------ - - 2 4 2 (4 (n + 1) - 1) (%i3) GosperSum (1 / (4*k^2 - 1), k, 1, n); 3 - n - - 2 1 (%o3) -------------- + - 2 2 4 (n + 1) - 1 (%i4) GosperSum (x^k, k, 1, n); n + 1 x x (%o4) ------ - ----- x - 1 x - 1 (%i5) GosperSum ((-1)^k*a! / (k!*(a - k)!), k, 1, n); n + 1 a! (n + 1) (- 1) a! (%o5) - ------------------------- - ---------- a (- n + a - 1)! (n + 1)! a (a - 1)! (%i6) GosperSum (k*k!, k, 1, n); Dependent equations eliminated: (1) (%o6) (n + 1)! - 1 (%i7) GosperSum ((k + 1)*k! / (k + 1)!, k, 1, n); (n + 1) (n + 2) (n + 1)! (%o7) ------------------------ - 1 (n + 2)! (%i8) GosperSum (1 / ((a - k)!*k!), k, 1, n); (%o8) nonGosper_summable
Tenta encontrar uma recorrência de d-ésima ordem para F_{n,k}.
O algorítmo retorna uma seqüência [s_1, s_2, ..., s_m] de soluções. Cada solução tem a forma
[R(n, k), [a_0, a_1, ..., a_d]]
parGosper
retorna []
caso não consiga encontrar uma recorrência.
Tenta calcular o somatório hipergeométrico indefinido de F_{n,k}.
Zeilberger
primeiro invoca Gosper
, e se Gosper
não conseguir encontrar uma solução, então Zeilberger
invoca
parGosper
com ordem 1, 2, 3, ..., acima de MAX_ORD
.
Se Zeilberger encontrar uma solução antes de esticar MAX_ORD
,
Zeilberger para e retorna a solução.
O algorítmo retorna uma seqüência [s_1, s_2, ..., s_m] de soluções. Cada solução tem a forma
[R(n,k), [a_0, a_1, ..., a_d]]
Zeilberger
retorna []
se não conseguir encontrar uma solução.
Zeilberger
invoca Gosper
somente se gosper_in_zeilberger
for true
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Valor padrão: 5
MAX_ORD
é a ordem máxima de recorrência tentada por Zeilberger
.
Valor padrão: false
Quando simplified_output
for true
,
funções no pacote zeilberger
tentam
simplificação adicional da solução.
Valor padrão: linsolve
linear_solver
nomeia o resolvedor que é usado para resolver o sistema
de equações no algorítmo de Zeilberger.
Valor padrão: true
Quando warnings
for true
,
funções no pacote zeilberger
imprimem
mensagens de alerta durante a execução.
Valor padrão: true
Quando gosper_in_zeilberger
for true
,
a função Zeilberger
chama Gosper
antes de chamar parGosper
.
De outra forma, Zeilberger
vai imediatamente para parGosper
.
Valor padrão: true
Quando trivial_solutions
for true
,
Zeilberger
retorna soluções
que possuem certificado igual a zero, ou todos os coeficientes iguais a zero.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Valor padrão: false
Quando mod_test
for true
,
parGosper
executa um
teste modular discartando sistemas sem solução.
Valor padrão: linsolve
modular_linear_solver
nomeia o resolvedor linear usado pelo teste modular em parGosper
.
Valor padrão: big_primes[10]
ev_point
é o valor no qual a variável n é avaliada
no momento da execução do teste modular em parGosper
.
Valor padrão: big_primes[1]
mod_big_prime
é o módulo usado pelo teste modular em parGosper
.
Valor padrão: 4
mod_threshold
is the
maior ordem para a qual o teste modular em parGosper
é tentado.
[ << ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
This document was generated by Robert Dodier on Dezembro, 22 2007 using texi2html 1.76.