Méthode de Horner

Restez toujours informé : suivez-nous sur Google (☆)

Introduction

La méthode de Horner est utilisée dans le calcul polynomial, soit pour calculer la valeur d'une fonction polynomiale en un point, soit pour calculer le quotient d'un polynôme par X - a.

Valeur d'un polynôme en un point

Soit P = λnX + λn − 1X + ... + λ0 un polynôme sur un anneau commutatif A et a un élément de A. Le calcul de P(a) = λna + λn − 1a + ... + λ0 laisse à penser qu'il faut calculer chacune des puissances de a, multiplier celle-ci par son coefficient λk puis faire la somme de ce que l'on a trouvé.

Si on calcule a en multipliant successivement a par lui-même, le nombre de produits nécessaire est alors de n + (n − 1) + ... + 2 + 1 = n(n + 1) / 2, quantité qui croît comme le carré du degré du polynôme.

On peut améliorer la vitesse du calcul de a par une méthode d'exponentiation rapide, permettant de réduire le temps du calcul de P(a) à une quantité qui croît comme nln(n).

La méthode de Horner consiste à améliorer encore ce résultat en effectuant le calcul comme suit :

P(a) = ((...((λna + λn − 1)a + λn − 2)a + ...) + λ1)a + λ0

Le nombre de produits est alors réduit à n, de sorte que le temps de calcul d'une fonction polynomiale en un point a est seulement proportionnel au degré du polynôme.

Quotient d'un polynôme par X - a

Reprenons le même polynôme P = λnX + λn − 1X + ... + λ0 et cherchons son quotient dans la division euclidienne par X - a. On a :

P = (Xa)Q + P(a)

Si on écrit Q = qn − 1X + qn − 2X + ... + q1X + q0 et si on identifie les coefficients de même degré dans les deux membres, on obtient :

qn − 1 = λn

qk − 1 = λk + a**qk pour tout k tel que 0 < k < n

La valeur de P(a) n'est autre que λ0 + aq0.

Les n valeurs de la suite q calculées ici sont précisément les n valeurs successives calculées dans le paragraphe précédent pour évaluer P(a). La mémorisation de ces valeurs successives donne donc les coefficients du polynôme quotient, la dernière valeur étant celle du reste.

Illustration dans un tableau

Une présentation de la méthode de Horner dans un tableau montre la simplicité de l'algorithme : chaque coefficient de Q s'obtient en multipliant le coefficient de la case de gauche par a et en lui ajoutant le coefficient de la case du dessus.

Coefficients de Pλnλn - 1λn - 2...λ1λ0
Coefficients de Qqn - 1

λn
qn - 2

aqn - 1 + λn - 1
qn - 3

aqn - 2 + λn - 2
...q0

aq1 + λ1
r

aq0 + λ0

Exemple pratique : division de 4X − 7X + 3X − 5 par X − 2

Coefficients de P4− 73− 5
Coefficients de Q48 − 7 = 12 + 3 = 5r = 10 − 5 = 5

Ce qui donne : 4X − 7X + 3X − 5 = (X − 2)(4X + X + 5) + 5