Introduction à l’Analyse Numérique
Algorithme de Remez
Christophe Troestler
« If your comp-sci course is easy then you’re either a genius or
you’re wasting your money. The odds on that are not in your favour. »
Chris Cummer, Two Thoughts on Computer Science Courses
Question 1 (Résolution de systèmes linéaires). Implémentez une fonction/méthode
gauss :matrice vecteur vecteur
prenant comme arguments une matrice Aet un vecteur b, telle que 1gauss A b retourne le vecteur
xsolution du système linéaire Ax =b. Pour calculer x, on utilisera la méthode de Gauss vue au
cours. La non-inversibilité de Asera signalée par une exception. Le choix des structures pour
matrice et vecteur devra être motivé (en tenant compte de la cohérence avec l’utilisation de
cette routine dans les questions ci-dessous).
Question 2 (Golden search). Le but de cette question est d’implémenter une fonction/méthode
argmin, prenant comme arguments une fonction continue f:RRet deux réels aet b(et un
argument optionnel ε>0 dont nous parlerons plus tard), telle que argmin f a b retourne un point
xde minimum (local) de la fonction fsur l’intervalle 2[a,b]. Le principe qu’on va employer est le
suivant. Tout d’abord on recherche un point
c]a,b[tel que f(c)6f(a)et f(c)6f(b)(1)
(si aucun cne peut être trouvé le minimum se situe au bord et est donc facile à déterminer).
(a) Prouvez que sous l’hypothèse d’existence d’un cvérifiant (1), il existe un point x]a,b[tel
que x[a,b],f(x)6f(x).
Posons a0:=a,b0:=bet c0:=c. Nous allons estimer un point xtel que x[a,b],f(x)6f(x)
en construisant par récurrence des suites (an)nN,(bn)nNet (cn)nNvérifiant l’invariant
cn]an,bn[f(cn)6minf(an),f(bn)(2)
quel que soit n. Voici comment. Supposons que nous connaissions an,bnet cn. Prenons un point
ξ]an,bn[\{cn}. Sans perte de généralité on peut supposer que ξ]cn,bn[(le cas où ξ]an,cn[
se traite de manière similaire). De deux choses l’une :
si f(ξ)6f(cn), alors on pose an+1:=cn,bn+1:=bn, et cn+1:=ξ;
si f(ξ)>f(cn), alors on pose an+1:=an,bn+1:=ξ, et cn+1:=cn.
1. Nous employons ici une notation non parenthèsée. Dans un langage tel que Java, on écrirait gauss(A,b).
2. Tous les intervalles sont non-orientés, i.e. [a,b] = ta + (1t)b
06t61.
1/5
Algorithme de Remez
Introduction à l’Analyse Numérique
Cas f(ξ)6f(cn)
f
anbn
cnξ
Cas f(ξ)>f(cn)
f
anbn
cnξ
(b) Décrivez explicitement le choix de an+1,bn+1et cn+1dans le cas où ξ]an,cn[.
(c) Prouvez 3que l’invariant (2) est effectivement préservé par les choix faits ci-dessus.
Pour compléter la description de l’algorithme, il faut dire comment choisir ξ. Comme pour la
bissection, on veut que ce choix assure la convergence de l’algorithme de la manière la plus efficace
possible. Pour ce faire on va prendre ξdans le plus grand intervalle parmi les deux ]an,cn[et
]cn,bn[et de manière à ce que l’intervalle [an+1,bn+1]soit le plus petit possible quel que soit le
choix effectué en fonction de la valeur f(ξ). Plus précisément si, comme sur les graphiques ci-
dessus, c’est ]cn,bn[qui est le plus grand, le principe ci-dessus demande 4de choisir ξde manière
à ce que
|ξan|
|ξbn|=1+5
2(3)
(le nombre (1+5)/2 est appelée « nombre d’or », ce qui explique le nom de cet algorithme de
recherche de minimum).
(d) Montrez que (3) détermine ξcomme combinaison convexe (1λ)an+λbnpour un certain
λ]0,1[. (Il est bien entendu nécessaire de détailler et d’expliquer vos calculs.)
(e) Donnez ξcomme combinaison convexe de anet bndans le cas où c’est l’intervalle ]an,cn[
qui est le plus grand.
Finalement, il reste à donner un critère de terminaison. Puisque nous savons qu’un point mini-
mum xexiste dans l’intervalle ]an,bn[, l’erreur absolue commise sur xen l’approchant par un
point quelconque de l’intervalle est au plus |anbn|. Bien entendu, il est en général meilleur de
considérer l’erreur relative, c’est pourquoi nous prendrons comme critère d’arrêt
|anbn|6ε|an|+|bn|(4)
ε>0 doit optionnellement pouvoir être choisi par l’utilisateur (bien sûr la valeur utilisée par
défaut doit être raisonnable).
REMARQUE : Comme d’habitude, on veillera à ce que l’implémentation ne fasse pas de tests
inutiles, qu’elle ne réévalue pas la fonction deux fois au même point,...
Question 3 (Algorithme de Remez). Nous allons exposer ici un algorithme qui permet d’es-
timer le polynôme d’un degré donné qui approche uniformément le mieux une fonction. Cet algo-
rithme a diverses applications, par exemple dans les filtres digitaux.
3. On attend une preuve plus détaillée que du simple « blabla ».
4. Nous ne faisons pas ici les détails de la preuve.
2/5
Algorithme de Remez
Introduction à l’Analyse Numérique
a b
f
p
FIGURE 1 – Meilleure approximation
Commençons par rappeler le problème. Soit f:
[a,b]Rune fonction continue définie sur un inter-
valle borné [a,b]et nN. On cherche
pPntel que |fp|=inf|fp|
pPn
Pndésigne l’ensemble des polynômes de degré au
plus net ||est la norme du sup sur C([a,b];R). Un tel
pexiste toujours, est unique, et est appelé le meilleur
approximant de f . Une caractérisation de ce polynôme
est donné par le théorème d’équi-oscillations de Cheby-
shev :
Théorème (Chebyshev, 1854) Un polynôme pPn
est le meilleur approximant de f sur [a,b]si et seule-
ment s’il existe n+2points a 6x0<x1<···<xn+16b
tels que
i=0,...,n+1,f(xi)p(xi) = (1)iE
avec |E|=|fp|(5)
L’équation (5) peut se lire en disant que l’erreur max-
imale |fp|commise en remplaçant fpar pest
atteinte en n+2 points de manière oscillante. Ceci est
représenté à la figure 1où les points (xi,f(xi)) sont
tracés en rouge. Ce résultat forme la base de l’algo-
rithme pour estimer pque nous allons à présent présen-
ter.
L’idée est la suivante : si les n+2 points xiétaient connus, il suffirait de résoudre le système
linéaire de n+2 équations
p(xi)+(1)iE=f(xi),06i6n+1,(6)
pour trouver pet E.
(a) Prouvez que, sous l’hypothèse qu’au moins n+1 des n+2 points xisont distincts, le système
linéaire (6) possède une et une seule solution (p,E)Pn×R.
INDICATION (à détailler si vous l’utilisez) : Montrez que le noyau de l’application linéaire as-
sociée au système est réduit à {0}de manière similaire à ce qui a été fait pour l’interpolation.
Le théorème des valeurs intermédiaires vous sera utile.
Bien entendu, nous ne connaissons pas a priori les points xi. Nous allons donc chercher à les
estimer par approximations successives, sachant qu’ils sont des minimums ou maximums locaux
de l’erreur x7→ f(x)p(x).
Pour initialiser la méthode de Remez, on prend le polynôme p0Pnqui interpole fsur les
n+1 nœuds de Chebyshev de l’intervalle [a,b](voir la figure 2). Comme l’erreur commise par
p0s’annule en les n+1 points d’interpolation (points bleus sur la figure 3), on peut trouver n+2
points x0
0<x0
1<··· <x0
n+1qui sont des minimums ou des maximums de l’erreur e0:=fp0sur
3/5
Algorithme de Remez
Introduction à l’Analyse Numérique
a b
f
p0
FIGURE 2 – Interpolation de Chebyshev
a b
e0=fp0
FIGURE 3 – Erreur d’interpolation
chacun des intervalles délimités par ces points d’interpolation (les points (x0
i,f(x0
i)), 0 6i6n+1
sont représentés en rouge sur la figure 3).
Maintenant que nous savons comment trouver le polynôme initial p0et les points associés
x0
0,x0
1,..., x0
n+1, nous pouvons passer au cœur de l’algorithme qui va les raffiner de manière
itérative.
a
b
ek+1=fpk+1
FIGURE 4 – Erreur ek+1
Supposons que nous disposions de pket des n+2 points
xk
0,xk
1,..., xk
n+1qui maximisent localement l’erreur fpk. On
calcule pk+1et xk+1
0,xk+1
1,..., xk+1
n+1de la manière suivante :
On résoud le système linéaire
pk+1(xk
i)+(1)iEk+1=f(xk
i),06i6n+1,
pour déterminer pk+1et Ek+1. (La fonction ek+1:=fpk+1
est représentée à la figure 4où les losanges bleus marquent les
points xk
i,ek+1(xk
i).)
Si pk+1est suffisamment proche de pk, on arrête la recherche et
retourne pk+1. Sinon ek+1:=fpk+1change n+2 fois de signe et, dans chacun des n+2 in-
tervalles délimités par n+1 racines de ek+1dans ]a,b[, on recherche en alternance un minimum
ou un maximum de ek+1. Ceci donne n+2 points que nous appellerons xk+1
0,xk+1
1,..., xk+1
n+1.
(Les points (xk+1
i,ek+1(xk+1
i)) sont représentés en rouge sur la figure 4.)
(b) Donnez une définition précise de « pk+1est suffisamment proche de pk» qui est appropriée
pour le problème. Justifiez votre choix et discutez de son implémentation numérique.
(c) Expliquez et justifiez la stratégie que vous allez employer pour décider si c’est un minimum
ou un maximum local que vous devez rechercher sur chacun des sous-intervalles délimités
par les racines.
(d) Programmez une fonction/méthode remez qui prend comme arguments un entier n, une
fonction f:RR, deux nombres réels aet b, et qui retourne pPn, une approximation
du polynôme de meilleure approximation de fsur [a,b], ainsi qu’un tableau contenant une
approximation des n+2 points x0,x1,..., xn+1qui témoignent de l’optimalité de pet dont
l’existence est affirmée par le théorème de Chebyshev.
(e) Tracez le polynôme retourné par 5remez 2exp (2.)2.et imprimez les valeurs des
5. En Java, l’expression devient, par exemple, remez(2,new fun_exp,2.,2.).
4/5
Algorithme de Remez
Introduction à l’Analyse Numérique
points x0,x1,..., xn+1.
Références
[1] Remez, E. Ya., « Sur le calcul effectif des polynômes d’approximation de Tschebyscheff »,
C. P. Paris, 337–340, 1934.
5/5
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !