J'ai entendu de façon anecdotique que lorsque l'on essaie de faire numériquement une intégrale de la forme
avec lisse et bien comporté (par exemple pas lui-même très oscillatoire, non singulier, etc.), alors il aidera la précision à le réécrire comme
et effectuer d'abord l'intégrale intérieure numériquement. Je ne vois aucune raison pour que je m'attende à ce que cela fonctionne, mais là encore, la précision d'une méthode numérique est rarement évidente.
Bien sûr, je sais que la meilleure façon de le faire est d'utiliser une méthode optimisée pour les intégrales oscillantes comme celle-ci, mais par curiosité, supposons que je me limite à utiliser une règle de quadrature. Quelqu'un peut-il confirmer ou réfuter que la réalisation de cette transformation tend à améliorer la précision de l'intégrale? Et / ou me pointer vers une source qui l'explique?
la source
Réponses:
Je ne pense pas que cela fasse une différence. Vous devez choisir une quadrature suffisamment élevée pour l'intégrale sur afin qu'elle soit égale à la fonction de Bessel J 0 . J'ai choisi l'ordre 20 dans l'exemple ci-dessous, mais vous devez toujours faire une convergence en ce qui concerne la fonction exacte et l'intervalle sur lequel vous intégrez. Ensuite, j'ai fait la convergence avec n , l'ordre de la quadrature gaussienne de l'intégrale sur x . J'ai choisi f ( x ) = e - x x 2 et j'utilise le domaine [ 0 , x max ] , vous pouvez changerθ J0 n x f(x)=e−xx2 [0,xmax] xmax au dessous de. J'ai eu:
Comme vous pouvez le voir, pour deux intégrales sont entièrement convergées vers 12 chiffres significatifs.n=9
Voici le code:
Vous pouvez jouer avec cela vous-même, simplement changer[0,∞]
xmax
, peut-être pourriez-vous avoir besoin de diviser l'intervalle en éléments et d'intégrer élément par élément. Vous pouvez également modifier la fonction . Assurez-vous que vous faites toujours converger l'intégrale , c'est-à-dire commencez par un ordre faible et continuez à l'augmenter jusqu'à ce que les résultats imprimés cessent de changer.f(x)
rewritten = gauss(inner, 0, pi, 20) / pi
la source