Seleção de método para quadratura numérica

12

Existem várias famílias de métodos para quadratura numérica. Se eu tiver uma classe específica de integrandos, como seleciono o método ideal?

Quais são as perguntas relevantes a serem feitas sobre o integrando (por exemplo, é suave? Possui singularidades?) E o problema computacional (por exemplo, tolerância a erros, orçamento computacional)?

Como as respostas a essas perguntas descartam ou promovem as várias famílias de métodos? Para simplificar, vamos considerar apenas integrais simples ou de baixa dimensão.

Por exemplo, o artigo da Wikipedia no QUADPACK afirma que a QAGSrotina bastante geral " usa quadratura adaptativa global com base na quadratura de Gauss-Kronrod de 21 pontos dentro de cada subintervalo, com aceleração pelo algoritmo epsilon de Peter Wynn "

Como foi tomada essa decisão? Como se pode tomar decisões semelhantes quando se sabe mais?

MRocklin
fonte
1
Provavelmente são necessárias informações mais específicas para responder adequadamente. Não há critérios de tamanho único, a quadratura gaussiana geralmente funciona bem para problemas muito suaves, enquanto outras quadraturas podem ser usadas na presença de singularidades leves. Mas se você é periódico, um trapézio simples pode cortá-lo.
Reid.Atcheson
2
@ Reid.Atcheson, acho que você está respondendo à pergunta agora. Não estou perguntando qual é o melhor método, estou perguntando que tipo de perguntas você faria e o que essas respostas lhe diriam? Como alguém aborda esse tipo de problema em geral?
310013 MRocklin

Respostas:

11

Primeiro de tudo, você deve se perguntar se você precisa de uma rotina de quadratura completa que deve ter um integrando como uma caixa preta. Nesse caso, você não pode deixar de optar pela quadratura adaptativa, na qual espera que a adaptabilidade encontre pontos "difíceis" no integrando. E essa é uma das razões pelas quais Piessens et al. escolheu para uma regra de Gauss-Kronrod (esse tipo de regra permite calcular uma aproximação da integral e uma estimativa do erro de aproximação usando as mesmas avaliações de função) de ordem modesta aplicada em um esquema adaptativo (com subdivisão do intervalo com a variável erro mais alto) até que as tolerâncias necessárias sejam atingidas. O algoritmo Wynn-epsilon permite fornecer aceleração de convergência e geralmente ajuda nos casos em que existem singularidades de ponto final.

Mas se você conhece o "formulário" ou o "tipo" do seu integrando, pode adaptar seu método ao necessário, para que o custo computacional seja limitado pela precisão necessária. Então, o que você precisa olhar:

Integrand:

  • Suavidade: pode ser aproximada (bem) por um polinômio de uma família polinomial ortogonal (se sim, a quadratura gaussiana se dará bem)
  • Singularidades: a integral pode ser dividida em integrais apenas com singularidades de ponto final (se sim, a regra IMT ou a quadratura exponencial dupla serão boas em cada sub-intervalo)
  • Custo computacional para avaliação?
  • O integrando pode ser calculado? Ou apenas dados limitados estão disponíveis?
  • Integrando altamente oscilatório: procure métodos do tipo Levin.

|xc|αcα

Intervalo de integração: finito, semi-infinito ou infinito. No caso de intervalos semi-infinitos ou infinitos, eles podem ser reduzidos a um intervalo finito por uma transformação variável? Caso contrário, os polinômios de Laguerre ou Hermite podem ser usados ​​na abordagem da quadratura gaussiana.

Não tenho uma referência para um fluxograma real para quadratura em geral, mas o livro QUADPACK (não as páginas de manual do Netlib, mas o livro real) possui um fluxograma para selecionar a rotina apropriada com base na integral que você deseja avaliar. O livro também descreve as escolhas em algoritmos feitos por Piessens et al. para as diferentes rotinas.

Para integrais de baixa dimensão, normalmente se aplica à quadratura unidimensional aninhada. No caso especial de integrais bidimensionais (cubatura), existem regras de integração para diferentes casos de domínios de integração. R. Cools coletou um grande número de regras em sua Enciclopédia de fórmulas de cubatura e é o principal autor do pacote Cubpack . Para integrais de alta dimensão, normalmente se recorre a métodos do tipo Monte Carlo. No entanto, normalmente é necessário um número muito grande de avaliações de integrandos para obter uma precisão razoável. Para integrais de baixa dimensão, métodos de aproximação como quadratura / cubatura / quadratura aninhada geralmente superam esses métodos estocásticos.

Referências interessantes gerais:

  1. Quadpack, Piessens, Robert; de Doncker-Kapenga, Elise; Überhuber, Christoph W .; Kahaner, David (1983). QUADPACK: Um pacote de sub-rotinas para integração automática. Springer-Verlag. ISBN 978-3-540-12553-2
  2. Métodos de Integração Numérica: Segunda Edição, Ph. Davis e Ph. Rabinowitz, 2007, Dover Books on Mathematics, ISBN 978-0486453392
GertVdE
fonte
1
Boa resposta. Por que o QUADPACK escolheu o método Gauss-Kronrod de 21 pontos em particular? Por que o número mágico?
21713 MRocklin
@MRocklin: Eu acho que foi uma boa troca entre precisão e eficiência: você não quer exagerar sua regra de quadratura (cara), mas também não quer que ela seja muito fraca (subdivisões demais na parte adaptativa) ) Para estar completo: na rotina QAG, o usuário deve especificar a regra de quadratura; no QAGS (com extrapolação), o padrão é a regra de 21 pontos, mas isso pode ser anulado usando a rotina de chamada estendida QAGSE.
GertVdE
1
@GertVdE Resposta muito boa mesmo. Você pode elaborar o uso de Clenshaw-Curtis para capturar singularidades no intervalo intermediário ou fornecer referências? Eu nunca o ouvi dessa maneira antes e não consegui encontrar detalhes de um rápido estudo no Google. Obrigado!
OscarB /
3
@ OscarB: desculpe pelo longo atraso, estava fora sem acesso à rede (ah a boa vida). Veja o livro Quadpack §2.2.3.3 e mais; Branders, Piessens, "Uma extensão da quadratura de Clenshaw-Curtis", 1975, J.Comp.Appl.Math., 1, 55-65; Piessens, Branders, "A avaliação e aplicação de alguns momentos modificados", 1973, BIT, 13, 443-450; Piessens, Branders, "Computação de integrais oscilantes", 1975, J.Comp.Appl.Math., 1, 153-164. Se você pesquisar na literatura por "Robert Piessens" em algum lugar entre 1972 e 1980, encontrará muitos artigos interessantes.
precisa saber é o seguinte