Padrões científicos para erros numéricos

40

No meu campo de pesquisa, a especificação de erros experimentais é comumente aceita e as publicações que não os fornecem são altamente criticadas. Ao mesmo tempo, muitas vezes acho que os resultados de cálculos numéricos são fornecidos sem nenhuma explicação de erros numéricos, mesmo que (ou talvez porque) métodos numéricos frequentemente questionáveis ​​estejam em funcionamento. Estou falando de erros que resultam da discretização e precisão finita de cálculos numéricos etc. Claro, essas estimativas de erro nem sempre são fáceis de obter, como no caso de equações hidro-dinâmicas, mas muitas vezes parecem resultar de preguiça enquanto acredito que a especificação das estimativas de erro numérico deve ser padrão tanto quanto para os resultados experimentais. Daí a minha pergunta:

highsciguy
fonte

Respostas:

26

Sua pergunta é sobre o modelo de verificação. Você pode encontrar vários recursos sobre métodos e padrões pesquisando Verificação e Validação ( Roache 1997 , 2002 , 2004 , Oberkampf & Trucano 2002 , Salari & Knupp 2000 , Babuska & Oden 2004 ), bem como o tópico mais amplo de Quantificação da Incerteza . Em vez de elaborar métodos, gostaria de destacar uma comunidade que assumiu uma posição firme sobre o assunto.

Em 1986, Roache, Ghia e White estabeleceram a Declaração de Política Editorial do Journal of Fluids Engineering sobre o Controle da Precisão Numérica, que começa com

Existe um problema profissional na comunidade da dinâmica dos fluidos computacional e também na área mais ampla da física computacional. Nomeadamente, há uma necessidade de padrões mais altos no controle da precisão numérica.

[...] O problema certamente não é exclusivo do JFE e teve um foco ainda mais acentuado na Conferência AFOSRHTTM-Stanford de 1980-81 sobre Fluxos Turbulentos Complexos. Concluiu-se que o Comitê de Avaliação da conferência considerou que, na maioria das submissões da conferência, era impossível avaliar e comparar a precisão de diferentes modelos de turbulência, pois não era possível distinguir erros de modelagem física de erros numéricos relacionados ao algoritmo e grade. Esse é especialmente o caso de métodos precisos de primeira ordem e métodos híbridos.

Eles concluem com diretrizes muito diretas:

O Journal of Fluids Engineering não aceitará para publicação nenhum artigo que relate a solução numérica de um problema de engenharia de fluidos que não atenda à tarefa de teste sistemático de erros de truncamento e estimativa de precisão.

[...] devemos deixar claro que um único cálculo em uma grade fixa não será aceitável , pois é impossível inferir uma estimativa de precisão desse cálculo. Além disso, os editores não considerarão um acordo razoável com dados experimentais como prova suficiente de precisão, especialmente se houver parâmetros ajustáveis ​​envolvidos, como na modelagem de turbulência.

A versão atual contém um conjunto abrangente de critérios e representa um padrão que, na minha opinião, outros campos devem aspirar a corresponder. É vergonhoso que ainda hoje a conscientização sobre a importância da verificação do modelo esteja ausente em muitos campos.

