integral
Évalue numériquement une intégrale (quadrature adaptative)
📝Syntaxe
q = integral(fun, a, b)
q = integral(fun, a, b, nom, valeur)
📥Arguments d'entrée
Paramètre Description
fun Fonction à intégrer : handle de fonction.
a Borne inférieure d'intégration : scalaire réel (fini ou infini) ou scalaire complexe fini.
b Borne supérieure d'intégration : scalaire réel (fini ou infini) ou scalaire complexe fini.
nom, valeur Une ou plusieurs paires nom/valeur : 'RelativeTolerance', 'AbsoluteTolerance', 'ArrayValued', 'Vectorized', 'Waypoints'.
📤Arguments de sortie
Paramètre Description
q Valeur de l'intégrale.
📄Description

q = integral(fun, a, b) intègre numériquement la fonction fun de a à b par une quadrature de Gauss-Kronrod adaptative globale.

Par défaut, fun est supposée vectorisée : elle doit accepter un vecteur d'abscisses et renvoyer un vecteur de même taille.

Les bornes a et b peuvent être infinies (-Inf et/ou Inf) ; un changement de variable ramène l'intervalle à un intervalle fini.

Si a, b ou un point de passage est complexe, integral calcule l'intégrale le long des segments reliant a, les points de passage dans l'ordre donné, puis b. Les bornes et points de passage complexes doivent être finis.

Les paires nom/valeur suivantes sont prises en charge :

RelativeTolerance (ou RelTol) : tolérance d'erreur relative (défaut 1e-6).

AbsoluteTolerance (ou AbsTol) : tolérance d'erreur absolue (défaut 1e-10).

integral cherche à satisfaire abs(q - Q) <= max(AbsoluteTolerance, RelativeTolerance * abs(q)) où Q est la valeur exacte.

ArrayValued : si true, fun renvoie un tableau et est évaluée en une abscisse scalaire (défaut false).

Vectorized : si false, fun est écrite pour des entrées scalaires : elle accepte un x scalaire et renvoie un scalaire, et integral l'évalue point par point (défaut true, plus rapide). Ignorée si ArrayValued vaut true.

Waypoints : vecteur de points réels ou complexes finis utilisés dans le maillage initial. Avec des bornes et des points de passage réels, l'intervalle est découpé aux points de passage situés à l'intérieur (leur ordre est sans importance) : ils servent à signaler les discontinuités ou les extrema locaux de la fonction. N'utilisez pas de points de passage pour indiquer des singularités ; découpez plutôt l'intervalle. Des points de passage complexes définissent un contour linéaire par morceaux.

💡Exemples
q = integral(@(x) x.^2, 0, 1)
q = integral(@(x) exp(-x.^2), 0, Inf)
q = integral(@(x) [1; 1] .* x, 0, 1, 'ArrayValued', true)
Singularité en la borne inférieure : tolérances plus strictes
format long
q1 = integral(@log, 0, 1)
q2 = integral(@log, 0, 1, 'AbsoluteTolerance', 1e-12, 'RelativeTolerance', 0)
format short
Intégrale d'une fonction écrite pour des entrées scalaires
fun = @(x) 2*x - x^2;
q = integral(fun, 0, 1, 'Vectorized', false)
Intégrale sur un contour complexe défini par des points de passage (chemin fermé autour du pôle z = 1/2)
fun = @(z) 1 ./ (2*z - 1);
q = integral(fun, 0, 0, 'Waypoints', [1+1i, 1-1i])
🔗Voir aussi
integral2integralInterpolanttrapz
🕔Historique des versions
Version Description
2.0.0 version initiale
2.0.0 Option 'Waypoints' et bornes complexes (intégrale sur un contour) ajoutées.
2.0.0 Option 'Vectorized' ajoutée : intégration de fonctions écrites pour des entrées scalaires.
2.0.0 Noms 'AbsoluteTolerance' et 'RelativeTolerance' ajoutés ('AbsTol' et 'RelTol' restent acceptés).
Modifier cette page sur GitHub