Em deste curso avançado sobre aplicações da teoria de função complexa em um ponto em um exercício integral altamente oscilatório
deve ser aproximado para grandes valores de usando o método do ponto de sela no plano complexo.
Devido à sua natureza altamente oscilatória, é muito difícil avaliar essa integral usando a maioria dos outros métodos. Estes são dois fragmentos do gráfico do integrando para em escalas diferentes:
Uma aproximação assintótica de ordem principal é
e um refinamento adicional (muito menor) adiciona o termo
Um gráfico dos valores aproximados em função de tem a seguinte aparência:
Agora vem a minha pergunta: para ver visualmente quão boa é a aproximação, eu gostaria de compará-la com o "valor real" da integral ou, mais precisamente, com uma boa aproximação à mesma integral usando um algoritmo independente. Devido à pequenez da correção subliminar, eu esperaria que isso fosse bem próximo.
Tentei avaliar a integral para alguns usando outros algoritmos, mas com muito pouco sucesso: o Mathematica e o Matlab, usando o integrador numérico padrão, não conseguem produzir um valor significativo (e relatam isso explicitamente), mpmath usando os dois pontos de exponencial substituição e o método Gauss-Legendre produzem resultados muito ruidosos, embora tenha uma leve tendência a oscilar em torno dos valores que o método do ponto de sela fornece, pois esse gráfico pode mostrar:
Finalmente, tentei a sorte com um integrador de Monte-Carlo usando um exemplo de importância que implementei, mas também não consegui obter resultados estáveis.
Alguém tem uma idéia de como essa integral pode ser avaliada independentemente para qualquer valor fixo de ou menos?
fonte
Respostas:
Use o teorema de Plancherel para avaliar esta integral.
A idéia básica é que, para duas funções ,f,g
onde são as transformadas de Fourier de . Suas funções têm suporte relativamente pequeno no domínio espectral. Aqui, e devem ter uma transformação analítica de Fourier (ou série), como a expansão Jacobi-Anger . Você pode truncar a série infinita em termos aproximadamente devido ao decaimento função Besselpara. Espero que isto ajude.F,G f,g sinx/x→rect(k) cos(λcosx) λ |Jn(x)| n>|x|
Editar : Na verdade, você deve usar as representações da série Fourier aqui em vez das transformações. O caminho da transformação leva a derivar a representação assintótica que você já possui (acontece que é apenas ). O teorema de Plancherel acima também funciona para as séries de Fourier com um domínio de integração de na última integral.πJ0(λ) [0,2π]
fonte
A chave para a avaliação das integrais oscilatórias é truncar a integral no ponto certo. Neste exemplo, você precisa escolher o limite superior do formulário Antes de explicar por que deve funcionar, deixe-me mostrar primeiro que ele realmente produz bons resultados.πN+π2
Assintóticos
É fácil adivinhar que séries assintóticas têm a forma Para verificar numericamente se é suficiente traçar a diferença entre uma expressão assintótica integral e principal.I(λ)∼2πλ−−−√[cos(λ−π4)+c1sin(λ−π4)λ+c2cos(λ−π4)λ2+c3sin(λ−π4)λ3+…] c1=18
Como resultado, você obtém um seno bastante agradável, que coincide com o que você derivou acima.
Se você deseja encontrar os seguintes coeficientes, um pedaço de código um pouco mais sofisticado, se necessário. A idéia do código abaixo é usar vários valores-limite superiores altos e "mediar" seus resultados.
Isso produz a seguinte resposta.c2=−9128,c3=−751024,c4=367532768,…
Explicação
Exemplo simples
Para a ilustração, vou usar um exemplo mais simples da integral senoidal Deixe-me imaginar que estou interessado no valor , mas não o conheço.S(x)=∫x0sin(y)ydy. S(∞)=π2
Você vê que oscila em torno de seu valor limite de forma semelhante à soma parcial de alternância na série de sinais oscila com o corte superior. Quando você deseja estimar essa soma, de acordo com o método de aceleração da série Euler, você deve tomar Ou em termos de função seno-integral, você deve integrá-lo até o ponto entre o máximo e o mínimo de oscilações. Como é claramente visto no gráfico, esse ponto é dado aproximadamente por para grandes valores de argumento. De maneira mais geral, esse ponto é aquele em queocorre.S(x) SN=∑n=1N(−1)nn. S≈SN+12(−1)N+1N+1. S(x)≈∫πN+π20sinxxdx max|S′(x)|
Seu problema
Voltando à integral do curso de Konstantin e Yaroslav, você pode ver que ela se comporta exatamente da mesma maneira que o seno - integral como uma função do limite superior. Isso significa que você só precisa calcular os valores com . Abaixo está o gráfico de vários desses valores com .Ix0(λ)=2∫x00cos(λcos(x))sinc(x)dx x0=πN+π2 λ=12π
Aqui você pode ver o resultado de outro método de aceleração. Reorganizo somas parciais da seguinte maneira e obtenho uma nova sequência que converge muito mais rapidamente. Esse truque também é útil se você deseja avaliar a integral com alta precisão.S′N=12(SN+SN+1) S′N
fonte
O método de Ooura para integrais senoidais de Fourier funciona aqui, veja:
Ooura, Takuya e Masatake Mori, uma fórmula exponencial dupla e robusta para integrais do tipo Fourier. Jornal de matemática computacional e aplicada 112.1-2 (1999): 229-241.
Eu escrevi uma implementação desse algoritmo, mas nunca trabalhei para obtê-lo rapidamente (digamos, nós / pesos de cache), mas mesmo assim, estou obtendo resultados consistentes em tudo além da precisão de flutuação:
Aqui está o código:
Você realmente não consegue ver a diferença entre a quadratura e o assintótico, porque eles ficam um em cima do outro, exceto como :λ→0
fonte