Jed Brown
fonte
11
O ponto final sobre parâmetros ajustáveis ​​me lembra uma citação de John von Neumann: "Com quatro parâmetros, eu posso encaixar um elefante, e com cinco, posso fazê-lo mexer o tronco".
Jed Brown
Isso aborda apenas o efeito de erro de discretização, não o de erros de arredondamento, que são quase universalmente ignorados em simulações de fluidos, pois geralmente contribuem menos para o erro total. Mas em aplicações que não envolvem equações diferenciais ou integrais, não há erro de discretização. Nesses problemas, erros de arredondamento e erros de truncamento de iteração são a fonte dominante de erros.
Arnold Neumaier 10/10
Você acha que uma estimativa rigorosa a posteriori poderia substituir o requisito de independência da rede? Como afirmado, é um pouco vago, quanto você aprimora a grade para garantir a independência? Um bom estimador a posteriori, por outro lado, não deve deixar espaço para ambiguidade.
usar o seguinte código
2
@ Reid.Atcheson "Olá, eu ouvi você gostar de estimativas de erro, então recebi uma estimativa de erro para sua estimativa de erro, para que você possa estimar o erro em sua ...", mas, infelizmente, as estimativas práticas de erro geralmente não são rigorosas. na pior das hipóteses. Os limites disponíveis são freqüentemente pessimistas e se baseiam em suposições que não são verdadeiras para a maioria dos problemas de engenharia. Mesmo com o estimador de erro supremo, você precisa verificar se ele foi implementado corretamente. De qualquer maneira, use um estimador de erros se você tiver um, mas o estimador de erros não é uma verificação independente.
Jed Brown
19

Não existem tais padrões, pois as estimativas de erros confiáveis ​​geralmente custam muito mais do que os cálculos aproximados.

Basicamente, existem quatro tipos de estimativas de erro:

(i) Análises teóricas comprovando que um método numérico é numericamente estável. Isso realmente não fornece uma barra de erro, pois a análise apenas garante que o erro cometido não seja pior que um erro quantificado nos argumentos de entrada. É suficiente para a maioria dos cálculos científicos, pois as entradas também são aproximadas, portanto, o erro cometido com um método numericamente estável não é pior do que ter usado uma entrada ligeiramente diferente (mas desconhecida). Os métodos numéricos mais conceituados são acompanhados de uma análise numérica, embora não seja possível encontrar nenhuma implementação que reporte mediante solicitação o chamado erro inverso resultante.

(ii) estimativas de erros assintóticos. Eles assumem que os produtos de todos os erros (erros de entrada, erros de arredondamento ou discretização sendo as fontes mais comuns) podem ser negligenciados (questionável se as funções forem muito não-lineares) e usar análise de sensibilidade para propagar erros de entrada. Juntamente com uma análise de estabilidade numérica, isso também pode capturar o efeito de erros de arredondamento ou de discretização. As barras de erro resultantes são tão confiáveis ​​quanto a validade das suposições nas quais elas se baseiam. Usando ferramentas de diferenciação automática, o custo da estimativa de erro normalmente é um fator de 1 ou 2, além do custo da aproximação. Portanto, esse tipo de estimativa de erro é bastante frequente na prática.

[Editar] Por exemplo, o teorema de Oettli-Prager fornece estimativas de erros atrasados ​​facilmente computáveis ​​para a solução de sistemas lineares. A análise de sensibilidade diz que esses erros devem ser multiplicados pela norma da matriz inversa, que pode ser estimada usando o estimador de Hager (embutido nos estimadores de números de condição modernos).

