He leido eso
(1) Las operaciones mal condicionadas deben realizarse antes que las bien condicionadas.
Como ejemplo, uno debe calcular como ya que la resta está mal condicionada mientras que la multiplicación no.
Sin embargo, un análisis de error de primer orden de ambos algoritmos revela que difieren solo por un factor de tres (*), y no veo por qué uno puede generalizar esto a la declaración (1), ni entiendo intuitivamente la importancia de Orden de operaciones. ¿Crees que la declaración es (1) es una regla aceptada, y tienes otras explicaciones para ello?
*: más específicamente, la primera versión tiene un error relativo delimitado por
donde es la precisión de la máquina.
Este análisis se basa en la suposición de que el -ésimo resultado intermedio se multiplica por (debido a errores de redondeo), donde es iid variables aleatorias limitadas por . "Primer orden" significa que los términos de orden superior, como , se descuidan.
fuente
Respuestas:
Denotemos por (era flojo tratando de obtener una versión en círculo del operador de división) los análogos de coma flotante de multiplicación exacta ( × ), suma ( + ) y resta ( - ), respectivamente. Asumiremos (IEEE-754) que para todos ellos [ x ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗ , ⊕ , ⊖ × + -
donde ϵ m a c h es la máquina épsilon que da un límite superior al error relativo debido al redondeo. También usaremos el siguiente lema (suponiendo que todos | δ i | ≤ ϵ m a c h , ym no es demasiado grande) que se puede probar fácilmente:
m ∏ i = 1 ( 1 + δ i ) = 1 + θ (
Definamos la verdadera función que opera en números reales x , y , z comoF x , y, z
y dos versiones de la implementación de la función en aritmética de coma flotante compatible con IEEE como y ~ f 2 que operan en representaciones de coma flotante ˜ x = x ( 1 + δ x ) , ˜ y , ˜ z , como sigue:F1~ F2~ X~= x ( 1 + δX) , y~, z~
Análisis de error para :F1~
fuente