\Titre{Détermination formelle d'une somme}

\large
\everymath{\displaystyle}

Le but, ici, est de calculer, en fonction de $n$, la somme

\[\sum_{k=1}^nk(k+1)(k+2)(k+3)\] 

On peut \textit{aisément} démontrer qu'elle est de la forme \(P(n)\) où
\(P\) est un polynôme de degré \(5\).  

La méthode utilisée consiste à calculer $6$ valeurs de ce polynôme (pour 
\(n=1,...,6\)) et à demander ensuite le polynôme d'interpolation des
valeurs obtenues. 


On définit un tableau vide.

%@Commande-1
{\gris\textbf{\itshape gp]} \verb| y=[]|}

{\magenta\%1 = \blue \(()\)}

On remplit le tableau avec les valeurs de la somme pour \(n\)
variant de 1 à 6.

%@Commande-2
{\gris\textbf{\itshape gp]} \verb| for(n=1,6,y=concat(y,sum(k=1,n,k*(k+1)*(k+2)*(k+3))))|}

Regardons ce qu'est devenu le tableau \(y\).

%@Commande-3
{\gris\textbf{\itshape gp]} \verb| y|}

{\magenta\%2 = \blue \(\begin{pmatrix}24&144&504&1344&3024&6048\end{pmatrix}\)}

On détermine le polynôme d'interpolation pour ces valeurs.

%@Commande-4
{\gris\textbf{\itshape gp]} \verb| P=polinterpolate(y,,n)|}

{\magenta\%3 = $\blue \frac{1}{5}\*n^5
 + 2\*n^4
 + 7\*n^3
 + 10\*n^2
 + \frac{24}{5}\*n$}

Il ne reste plus qu'à factoriser!

%@Commande-5
{\gris\textbf{\itshape gp]} \verb| factor(P)|}

{\magenta\%4 = \blue \(\begin{pmatrix}n&1\\ 
 n
 + 1&1\\ 
 n
 + 2&1\\ 
 n
 + 3&1\\ 
 n
 + 4&1\end{pmatrix}\)}

Les facteurs qui apparaissent ici sont à coefficients entiers  et ils
sont accompagnés de leur ordre de multiplicité. \textbf{PARI/GP} ne
propose pas, du moins pas à ma connaissance, de procédure donnant une
\emph{écriture factorisée} d'un polynôme. Visuellement nous disposons de
toute les informations pour la reconstituer et \textbf{PARI/GP} propose
toute une palette d'instructions permettant de la retrouver, codée
correctement en \LaTeX. C'est l'objet du script \url{factorisation.gp}.

%@Commande-6
{\gris\textbf{\itshape gp]} \verb| read("factorisation.gp")|}

%@Commande-7
{\gris\textbf{\itshape gp]} \verb| factorisation(P)|}

{\magenta\%5 = $\blue \frac{1}{5} n (n
 + 1) (n
 + 2) (n
 + 3) (n
 + 4)$}

Maintenant que la méthode semble être au point, il est utile d'écrire un
script \url{sumpolyk.gp} qui en fera la synthèse, nous permettant ainsi
de disposer d'une procédure \emph{directe}.

%@Commande-8
{\gris\textbf{\itshape gp]} \verb| read("sumpolyk.gp")|}

%@Commande-9
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k,1,n)|}

{\magenta\%6 = $\blue \frac{1}{2} n (n
 + 1)$}

%@Commande-10
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k^2,1,n)|}

{\magenta\%7 = $\blue \frac{1}{6} n (n
 + 1) (2\*n
 + 1)$}

%@Commande-11
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k*(k+1),1,n)|}

{\magenta\%8 = $\blue \frac{1}{3} n (n
 + 1) (n
 + 2)$}

%@Commande-12
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k*(k+1)*(k+2),1,n)|}

{\magenta\%9 = $\blue \frac{1}{4} n (n
 + 1) (n
 + 2) (n
 + 3)$}

Tiens, tiens...

%@Commande-13
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k*(k+1)*(k+2)*(k+3)*(k+4),1,n)|}

{\magenta\%10 = $\blue \frac{1}{6} n (n
 + 1) (n
 + 2) (n
 + 3) (n
 + 4) (n
 + 5)$}

Il y a là un résultat intéressant à noter !

Essayons autre chose:

%@Commande-14
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k^2+k-a,1,n)|}

\verb|  *** factor: sorry, factor for general polynomials is not yet implemented.|


Mince !

