Dans ce cours avancé sur les applications de la théorie des fonctions complexes à un moment donné dans un exercice l'intégrale hautement oscillatoire
doit être approximée pour les grandes valeurs de utilisant la méthode du point de selle dans le plan complexe.
En raison de sa nature hautement oscillatoire, cette intégrale est très difficile à évaluer en utilisant la plupart des autres méthodes. Ce sont deux fragments du graphe de l'intégrande pour à différentes échelles:
Une approximation asymptotique d'ordre supérieur est
et un autre raffinement (beaucoup plus petit) ajoute le terme
Un graphique des valeurs approximatives en fonction de se présente comme suit:
Vient maintenant ma question: pour voir visuellement à quel point l'approximation est bonne, je voudrais la comparer à la "valeur réelle" de l'intégrale, ou plus précisément à une bonne approximation de la même intégrale en utilisant un algorithme indépendant. En raison de la petitesse de la correction de sous-reliure, je m'attendrais à ce que ce soit très proche.
J'ai essayé d'évaluer l'intégrale pour certains utilisant d'autres algorithmes, mais avec très peu de succès: Mathematica et Matlab utilisant l'intégrateur numérique par défaut ne parviennent pas à produire une valeur significative (et le rapportent explicitement), mpmath utilisant à la fois le doublement exponentiel substitution et la méthode de Gauss-Legendre produisent des résultats très bruyants, bien qu'elle ait une légère tendance à osciller autour des valeurs fournies par la méthode du point de selle, comme le montre ce graphique:
Enfin, j'ai tenté ma chance avec un intégrateur Monte-Carlo en utilisant un échantillon d'importance que j'ai implémenté, mais je n'ai pas réussi à obtenir de résultats stables non plus.
Quelqu'un at-il une idée de la façon dont cette intégrale pourrait être évaluée indépendamment pour une valeur fixe de ou plus?
Réponses:
Utilisez le théorème de Plancherel pour évaluer cette intégrale.
L'idée de base est que pour deux fonctions ,F, g
où sont les transformées de Fourier de . Vos fonctions ont toutes deux un support relativement faible dans le domaine spectral. Ici, et devraient avoir une transformée de Fourier (ou série) analytique, comme l' expansion de Jacobi-Anger . Vous pouvez tronquer la série infinie à environ raison de la décroissance super-exponentielle de la fonction de Besselpour. J'espère que cela t'aides.F, G F, g péchéx / x → rect ( k ) cos( λ cosx ) λ | J n ( x ) | n > | x |λ | Jn( x ) | n > | x |
Edit : En fait, vous devez utiliser les représentations de la série de Fourier ici au lieu des transformations. Le chemin de transformation conduit à dériver la représentation asymptotique que vous avez déjà (il s’agit juste de ). Le théorème de Plancherel ci-dessus fonctionne également pour les séries de Fourier avec un domaine d'intégration de sur la dernière intégrale.πJ0( λ ) [ 0 , 2 π]
la source
Asymptotiques
En sortie, vous obtenez un joli sinus qui coïncide avec celui que vous avez dérivé ci-dessus.
Si vous voulez trouver les coefficients suivants, un morceau de code un peu plus sophistiqué si nécessaire. L'idée du code ci-dessous est de prendre plusieurs valeurs limites hautes et de "moyenne" leurs résultats.
Explication
Exemple simple
Ton problème
la source
La méthode d'Ooura pour les intégrales de sinus de Fourier fonctionne ici, voir:
Ooura, Takuya et Masatake Mori, Une formule exponentielle double robuste pour les intégrales de type Fourier. Journal des mathématiques computationnelles et appliquées 112.1-2 (1999): 229-241.
J'ai écrit une implémentation de cet algorithme mais je n'ai jamais travaillé pour l'obtenir rapidement (par exemple, en mettant en cache les nœuds / poids), mais néanmoins, j'obtiens des résultats cohérents pour tout ce qui dépasse la précision flottante:
Voici le code:
la source