Intégration symbolique par création télescopique

TD du cours de Calcul formel, Frédéric Chyzak, Décembre 2004

Il s'agit dans ce TD d'implanter l'algorithme de Fasenmyer donné en cours pour la sommation symbolique hypergéométrique paramétrée.

Par simplicité, on se limite à des suites hypergéométriques hn,k en deux indices, n et k, la sommation portant sur k. Tout au long du sujet, on testera sur les deux exemples suivant :

On suivra les étapes de programmation suivantes :

  1. Construire le corps des fractions rationnelles en n et k. On utilisera les fonctions RationalField et FunctionField.
  2. Écrire des fonctions DecalageN, DecalageK et DecalageInverseK réalisant respectivement les décalages n devient n+1, k devient k+1, k devient k-1 sur une fraction rationnelle. On utilisera la fonction hom.
  3. Écrire une fonction Facteur qui prend en entrée les deux fractions rationnelles Rn(n,k) = hn+1,k / hn,k et Rk(n,k) = hn,k+1 / hn,k associées à une suite hypergéométrique et donc supposées vérifier la relation de commutation
    Rn(n,k+1) Rk(n,k) = Rk(n+1,k) Rn(n,k),
    ainsi que deux entiers positifs i et j, et renvoie la fraction
    hn+i,k+j / hn,k.
  4. Écrire une fonction Fasenmyer qui prend en entrée les deux fractions rationnelles Rn et Rk et un ensemble S de paires (i,j) et appliquer l'algorithme de Fasenmyer pour la suite hypergéométriques représentée par Rn et Rk relativement au support S. L'ensemble sera simplement représenté par une séquence Magma. On pourra procéder comme suit :
    1. calculer les fractions hn+i,k+j / hn,k pour les (i,j) de S, intervenant dans la mise en équation
      (i,j)∈S φi,j(n) hn+i,k+j / hn,k = 0 ;
    2. déterminer leur dénominateur commun. On utilisera les fonctions Denominator et Lcm ;
    3. déduire l'équation à coefficient polynomiaux
      (i,j)∈S φi,j(n) pi,j(n,k) = 0
      régissant les φi,j. On utilisera la fonction Numerator ;
    4. retirer un éventuel contenu commun des coefficients pi,j de l'équation. On utilisera la fonction Gcd ;
    5. calculer le degré en k maximal des coefficients pi,j de l'équation. On utilisera les fonctions Degree et Maximum ;
    6. construire et résoudre le système linéaire auquel satisfont les coefficients φi,j. Plus précisément, on construira une matrice dont chaque ligne donne les coefficients en k de l'une des entrées φi,j de S, extraits par degrés croissants et on recherchera les vecteurs lignes qui, multipliés à gauche de la matrice, produisent une combinaison linéaire nulle des lignes de la matrice. On utilisera les fonctions Coefficient, Matrix, NullSpace, et Basis ;
    7. pour chaque vecteur ligne i1,j1,...,φis,js) de la base de solutions, construire les sommes sur j des φi,j, et normaliser la famille de récurrences
      i  ∑j t.q. (i,j)∈S φi,j(n)  ∑k hn+i,k = 0
      obtenues, de façon à renvoyer la récurrence sur k hn,kd'ordre minimal représentée par le vecteur de ses coefficients. On utilisera la fonction EchelonForm.

Last modified: Wed Dec 8 16:30:13 CET 2004

Valid HTML 4.01!