Ordre des opérations, algorithmes numériques


10

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.xzyz(xy)z

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

eps+3|x|+|y||x||y|eps
alors que l'erreur relative de la deuxième version est limitée par

3eps+|x|+|y||x||y|eps

eps est la précision de la machine.

Cette analyse est basée sur l'hypothèse que le i ème résultat intermédiaire est multiplié par (1+εi) (en raison d'erreurs d'arrondi), où εi sont iid des variables aléatoires limitées par eps . "Premier ordre" signifie que les termes d'ordre supérieur, comme ϵiϵjx , sont négligés.


Où avez-vous lu ça?
David Ketcheson

dans mes notes de cours
Bananach

Réponses:


8

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 + δ ) ,,,×+ ϵ 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 + θ (

[xy]=(x+y)(1+δ),|δ|ϵmach,
ϵmach|δi|ϵmachm
i=1m(1+δi)=1+θ(m),|θ(m)|mϵmach1mϵmach

fx,y,z

f(x,y,z)=(x×z)(y×z)

f1~f2~x~=x(1+δx),y~,z~

f1~(x~,y~,z~)=(x~z~)(y~z~),

f2~(x~,y~,z~)=(x~y~)z~.

f1~

f1~=((x(1+δx)×z(1+δz))(1+δxz)(x~z~)(y(1+δy)×z(1+δz))(1+δyz)(y~z~))(1+δ)=xz(1+δx)(1+δz)(1+δxz)(1+δ)yz(1+δy)(1+δz)(1+δyz)(1+δ)=xz(1+θxz,1)yz(1+θyz,1).
|θxz,1|,|θyz,1|4ϵmach14ϵmach

f2~

f2~=(((x(1+δx)y(1+δy)(1+δxy))×(z(1+δz)))(1+δ)=xz(1+δx)(1+δz)(1+δxy)(1+δ)yz(1+δy)(1+δz)(1+δxy)(1+δ)=xz(1+θx,2)yz(1+θy,2).
|θx,2|,|θy,2|4ϵmach14ϵmach

f1~f2~f2~f1~

xy

|f1~f||f|=|xz+xzθxz,1yzyzθyz,1(xzyz)||xzyz|=|xθxz,1yθyz,1||xy||x|+|y||xy|4ϵmach14ϵmach,
|f2~f||f|=|xz+xzθx,2yzyzθy,2(xzyz)||xzyz|=|xθx,2yθy,2||xy||x|+|y||xy|4ϵmach14ϵmach.

θx,y,z(xy)xy

x,y,z,f(x,y,z)F0F0

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.