MATLAB - Integración

La integración se ocupa de dos tipos de problemas esencialmente diferentes.

  • En el primer tipo, se da la derivada de una función y queremos encontrar la función. Por tanto, básicamente invertimos el proceso de diferenciación. Este proceso inverso se conoce como anti-diferenciación, o encontrar la función primitiva, o encontrar unaindefinite integral.

  • El segundo tipo de problemas implica sumar un número muy grande de cantidades muy pequeñas y luego tomar un límite cuando el tamaño de las cantidades se acerca a cero, mientras que el número de términos tiende a infinito. Este proceso conduce a la definición deldefinite integral.

Las integrales definidas se utilizan para encontrar área, volumen, centro de gravedad, momento de inercia, trabajo realizado por una fuerza y ​​en muchas otras aplicaciones.

Encontrar integrales indefinidas con MATLAB

Por definición, si la derivada de una función f (x) es f '(x), entonces decimos que una integral indefinida de f' (x) con respecto a x es f (x). Por ejemplo, dado que la derivada (con respecto a x) de x 2 es 2x, podemos decir que una integral indefinida de 2x es x 2 .

En símbolos -

f'(x2) = 2x, por lo tanto,

∫ 2xdx = x2.

La integral indefinida no es única, porque la derivada de x 2 + c, para cualquier valor de una constante c, también será 2x.

Esto se expresa en símbolos como:

∫ 2xdx = x2 + c.

Donde, c se llama una 'constante arbitraria'.

MATLAB proporciona una intcomando para calcular la integral de una expresión. Para derivar una expresión para la integral indefinida de una función, escribimos:

int(f);

Por ejemplo, de nuestro ejemplo anterior:

syms x 
int(2*x)

MATLAB ejecuta la declaración anterior y devuelve el siguiente resultado:

ans =
   x^2

Ejemplo 1

En este ejemplo, busquemos la integral de algunas expresiones de uso común. Cree un archivo de script y escriba el siguiente código en él:

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)

Cuando ejecuta el archivo, muestra el siguiente resultado:

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)

Ejemplo 2

Cree un archivo de script y escriba el siguiente código en él:

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))

Tenga en cuenta que el pretty La función devuelve una expresión en un formato más legible.

Cuando ejecuta el archivo, muestra el siguiente resultado:

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

Encontrar una integral definida usando MATLAB

Por definición, la integral definida es básicamente el límite de una suma. Usamos integrales definidas para encontrar áreas como el área entre una curva y el eje xy el área entre dos curvas. Las integrales definidas también se pueden usar en otras situaciones, donde la cantidad requerida se puede expresar como el límite de una suma.

los int La función se puede utilizar para una integración definida pasando los límites sobre los que desea calcular la integral.

Calcular

nosotros escribimos,

int(x, a, b)

Por ejemplo, para calcular el valor de escribimos:

int(x, 4, 9)

MATLAB ejecuta la declaración anterior y devuelve el siguiente resultado:

ans =
   65/2

A continuación se muestra el equivalente en octava del cálculo anterior:

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 ejecuta el código y devuelve el siguiente resultado:

Area: 

   32.500

Se puede dar una solución alternativa usando la función quad () proporcionada por Octave de la siguiente manera:

pkg load symbolic
symbols

f = inline("x");
[a, ierror, nfneval] = quad(f, 4, 9);

display('Area: '), disp(double(a));

Octave ejecuta el código y devuelve el siguiente resultado:

Area: 
   32.500

Ejemplo 1

Calculemos el área encerrada entre el eje x, y la curva y = x 3 −2x + 5 y las ordenadas x = 1 y x = 2.

El área requerida está dada por:

Cree un archivo de script y escriba el siguiente código:

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

Cuando ejecuta el archivo, muestra el siguiente resultado:

a =
23/4
Area: 
   5.7500

A continuación se muestra el equivalente en octava del cálculo anterior:

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 ejecuta el código y devuelve el siguiente resultado:

Area: 

   5.7500

Se puede dar una solución alternativa usando la función quad () proporcionada por Octave de la siguiente manera:

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 ejecuta el código y devuelve el siguiente resultado:

Area: 
   5.7500

Ejemplo 2

Halle el área debajo de la curva: f (x) = x 2 cos (x) para −4 ≤ x ≤ 9.

Cree un archivo de script y escriba el siguiente código:

f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));

Cuando ejecuta el archivo, MATLAB traza el gráfico:

La salida se da a continuación:

a = 
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
 
Area: 
   0.3326

A continuación se muestra el equivalente en octava del cálculo anterior:

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));