Maîtriser l'intégration MATLAB : des primitives aux sommes de Riemann
L'intégration traite de deux types de problèmes essentiellement différents.
Dans le premier type, la dérivée d'une fonction est donnée et nous voulons trouver la fonction. Par conséquent, nous inversons essentiellement le processus de différentiation. Ce processus inverse est connu sous le nom d'anti-différentiation, ou recherche de la fonction primitive, ou recherche d'une intégrale indéfinie.
Le second type de problèmes implique l'addition d'un très grand nombre de quantités très petites et puis la prise d'une limite lorsque la taille des quantités approche zéro, tandis que le nombre de termes tend vers l'infini. Ce processus conduit à la définition de l'intégrale définie.
Les intégrales définies sont utilisées pour trouver l'aire, le volume, le centre de gravité, le moment d'inertie, le travail effectué par une force, et dans de nombreuses autres applications.
Recherche d'intégrale indéfinie avec MATLAB
Par définition, si la dérivée d'une fonction f(x) est f'(x), alors nous disons qu'une intégrale indéfinie de f'(x) par rapport à x est f(x). Par exemple, puisque la dérivée (par rapport à x) de x2 est 2x, nous pouvons dire qu'une intégrale indéfinie de 2x est x2.
En symboles :
f'(x2) = 2x, donc,
∫ 2xdx = x2.
L'intégrale indéfinie n'est pas unique, car la dérivée de x2 + c, pour n'importe quelle valeur d'une constante c, sera aussi 2x.
Cela s'exprime en symboles comme :
∫ 2xdx = x2 + c.
Où, c est appelée une 'constante arbitraire'.
MATLAB fournit une commande int pour calculer l'intégrale d'une expression. Pour dériver une expression pour l'intégrale indéfinie d'une fonction, nous écrivons :
int(f);
Par exemple, de notre exemple précédent :
syms x int(2*x)
MATLAB exécute l'instruction ci-dessus et retourne le résultat suivant :
ans = x^2
Exemple 1
Dans cet exemple, trouvons l'intégrale de quelques expressions couramment utilisées. Créez un fichier script et saisissez le code suivant :
syms x n int(sym(x^n)) f = 'sin(n*t)' int(sym(f)) syms a t int(a*cos(pi*t)) int(a^x)
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
ans = piecewise([n == -1, log(x)], [n ~= -1, x^(n + 1)/(n + 1)]) f = sin(n*t) ans = -cos(n*t)/n ans = (a*sin(pi*t))/pi ans = a^x/log(a)
Exemple 2
Créez un fichier script et saisissez le code suivant :
syms x n int(cos(x)) int(exp(x)) int(log(x)) int(x^-1) int(x^5*cos(5*x)) pretty(int(x^5*cos(5*x))) int(x^-5) int(sec(x)^2) pretty(int(1 - 10*x + 9 * x^2)) int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2) pretty(int((3 + 5*x -6*x^2 - 7*x^3)/2*x^2))
Notez que la fonction pretty retourne une expression dans un format plus lisible.
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
ans = sin(x) ans = exp(x) ans = x*(log(x) - 1) ans = log(x) ans = (24*cos(5*x))/3125 + (24*x*sin(5*x))/625 - (12*x^2*cos(5*x))/125 + (x^4*cos(5*x))/5 - (4*x^3*sin(5*x))/25 + (x^5*sin(5*x))/5 2 4 24 cos(5 x) 24 x sin(5 x) 12 x cos(5 x) x cos(5 x) ----------- + ------------- - -------------- + ------------ 3125 625 125 5 3 5 4 x sin(5 x) x sin(5 x) ------------- + ----------- 25 5 ans = -1/(4*x^4) ans = tan(x) 2 x (3 x - 5 x + 1) ans = - (7*x^6)/12 - (3*x^5)/5 + (5*x^4)/8 + x^3/2 6 5 4 3 7 x 3 x 5 x x - ---- - ---- + ---- + -- 12 5 8 2
Recherche d'intégrale définie avec MATLAB
Par définition, l'intégrale définie est essentiellement la limite d'une somme. Nous utilisons les intégrales définies pour trouver des aires telles que l'aire entre une courbe et l'axe des x et l'aire entre deux courbes. Les intégrales définies peuvent également être utilisées dans d'autres situations, où la quantité requise peut être exprimée comme la limite d'une somme.
La fonction int peut être utilisée pour l'intégration définie en passant les limites sur lesquelles vous voulez calculer l'intégrale.
Pour calculer :
nous écrivons :
int(x, a, b)
Par exemple, pour calculer la valeur de
nous écrivons :
int(x, 4, 9)
MATLAB exécute l'instruction ci-dessus et retourne le résultat suivant :
ans = 65/2
Voici l'équivalent Octave du calcul ci-dessus :
pkg load symbolic symbols x = sym("x"); f = x; c = [1, 0]; integral = polyint(c); a = polyval(integral, 9) - polyval(integral, 4); display('Aire: '), disp(double(a));
Octave exécute le code et retourne le résultat suivant :
Aire: 32.500
Une solution alternative peut être donnée en utilisant la fonction quad() fournie par Octave comme suit :
pkg load symbolic symbols f = inline("x"); [a, ierror, nfneval] = quad(f, 4, 9); display('Aire: '), disp(double(a));
Octave exécute le code et retourne le résultat suivant :
Aire: 32.500
Exemple 1
Calculons l'aire comprise entre l'axe des x, la courbe y = x3−2x+5 et les ordonnées x = 1 et x = 2.
L'aire requise est donnée par :
Créez un fichier script et saisissez le code suivant :
f = x^3 - 2*x +5; a = int(f, 1, 2) display('Aire: '), disp(double(a));
Lorsque vous exécutez le fichier, il affiche le résultat suivant :
a = 23/4 Aire: 5.7500
Voici l'équivalent Octave du calcul ci-dessus :
pkg load symbolic symbols x = sym("x"); f = x^3 - 2*x +5; c = [1, 0, -2, 5]; integral = polyint(c); a = polyval(integral, 2) - polyval(integral, 1); display('Aire: '), disp(double(a));
Octave exécute le code et retourne le résultat suivant :
Aire: 5.7500
Une solution alternative peut être donnée en utilisant la fonction quad() fournie par Octave comme suit :
pkg load symbolic symbols x = sym("x"); f = inline("x^3 - 2*x +5"); [a, ierror, nfneval] = quad(f, 1, 2); display('Aire: '), disp(double(a));
Octave exécute le code et retourne le résultat suivant :
Aire: 5.7500
Exemple 2
Trouvons l'aire sous la courbe : f(x) = x2 cos(x) pour −4 ≤ x ≤ 9.
Créez un fichier script et écrivez le code suivant :
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Aire: '), disp(double(a));
Lorsque vous exécutez le fichier, MATLAB trace le graphique :
La sortie est donnée ci-dessous :
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Aire: 0.3326
Voici l'équivalent Octave du calcul ci-dessus :
pkg load symbolic symbols x = sym("x"); f = inline("x^2*cos(x)"); ezplot(f, [-4,9]) print -deps graph.eps [a, ierror, nfneval] = quad(f, -4, 9); display('Aire: '), disp(double(a));
MATLAB
- MATLAB : Aperçu complet de l'environnement de calcul numérique de référence
- Maîtriser les bases de MATLAB : Syntaxe et commandes essentielles
- Comprendre les variables dans MATLAB : Bases et exemples
- Commandes MATLAB essentielles pour un calcul efficace
- Types de données MATLAB : Guide complet
- Maîtriser les opérateurs MATLAB : Arithmétiques, Logiques, Bitwise et Ensemblistes
- Maîtriser les vecteurs MATLAB : Bases des vecteurs ligne et colonne
- Maîtriser les matrices MATLAB : Création, indexation et manipulation
- MATLAB : Maîtriser les tableaux multidimensionnels et spéciaux