Eu li isso
(1) Operações mal condicionadas devem ser realizadas antes das bem condicionadas.
Como exemplo, deve-se calcular como pois a subtração está mal condicionada enquanto a multiplicação não.
Entretanto, uma análise de erro de primeira ordem de ambos os algoritmos revela que eles diferem apenas por um fator de três (*), e não vejo por que se pode generalizar isso na afirmação (1), nem compreendo intuitivamente a importância de ordem de operações. Você acha que a afirmação é (1) é uma regra aceita e você tem outras explicações para isso?
*: mais especificamente, a primeira versão possui um erro relativo delimitado por
enquanto o erro relativo da segunda versão é delimitado por
onde é a precisão da máquina.
Essa análise baseia-se no pressuposto de que o ésimo resultado intermediário é multiplicado por ( 1 + ε i ) (devido a erros de arredondamento), em que ε i são variáveis aleatórias delimitadas por eps . Meios "de primeira ordem" que os termos de ordem superior, como ε i ε j x , são negligenciadas.
fonte
Respostas:
Vamos denotar por (eu estava com preguiça de tentar obter uma versão circulada do operador de divisão) os análogos de ponto flutuante da multiplicação exata ( × ), adição ( + ) e subtração ( - ), respectivamente. Vamos assumir (IEEE-754) que, para todos eles [ x ⊕ y ] = ( x + y ) ( 1 + δ ⊕ ) ,⊗ , ⊕ , ⊖ × + -
onde ε m um c h é a epsilon máquina que dá um limite superior sobre o erro relativo devido ao arredondamento. Também usaremos o seguinte lema (assumindo que todos | δ i | ≤ ϵ
Vamos definir a verdadeira função que opera nos números reais x , y , z comof x , y, z
e duas versões da implementação da função na aritmética de ponto flutuante compatível com IEEE como e ~ f 2 que operam nas representações de ponto flutuante ˜ xf1 1~ f2~ , como se segue:x~= x ( 1 + δx) , y~, z~
Análise de erro para :f1 1~
fonte