2025年10月25日土曜日

251025

Maxima


Zeilberger's Algorithm

MaximaではZeilberger's Algorithmが実装されているので、使ってみた。

load(zeilberger)$

/* Zeilberger 出力を自動でシフトして係数リストにする関数 */
shifted_zeilberger_coeffs(F_expr, k, n) := block(
    [Z, m],
    print("----------------------------------------"),
    print("Applying Zeilberger to F =", F_expr),
    Z : Zeilberger(F_expr, k, n)[1][2],
    m : length(Z) - 1,
    map(lambda([c], factor(subst(n = n-m, c))), Z)
)$


F(a) := a^k * binomial(n,k) * binomial(2*n,k)$

/* A005809 */
Z : shifted_zeilberger_coeffs(F(1), k, n)$
print("A005809 coefficients:", Z)$

/* A026000 */
Z : shifted_zeilberger_coeffs(F(2), k, n)$
print("A026000 coefficients:", Z)$

/* A387928 */
Z : shifted_zeilberger_coeffs(F(3), k, n)$
print("A387928 coefficients:", Z)$

出力結果
---------------------------------------- 
Applying Zeilberger to F = binomial(n, k) binomial(2 n, k) 
A005809 coefficients: [3 (3 n - 2) (3 n - 1), - 2 n (2 n - 1)] 
---------------------------------------- 
                            k
Applying Zeilberger to F = 2  binomial(n, k) binomial(2 n, k) 
A026000 coefficients: [(n - 1) (2 n - 3) (10 n - 3), 
                           3        2
                      220 n  - 506 n  + 334 n - 63, - n (2 n - 1) (10 n - 13)] 
---------------------------------------- 
                            k
Applying Zeilberger to F = 3  binomial(n, k) binomial(2 n, k) 
A387928 coefficients: [16 (n - 1) (2 n - 3) (11 n - 3), 
                       3         2
                  649 n  - 1475 n  + 964 n - 180, - 2 n (2 n - 1) (11 n - 14)]