Verificação heurística da estabilidade numérica

12

Suponha que eu tenho uma função com valor real de algumas variáveis que eu quero avaliar numericamente. Em geral, a fórmula para pode conter produtos, razões, funções trancendentais etc. e será longa para investigar sua estabilidade numérica analiticamente. Ou será pelo menos demorado fazê-lo na prática. Suponha que eu não possua um equivalente mais curto com estabilidade garantida. Existe um procedimento metódico para analisar a estabilidade numérica dex i f ff(x1,,xN)xiff. Penso em compará-lo com resultados arbitrários de precissão obtidos usando um sistema de álgebra computacional. Digamos que a função será implementada em C usando funções stdlib e precisão simples ou dupla. Quais quantidades devo comparar para quantificar a qualidade da aproximação em precissão finita? Como eu determino valores críticos das variáveis? Como posso escolher o otimizador e as otimizações do compilador para que outras pessoas possam reproduzir facilmente os resultados? ... Eu sei que a configuração do problema provavelmente é genérica para dar boas respostas. Mas ainda acho que esse é um problema comum na ciência da computação e me pergunto se existem referências que propõem padrões para realizar essa análise.

highsciguy
fonte

Respostas:

7

O que você está procurando é o que é chamado "Análise Automática de Erros" e é o assunto do Capítulo 26 do livro de Higham "Precisão e Estabilidade de Algoritmos Numéricos", 2ª ed., SIAM Publishers.

Uma técnica que ele descreve é ​​usar a otimização direta da pesquisa: tente formular seu problema como um problema de otimização e use o algoritmo de otimização para encontrar coeficientes ou valores de parâmetros que maximizem ou minimizem uma quantidade relacionada à precisão do seu algoritmo / fórmula. Ele usa o exemplo do fator de crescimento na eliminação gaussiana (que matriz maximiza esse fator de crescimento) ou as raízes de um cúbico (como respondi em uma de suas perguntas anteriores).

Sugiro que você obtenha uma cópia deste livro, leia os capítulos introdutórios e este capítulo 26 e as referências nele contidas.

GertVdE
fonte
3

±1

x±11/xx=01/(1x)1/(1+x)x=0

Arnold Neumaier
fonte
0

|f(x+ε)f(x)|C|ε|
Cfx,ϵ
Wolfgang Bangerth
fonte
E o que pode ser feito se as funções variarem muito em relação ao seu domínio ou se não houver derivado possível? Existem outras técnicas ou acabaríamos com uma abordagem de Monte Carlo?
André
1
-1: você explica a noção de condição, não de estabilidade numérica.
Arnold Neumaier