(iii) Análise de erro estocástico: (CESTAC, http://www.sciencedirect.com/science/article/pii/0378475488900705) Isso é feito sobrecarregando todas as operações com uma variante estocástica correspondente que avalia três conjuntos de argumentos e depois adiciona um erro artificial de arredondamento aleatório. os três resultados finais são usados ​​para calcular uma média e um desvio padrão da raiz quadrada de (soma dos quadrados dos desvios da média dividida por 2 = 3-1). Isso fornece uma estimativa de precisão bastante útil da parte do erro de arredondamento. No entanto, isso não leva em conta erros de discretização, que geralmente é o erro dominante nos cálculos ODE e PDE. O custo depende da linguagem de programação devido à sobrecarga na execução de operações sobrecarregadas. Supondo (o que quase nunca ocorre) que a sobrecarga não acarreta penalidade de tempo, o custo do resultado mais a estimativa de erro é um fator 3 em comparação ao cálculo apenas da aproximação.

(iv) Análise de intervalo: Isso fornece limites rigorosos para todas as fontes de erro, se feitos corretamente, mas, exceto em casos simples, requer muita experiência (ou software que o incorpora) para fazê-lo de uma maneira que os limites não superestimem severamente os erros reais . Um bom software de intervalo está disponível, entre outros, para álgebra linear (por exemplo, IntLab http://www.ti3.tu-harburg.de/rump/intlab/ ; custa um fator de cerca de 6 se a dimensão for grande) e otimização global (por exemplo, , COCONUT http://www.mat.univie.ac.at/~coconut/coconut-environment/; pode ser muito mais caro ou até mais barato que a otimização global aproximada, dependendo dos recursos do problema). Mas muitas outras classes de problemas fáceis de tratar com precisão aproximadamente (por exemplo, encerrando as trajetórias dos grandes planetas do sistema solar ao longo de 10 anos) estão completamente fora do alcance da atual geração de métodos de intervalo.

Arnold Neumaier
fonte
Obrigado. Eu gostaria de ver (ii) no trabalho. Você pode dar um exemplo em que os autores combinam análise de sensibilidade e análise de estabilidade numérica para determinar estimativas de erro global.
highsciguy
@highsciguy: veja minha edição de (ii)
Arnold Neumaier
Obrigado. Matriz jacobiana inversa?
highsciguy
@highsciguy: não entendi sua última pergunta. O exemplo foi resolver um sistema linear de equações, sem figuras jacobianas.
Arnold Neumaier
11
Eu negligenciei linear. Então está claro. Existem tentativas de generalizar o teorema de Oettli-Prager para sistemas não lineares?
highsciguy
13

Tipo de. Existem limites de erro teóricos que foram derivados por analistas numéricos que geralmente superestimam e podem não ser tão úteis na prática, porque podem envolver informações difíceis de obter para problemas na prática. Um bom exemplo seria o limite de erros numéricos na solução de equações comuns, que você pode encontrar nos livros de Hairer e Wanner. O livro de Nick Higham, Precisão e estabilidade de algoritmos numéricos (talvez eu esteja um pouco desconfortável com o título) também fornece alguns limites de erro em operações numéricas comuns e algoritmos de álgebra linear. A literatura de análise numérica está repleta de tais limites.

Métodos de análise de intervalo também foram usados ​​para calcular limites de erro; esses métodos são rigorosos e tendem a fornecer limites de erro mais fortes que os limites teóricos, mas esses métodos ainda podem superestimar o erro em um cálculo numérico. Esses métodos foram melhor explorados (até onde sei) em otimização global, mas também estão sendo utilizados na quantificação de incertezas. Arnold Neumaier escreveu pelo menos um livro sobre métodos de análise de intervalo e está melhor qualificado para comentar esse tópico em detalhes. Além de possíveis problemas de superestimação, os métodos de análise de intervalo exigem a necessidade de infraestrutura computacional adicional, que exige uma atualização dos grandes pacotes de simulação numérica existentes (como PETSc, Trilinos, CLAWPACK / PyClaw, etc.) ) para incluir aritmética de intervalo e diferenciação automática (para métodos baseados em Taylor). Pelo que vi, não há muitos pacotes de diferenciação automática e aritmética com intervalo permissivamente licenciados por aí, embora existam alguns. Mesmo assim, às vezes, essas bibliotecas têm funcionalidade limitada; tem sido difícil encontrar uma biblioteca aritmética de intervalo permissivamente licenciada (LGPL ou BSD) com funcionalidade semelhante a BLAS.

As estimativas de erro a posteriori podem ser obtidas com mais facilidade, mas não são rigorosas. Eu estou mais familiarizado com essas estimativas do trabalho em equações diferenciais ordinárias, mas elas também existem para muitos métodos usados ​​para calcular soluções para equações diferenciais parciais.

Mais amplamente, métodos de quantificação de incertezas, como o uso de expansões de caos polinomiais, métodos de Monte Carlo ou outros métodos de amostragem, podem ser usados ​​para quantificar a incerteza nos cálculos devido a variações nos parâmetros de entrada. Esses métodos devem poder fornecer algum tipo de "barra de erro" heurística devido a variações nos parâmetros, mas não fornecem limites rigorosos.

Acredito que você esteja absolutamente certo quando se trata de especificação de erros numéricos: a ciência computacional deve ser tão rigorosa na apresentação de seus resultados quanto as ciências físicas baseadas em experimentos. Há muito trabalho sendo realizado nessa área (sob os termos gerais "quantificação da incerteza" e "análise numérica"), e espero que barras de erro sejam incluídas ao discutir a maioria dos resultados computacionais em algum momento no futuro .

Geoff Oxberry
fonte
você tem uma boa referência de um artigo de visão geral sobre essas expansões polinomiais do caos? Vi o termo surgindo regularmente e gostaria de aprender um pouco mais sobre eles. Obrigado.
GertVdE
2
Dongbin Xiu geralmente escreve artigos acessíveis sobre expansões polinomiais do caos. Aqui está um dos papéis visão mais geral que ele escreveu: dam.brown.edu/scicomp/media/report_files/BrownSC-2003-07.pdf
Geoff Oxberry
7

Além das outras respostas, há alguns pontos adicionais a serem considerados.

  1. Erros de discretização numérica, ou pelo menos a ordem dos esquemas, podem ser determinados analiticamente. A discussão desses erros pode ser omitida nos artigos se eles usarem um esquema conhecido.
  2. Estudos de refinamento de grade onde o mesmo problema, geralmente algo simples, é executado em grades progressivamente mais refinadas. Estes são comparados com uma solução exata, ou a solução em uma grade ridiculamente fina, para encontrar a norma L, normalmente L2. A inclinação dessa estimativa de erro fornece a ordem da precisão.
  3. Nos problemas em que diferentes esquemas numéricos estão disponíveis, mas o refinamento da grade ou soluções exatas não existem, outro método chamado Richardson Extrapolation dará limites aos termos do erro. Uma boa revisão que descreve esses métodos pode ser encontrada neste artigo
  4. Por fim, cada periódico define seus próprios padrões de aceitação. Alguns são rigorosos, outros não. Por exemplo, a AIAA estabeleceu seus padrões aqui . Outras revistas têm informações semelhantes para os autores.
tpg2114
fonte
Quero apenas comentar o ponto 2. Sinto que, ao resolver numericamente um problema do mundo real, é muito mais provável que a norma compare a diferença entre dois refinamentos sucessivos, em vez de "uma grade ridiculamente fina". Se você consegue resolver a grade muito fina, por que se incomoda com as muito mais grossas?
Godric Seer
Os estudos de refinamento da grade são impraticáveis ​​em problemas reais normalmente. É aí que entra o ponto 3, é muito mais fácil determinar os limites de erro alterando a ordem do esquema do que refinar progressivamente a grade. Por exemplo, validamos nossos códigos usando um vórtice invíscido que ainda não é linear, mas podemos executar soluções "exatas" muito finas para verificar a precisão. Mas em um combustor de turbilhão completo, não podemos praticamente fazer isso, então usamos esquemas diferentes.
usar o seguinte comando
Observe também que refinar a grade e verificar a diferença na resposta mostra independência da grade, o que é diferente de verificar os limites de erro. O refinamento da grade ainda é necessário, mesmo em casos práticos, embora o refinamento da grade para algo como o Large Eddy Simulations abra toda uma outra lata de worms.
usar o seguinte comando
Obrigado, eu relacionei incorretamente a independência da grade com limites de erro. Acho que sempre assumi que a independência da grade implicava algum nível qualitativo de garantia no erro de discretização.
Godric Seer
3
A independência da grade implica que uma grade mais fina não melhorará a resposta, mas não informará a precisão da resposta ou a rapidez com que refinar a grade melhorou a precisão.
usar o seguinte comando