Calcul d’intégrale fractionnaire Python
Bonjour à tous
Voici mon problème, j'aimerais calculer des intégrales du type $$
\int_{0}^{1}\int_{0}^{1}\int_{0}^{1}dxdydz\vert x-y\vert ^{H-1} \vert y-z\vert ^{H-1}\vert z-x\vert ^{H-1}
$$ à l'aide de Python, je connais la valeur exacte de celle-ci qui s'exprime avec la fonction Beta (l'objectif étant de pouvoir changer les bornes avec des $t_1,t_2,t_3$ différents où il n'y a pas forcément de formule explicite).
Cependant en utilisant la fonctions "scipy.integrate.tplquad", il y a déjà le problème d'avoir "0.0 cannot be raised to a négative power", j'ai donc rajouté des epsilon très petits dans la fonction elle même, mais Python me dit que l’intégrale est probablement divergente ou converge lentement.
J'ai donc codé bêtement les sommes de Riemann sans aucune optimisation, là je peux avoir un résultat mais il est extrêmement sensible à la valeur d'epsilon dans la fonction et dans les bornes car commencer à partir de 0 renvoie aussi des erreurs.
Merci d'avance pour votre aide.
Voici mon problème, j'aimerais calculer des intégrales du type $$
\int_{0}^{1}\int_{0}^{1}\int_{0}^{1}dxdydz\vert x-y\vert ^{H-1} \vert y-z\vert ^{H-1}\vert z-x\vert ^{H-1}
$$ à l'aide de Python, je connais la valeur exacte de celle-ci qui s'exprime avec la fonction Beta (l'objectif étant de pouvoir changer les bornes avec des $t_1,t_2,t_3$ différents où il n'y a pas forcément de formule explicite).
Cependant en utilisant la fonctions "scipy.integrate.tplquad", il y a déjà le problème d'avoir "0.0 cannot be raised to a négative power", j'ai donc rajouté des epsilon très petits dans la fonction elle même, mais Python me dit que l’intégrale est probablement divergente ou converge lentement.
J'ai donc codé bêtement les sommes de Riemann sans aucune optimisation, là je peux avoir un résultat mais il est extrêmement sensible à la valeur d'epsilon dans la fonction et dans les bornes car commencer à partir de 0 renvoie aussi des erreurs.
Merci d'avance pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quelque chose comme ça ?
Cordialement,
Rescassol
Tu pourrais donner les valeurs attendues, ou alors la formule avec la fonction Beta ? Pour $H \in [\frac{1}{2}; 1]$.
Cordialement,
Rescassol
Alors on trouve exactement $\frac{2}{H(3H-1)}Beta(H,H)$ soit avec H=0.75 environ 3.69. Ce que je n'arrive pas à retrouver avec Python sans passer par cette formule.
Un peu de MonteCarlo:
Cordialement,
Rescassol
C'est parce que la fonction à intégrer n'est pas bornée sur le domaine d'intégration.
Regarde ce qu'il se passe si au moins deux des trois $x,y,z$ sont égaux et $H<1$.
Cordialement,
Rescassol