• Aucun résultat trouvé

Algorithme de substitution et résidu associé

Comme nous le verrons plus en détail par la suite, une solution approchée bxd au système triangulaire T x = b, calculée en précision doublée, puis arrondie vers la précision courante u satisfait à une borne d'erreur relative de la forme suivante,

kbxd− xk

kxk ≤ u + O(u2) cond(T, x) + O(u3). (9.3) Comme dans le cas du schéma de Horner compensé (voir chapitre 4), le facteur en O(u2) devant le conditionnement de Skeel du système triangulaire reète la précision doublée des calculs intermédiaires ; le terme u reète quant à lui l'arrondi nal vers la précision courante.

Nous ne sommes pas parvenu à démontrer que la solution calculée par CompTRSV est aussi précise que si elle avait été calculée avec une précision doublée pour les calculs in-termédiaires : en d'autre termes, nous ne sommes pas parvenu à obtenir une borne sur l'erreur relative entachant la solution compensée bx de la même forme que l'inégalité (9.3). Néanmoins, au travers du lemme 9.4, nous proposons une méthode générique pour obtenir une borne a priori sur l'erreur entachant la solution compensée. Ce résultat appliqué à l'algorithme CompTRSV, donne une borne d'erreur relative de la forme,

kbxd− xk

kxk ≤ u + O(u2) K(T, x) + O(u3), (9.4) où K(T, x) est un facteur qui sera déni en Section 9.3, et vériant cond(T, x) ≤ K(T, x). Au travers de nos expériences numériques, nous verrons que l'on peut s'attendre à ce que K(T, x) dière en pratique relativement peu de cond(T, x), ce qui nous permettra d'interpréter expérimentalement la borne d'erreur (9.4).

9.2 Algorithme de substitution et résidu associé

Dans cette section, nous rappelons les résultats bien connus qui nous serons utiles à propos de l'algorithme de substitution en arithmétique ottante. Nous montrons également que le calcul du résidu, pour une solution approchée calculée par substitution d'un système triangulaire, est nécessairement un problème mal conditionné à la précision u.

9.2.1 Précision de la solution calculée

Higham propose le théorème suivant, valable lorsque la formule de substitution est utilisée en arithmétique ottante, quel que soit l'ordre d'évaluation des opérations arith-métiques [39, p. 142].

Théorème 9.2. On considère le système triangulaire T x = b avec T ∈ Fn×n non singulière et b ∈ Fn×1. Soit bx une solution approchée de ce système calculé en arithmétique ottante par substitution, dans un ordre quelconque. Alors la solution calculée bx satisfait

132 Chapitre 9. Résolution compensée de systèmes triangulaires Le théorème précédent est un résultat de nature inverse : la solution calculée bx est expri-mée comme solution exacte d'un système perturbé (T + ∆T )bx = b. Higham déduit ensuite du théorème 9.2 la borne suivante sur l'erreur relative entachant la solution calculée [39, p. 142],

kbx − xk

kbxkγncond(T, x)

1 − γncond(T ), (9.5) où cond(T, x) et cond(T ) sont deux nombres de conditionnement introduits par Skeel. Ceux-ci sont dénis respectivement par

cond(T, x) = k|T−1kxk||T ||x|k

, (9.6)

et

cond(T ) = cond(T, e) = k|T−1||T |k, (9.7) avec e = (1, . . . , 1)T ∈ Rn×1. Il faut bien entendu supposer γncond(T ) < 1 pour que l'inégalité (9.5) ait un sens. En négligeant les termes en O(u2), on obtient ainsi

kbx − xk

kbxk ≤ nu cond(T, x) + O(u2). (9.8) Cette dernière inégalité montre que la borne (9.5) sur l'erreur relative entachant la solution calculée dépendant essentiellement du conditionnement cond(T, x).

Supposons maintenant que l'on calcule une solution approchée bxd au système T x = b par substitution en précision doublée u2, avec un arrondi nal vers la précision de travail u. On note ici γk = ku2/(1 − ku2). En supposant γncond(T ) < 1, la solution bx du système T x = b calculée par substitution en précision doublée satisfait

kbx − xk

kxk1 − γγncond(T, x)

ncond(T ). De plus, comme bxd est l'arrondi de bx à la précision courante,

kbxd− xk

kxk ≤ u + (1 + u)

γncond(T, x) 1 − γncond(T ), ce qui donne, en négligeant les termes en O(u3),

kbxd− xk

kxk ≤ u + nu2cond(T, x) + O(u3). (9.9) Les bornes d'erreurs obtenues pour la solution approchée au système T x = b calculée par substitution compensée seront par la suite comparées à cette borne d'erreur (9.9).

9.2.2 Nombre de conditionnement pour le calcul du résidu

Le but de cette sous-section est de montrer que le calcul du résidu r = b − T bx est un problème mal conditionné, indépendamment de cond(T ) et de cond(T, x). Insistons sur le fait que le résultat que nous allons démontrer ne s'applique qu'au cas des systèmes tri-angulaires, et en supposant que la solution approchée bx du système T x = b est obtenue

9.2. Algorithme de substitution et résidu associé 133 par substitution. Précisions également que nous ne connaissons pas de résultat compa-rable dans le cas de systèmes linéaires quelconques. Nous introduisons ici un nombre de conditionnement pour le calcul de r, déni par

cond(r) = k|b| + |T ||bx|kkrk

. (9.10)

An d'illustrer le rôle joué par cond(r), considérons le cas où br est calculé en précision de travail u. L'erreur directe entachant le résidu calculé br est alors majorée comme suit (voir [39, p. 233]),

|br− r| ≤ γn+1(|b| + |T ||bx|). En supposant krk6= 0, on a donc

kbr− rk

krk ≤ γn+1cond(r). (9.11) Cette borne sur l'erreur relative entachant le résidu calculé br nous permet de justier le fait que nous ayons déni cond(r) comme un nombre de conditionnement pour le calcul de r. La proposition suivante fournit un minorant pour cond(r), qui ne dépend ni de cond(T ), ni de cond(T, x).

Proposition 9.3. En supposant que bx soit une solution approchée du système triangu-laire T x = b calculée par substitution, indépendamment de l'ordre l'ordre d'évaluation des opérations arithmétiques, on a

cond(r) ≥ γ−1

n . (9.12)

La relation (9.12) montre que le conditionnement pour le calcul du résidu est toujours supérieur à γ−1

n ≈ u−1 : le calcul du résidu est donc un problème mal conditionné lorsque l'on travaille à la précision u.

En particulier, lorsque le résidu est calculé en précision courante u, la borne (9.11) ne permet pas de garantir une erreur relative inférieure à 1 pour le résidu approché br. Ainsi, la proposition 9.3 justie, dans le cas particulier de la résolution de systèmes triangulaires par substitution, la nécessité de calculer le résidu dans une précision au moins double de la précision de travail u.

Preuve. Comme bx est une solution approchée du système triangulaire T x = b obtenue par substitution, on a b = (T + ∆T )bx, avec |∆T | ≤ γn|T |. Donc

|r| = |b − T bx| = |(T + ∆T )bx − T bx| = |∆T bx| ≤ γn|T ||bx|, et, krk≤ γnk|T ||bx|k. D'où k|b| + |T ||bx|k krk ≥ γ−1 n k|b| + |T ||bx|k k|T ||bx|k ≥ γ−1 n ,

134 Chapitre 9. Résolution compensée de systèmes triangulaires