\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.
{\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.
{\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\).
{\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.
{\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!
{\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}.
{\gris\textbf{\itshape gp]} \verb| read("factorisation.gp")|}
{\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}.
{\gris\textbf{\itshape gp]} \verb| read("sumpolyk.gp")|}
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k,1,n)|}
{\magenta\%6 = $\blue \frac{1}{2} n (n
+ 1)$}
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k^2,1,n)|}
{\magenta\%7 = $\blue \frac{1}{6} n (n
+ 1) (2\*n
+ 1)$}
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k*(k+1),1,n)|}
{\magenta\%8 = $\blue \frac{1}{3} n (n
+ 1) (n
+ 2)$}
{\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...
{\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:
{\gris\textbf{\itshape gp]} \verb| sumpolyk(k^2+k-a,1,n)|}
\verb| *** factor: sorry, factor for general polynomials is not yet implemented.|
Mince !

—
Syracuse — Dernière modification : 23 juillet 2007 (0.07s - 3789007 - 23 novembre 2008)