MATLAB - Intégration

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 fondamentalement le processus de différenciation. Ce processus inverse est appelé anti-différenciation, ou trouver la fonction primitive, ou trouver unindefinite integral.

  • Le second type de problèmes consiste à additionner un très grand nombre de très petites quantités puis à prendre une limite lorsque la taille des quantités s'approche de zéro, tandis que le nombre de termes tend vers l'infini. Ce processus conduit à la définition dudefinite integral.

Des intégrales définies sont utilisées pour trouver la zone, le volume, le centre de gravité, le moment d'inertie, le travail effectué par une force et dans de nombreuses autres applications.

Recherche d'une intégrale indéfinie à l'aide de MATLAB

Par définition, si la dérivée d'une fonction f (x) est f '(x), alors on dit 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 x 2 est 2x, nous pouvons dire qu'une intégrale indéfinie de 2x est x 2 .

En symboles -

f'(x2) = 2x, par conséquent,

∫ 2xdx = x2.

L'intégrale indéfinie n'est pas unique, car la dérivée de x 2 + c, pour toute valeur d'une constante c, sera également 2x.

Ceci est exprimé en symboles comme -

∫ 2xdx = x2 + c.

Où, c est appelé une «constante arbitraire».

MATLAB fournit un intcommande 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, à partir de notre exemple précédent -

syms x 
int(2*x)

MATLAB exécute l'instruction ci-dessus et renvoie le résultat suivant -

ans =
   x^2

Exemple 1

Dans cet exemple, trouvons l'intégrale de certaines expressions couramment utilisées. Créez un fichier de script et tapez 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 de script et tapez 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 le pretty La fonction renvoie 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

Trouver une intégrale définie à l'aide de MATLAB

Par définition, l'intégrale définie est fondamentalement la limite d'une somme. Nous utilisons des intégrales définies pour trouver des zones telles que la zone entre une courbe et l'axe des x et la zone entre deux courbes. Des 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.

le int La fonction peut être utilisée pour une intégration définie en passant les limites sur lesquelles vous souhaitez calculer l'intégrale.

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 renvoie le résultat suivant -

ans =
   65/2

Voici l'équivalent d'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('Area: '), disp(double(a));

Octave exécute le code et renvoie le résultat suivant -

Area: 

   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('Area: '), disp(double(a));

Octave exécute le code et renvoie le résultat suivant -

Area: 
   32.500

Exemple 1

Calculons l'aire comprise entre l'axe des x, et la courbe y = x 3 −2x + 5 et les ordonnées x = 1 et x = 2.

La surface requise est donnée par -

Créez un fichier de script et tapez le code suivant -

f = x^3 - 2*x +5;
a = int(f, 1, 2)
display('Area: '), disp(double(a));

Lorsque vous exécutez le fichier, il affiche le résultat suivant -

a =
23/4
Area: 
   5.7500

Voici l'équivalent d'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('Area: '), disp(double(a));

Octave exécute le code et renvoie le résultat suivant -

Area: 

   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('Area: '), disp(double(a));

Octave exécute le code et renvoie le résultat suivant -

Area: 
   5.7500

Exemple 2

Trouvez l'aire sous la courbe: f (x) = x 2 cos (x) pour −4 ≤ x ≤ 9.

Créez un fichier de script et écrivez le code suivant -

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), 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)
 
Area: 
   0.3326

Voici l'équivalent d'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('Area: '), disp(double(a));