J'ai lu ça
(1) Les opérations mal conditionnées doivent être effectuées avant celles bien conditionnées.
Par exemple, on devrait calculer comme puisque la soustraction est mal conditionnée tandis que la multiplication ne l'est pas.
Cependant, une analyse d'erreur de premier ordre des deux algorithmes révèle qu'ils ne diffèrent que par un facteur de trois (*), et je ne vois pas pourquoi on peut généraliser cela à l'énoncé (1), ni saisir intuitivement la signification de ordre des opérations. Pensez-vous que la déclaration est (1) est une règle acceptée, et avez-vous d'autres explications?
*: plus précisément, la première version a une erreur relative délimitée par
où est la précision de la machine.
Cette analyse est basée sur l'hypothèse que le ème résultat intermédiaire est multiplié par (en raison d'erreurs d'arrondi), où sont iid des variables aléatoires limitées par . "Premier ordre" signifie que les termes d'ordre supérieur, comme , sont négligés.
la source
Réponses:
Notons (j'étais paresseux en essayant d'obtenir la version encerclée de l'opérateur de division) les analogues à virgule flottante de la multiplication exacte ( × ), de l'addition ( + ) et de la soustraction ( - ), respectivement. Nous supposerons (IEEE-754) que pour chacun d'eux [ x ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗,⊕,⊖ × + −
où ϵ m a c h est la machine epsilon donnant une borne supérieure sur l'erreur relative due à l'arrondi. Nous utiliserons également le lemme suivant (en supposant que tout | δ i | ≤ ϵ m a c h , et m n'est pas trop grand) qui peut être facilement prouvé:
m ∏ i = 1 ( 1 + δ i ) = 1 + θ (
la source