JDEV 2013 (3/7) – Comment calculer avec des intervalles
By   |  November 30, 2013

Nathalie Revol, INRIA.
 
(Cet article fait partie de notre dossier JDEV 2013 : Développer pour calculer)
 
Le principe de l’arithmétique par intervalles consiste à représenter les quantités manipulées par des intervalles qui les contiennent, plutôt que par des nombres qui les approchent. Comment peut-on ensuite calculer avec des intervalles ? La définition mathématique d’une opération comprise entre deux intervalles a et b est :

\(a \diamond b = Hull\left\{a \diamond b\: /\: a \in a,\: b \in b\right\}\)

Il est possible, à partir de cette définition, d’établir des formules pour chaque opération. Par exemple, en utilisant le fait que l’addition est croissante par rapport à chacun de ses opérandes, on aboutit à la formule suivante :

\(a + b = [\underline{a},\bar{a}] + [\underline{b}, \bar{b}] = [\underline{a} + \underline{b},\: \bar{a} + \bar{b}]\)

En utilisant le fait que la soustraction est monotone croissante par rapport à son premier opérande et monotone décroissante par rapport à son second opérande, on obtient :

\(a – b = [\underline{a},\bar{a}] – [\underline{b}, \bar{b}] = [\underline{a} – \bar{b},\: \bar{a} + \underline{b}]\)

On peut d’ores et déjà remarquer que la soustraction d’intervalles n’est pas l’opération réciproque de l’addition d’intervalles :

\(a – a = [\underline{a}-\bar{a},\: \bar{a}-\underline{a}] \neq \left\{0\right\}\)

même si le résultat contient 0.

Toujours en utilisant la monotonie (partielle) des opérations, on obtient la formule suivante pour le produit de deux intervalles :

\(a \times b =\)
\([\underline{a}, \bar{a}] \times [\underline{b}, \bar{a}] =\)
\([min (\underline{a}\times\underline{b}, \underline{a}\times\bar{b}, \bar{a}\times\underline{b}, \bar{a}\times\bar{b}), max (\underline{a}\times\underline{b}, \underline{a}\times\bar{b}, \bar{a}\times\underline{b}, \bar{a}\times\bar{b})]\)

Comme l’élévation au carré produit toujours un résultat positif, la formule pour le carré est :

\(a^2 = [min (\underline{a}^2, \bar{a}^2) , max (\underline{a}^2, \bar{a}^2)]\)   si  \(0 \notin a\)

et

\([0, max(\underline{a}^2, \bar{a}^2)]\)   si  \(0 \in a\)

On note à nouveau que l’élévation au carré d’un intervalle n’est pas la même opération que la multiplication de cet intervalle par lui-même, qui peut produire des éléments strictement négatifs comme dans :

\([-1, 2] \times [-1, 2] = [-2, 4]\)

alors que

\([-1, 2]^2 = [0, 4]\)

Ces deux exemples illustrent la perte de propriétés algébriques des opérations en arithmétique par intervalles. Cela signifie que le résultat de l’évaluation d’une expression dépend fortement de l’écriture choisie pour cette expression, plusieurs écritures mathématiquement équivalentes fournissant des résultats différents. La mise au point de l’écriture utilisée requiert donc un soin particulier et c’est l’une des difficultés de l’arithmétique par intervalles que de choisir une forme qui donnera lieu à un résultat fin.

Une autre difficulté se pose quand l’opération considérée n’est pas définie pour tout argument : par exemple, la racine carrée n’est définie que pour les nombres positifs. Il a été choisi, par convention, de prendre l’intersection de l’argument avec le domaine de définition avant d’effectuer l’opération. Par exemple,

\(\sqrt{[-1, 2]} = \sqrt{[-1, 2] ∩ \mathbb{R}^+} = [0, \sqrt{2}]\)

L’implémentation de l’arithmétique par intervalles sur ordinateur utilise souvent l’arithmétique flottante disponible sur les processeurs. Pour respecter la propriété d’inclusion, il faut choisir des modes d’arrondi qui “élargissent” l’intervalle résultat. C’est possible en utilisant l’arrondi vers -∞ (“arrondi vers le bas”) pour le calcul de l’extrémité inférieure et l’arrondi vers +∞ (“arrondi vers le haut”) pour le calcul de l’extrémité supérieure.

[Références]

– R. Moore : Interval Analysis, Prentice Hall, Englewood Cliffs, 1966.
– A. Neumaier : Interval methods for systems of equations, Cambridge University Press, 1990.
– R. Moore, R.B. Kearfott, M.J. Cloud : Introduction to interval analysis, SIAM, 2009.
– S.M. Rump : Computer-assisted proofs and Self-Validating Methods, pp. 195-240, in Handbook on Accuracy and Reliability in Scientific Computation (B. Einarsson ed.), SIAM, 2005.
– S.M. Rump : Verification methods: Rigorous results using floating-point arithmetic, in Acta Numerica, vol. 19, pp. 287-449, 2010.
– W. Tucker : Validated Numerics: A Short Introduction to Rigorous Computations, Princeton University Press, 2011.
 
(Dossier JDEV 2013 : Développer pour calculer : article précédent | suivant)

© HPC Today 2024 - All rights reserved.

Thank you for reading HPC Today.

Express poll

Do you use multi-screen
visualization technologies?

Industry news

Brands / Products index