Sie sind auf Seite 1von 15

Cálculo II y Ecuaciones Diferenciales.

Laboratorio 03. Integración en varias variables con Matlab

1. Introducción.
En esta práctica trabajaremos con conceptos relacionados con la integración de funciones de
variable real, más concretamente:
Integrales indefinidas.

Integrales definidas.

Integración numérica.

2. Integral definida e indefinida.


2.1. Comando int
El comando de integración int se puede utilizar con diferentes argumentos según se trate
de integración indefinida, definida o de la obtención de una función integral. Para utilizar dicho
comando, previamente tenemos que declarar como simbólicas la/s variable/s que vayamos a
utilizar. Las diferentes opciones de este comando son:
Z
int(f) intenta obtener f (x) x.. Considera como variable de integración la variable simbóli-
ca que aparece en la expresión de f ; si hay más de una, la variable de integración por defecto
es x.
Z
int(f,s) intenta obtener f (s) s..
Z b
int(f,s,a,b), donde a y b son valores numéricos, intenta obtener f (s) s..
a

int (f,s,a,x), donde a es unZvalor numérico y x es una variable simbólica, intenta obtener
x
la función integral F (x) = f (s) s..
a
Z x
int (f,s,y,x), donde x e y son variables simbólicas, intenta obtener F (x, y) = f (s) s..
y

Donde,
f representa una expresión simbólica (escalar o matricial) de la/s variable/s simbólicas
definidas.

f se puede introducir directamente en el comando int, o haber sido definida previamente.

Si f es un valor numérico, por defecto se integra respecto de la variable independiente x.

1
Z
Ejemplo 1 Calculemos la integral indefinida x. En Matlab:
1 + x2 .

1
>> syms x
>> f=1/(1+xˆ2)

f =

1/(xˆ2 + 1)

>> F=int(f)

F =

atan(x)

También podemos obtener el valor de la integral indefinida introduciendo:

>> F=int(1/(1+xˆ2))

F =

atan(x)

Podemos representar gráficamente la función f y su primitiva F :

>> ezplot(f)
>> hold on
>> ezplot(F)

obteniendo la siguiente salida gráfica

Z x
1
Ejemplo 2 Calculemos ahora la función integral s:
0 1 + s2 .

2
>> clear all
>> syms s
>> syms x
>> F=int(1/(1+sˆ2),0,x)

F =

atan(x)

Z 1
1
Ejemplo 3 Calculemos la integral definida A = x empleando Matlab:
−1 1 + x2 .

>> clear all


>> syms x
>> int(1/(1+xˆ2),-1,1)

ans =

pi/2

Ejemplo 4 Un ejercicio interesante puede ser comprobar la regla de Barrow:

>> clear all


>> syms x
>> f=1/(1+xˆ2);
>> clear all
>> syms x
>> f=1/(1+xˆ2);
>> F=int(f);
>> int(f,-1,1)

ans =

pi/2

>> subs(F,1)-subs(F,-1)

ans =

1.5708

2.2. Respuesta de MATLAB si no existe primitiva de forma explı́cita


La integral o antiderivada puede no tener una forma explı́cita o puede existir pero MATLAB
no puede encontrarla. En estos casos devuelve el comando sin evaluar, o lo deja en función de
las integrales que no es capaz de calcular.

3
Z p
Ejemplo 5 Tratemos de calcular 1 + x4 x.:

>> clear all


>> syms x
>> int(sqrt(1+xˆ4))
Warning: Explicit integral could not be found.

ans =

int((xˆ4 + 1)ˆ(1/2), x)

Observamos que Matlab no es capaz de calcular una primitiva de la función.


sen(x)
Z
Ejemplo 6 Intentemos calcular ahora x:
x .

>> clear all


>> syms x
>> F=int(sin(x)/x)

F =

sinint(x)

La solución es la función sinint que MATLAB tiene asociada a la función integral F (x) =
Z x
sen(s)
s .s. Podemos comprobar que efectivamente la función sinint es una primitiva:
0

>> diff(F)

ans =

sin(x)/x

Podemos graficar el comportamiento de la función sinint:

>> ezplot(F)

4
2.3. Cálculo de áreas entre dos curvas
Veamos como calcular el área comprendida entre dos curvas con Matlab a través de una serie
de ejemplos.

Ejemplo 7 Calculemos el área encerrada por la gráfica de la función f (x) = x3 − 4x y el eje x


en el intervalo [0, 2]. Para lo cual, comencemos graficando la función en el intervalo pedido:

>> clear all


>> syms x
>> f=xˆ3-4*x;
>> % Grafiquemos la funcion en el intervalo [0,2]
>> ezplot(f,[0,2])

Obtenemos la siguiente salida gráfica:

Observamos que la función toma valores negativos en el intervalo pedido, por lo que para
calcular el área, debemos integrar el valor absoluto de la función:

>> int(abs(f),0,2)

ans =

Ejemplo 8 Calculemos ahora el área entre la curva y = √1x , el eje x y las rectas x = 1 y x = 4.
Empecemos graficando la función entre los puntos x = 1 y x = 4:

>> clear all


>> syms x
>> f=1/sqrt(x);
>> % Grafiquemos la funcion en el intervalo [1,4]
>> ezplot(f,1,4)
Obtenemos la siguiente salida gráfica:

5
Observamos que la función toma valores positivos en el intervalo [1, 4] por lo que, para cal-
cular el valor de la integral:

>> int(f,1,4)

ans =

Ejemplo 9 Calculemos el área encerrada por las curvas f (x) = x2 − x y g(x) = x3 en el inter-
valo [0, 1]. Comencemos representando gráficamente las dos curvas:

>> clear all


>> syms x
>> f=xˆ2-x;
>> g=xˆ3;
>> ezplot(f,[0,1])
>> hold on
>> ezplot(g,[0,1])

Obtenemos la siguiente salida gráfica:

Observamos que la función x3 se encuentra por encima de la función x2 − x, por lo tanto,


para calcular el área:

6
>> int(g-f,0,1)

ans =

5/12

3. Integración numérica
3.1. La orden rsums
La orden rsums(f,a,b) aproxima la integral definida de la función f en el intervalo [a, b]
(toma el intervalo [0, 1] si no se especifican los extremos) mediante la regla del punto medio. Por
ejemplo:

>> syms x
>> rsums(xˆ2)

nos da como resultado la siguiente salida gráfica:

Moviendo con el ratón el botón que aparece bajo la gráfica podemos modificar el número de
elementos de la partición (por defecto toma una partición con 10 elementos), observamos como
en la parte superior de la gráfica varı́a la aproximación según la partición elegida.

Ejemplo 10 Otros ejemplos pueden ser:

>> rsums(log(x+1))
>> rsums(cos(x),0,pi)

3.2. Regla del trapecio compuesta. Comando trapz


Matlab tiene un comando que calcula el valor aproximado de una integral definida mediante
la Regla del trapecio compuesta.

7
La forma general de esta orden es trapz(x,y) y calcula una aproximación de la integral de
y = f (x) con respecto a x; es decir,
Z b
∆x
f (x) x. ' [y0 + 2y1 + . . . + 2yn−1 + yn ]
a 2

siendo n + 1 el número de puntos de la partición {xk }nk=0 e yk = f (xk ). La integral se aproxima


por el área de n trapecios si la función es positiva.

Debemos tener en cuenta que los dos argumentos de entrada de la orden trapz son vectores
de la misma longitud.

Z 4
Ejemplo 11 Para calcular (x2 + 3) x., escribimos:
0

>> x=[0:0.25:4];
>> y=x.ˆ2+3;
>> trapz(x,y)

ans =

33.3750

Donde la partición que hemos tomado se corresponde a 17 elementos (16 subintervalos).

3.3. Regla de Simpson. Comando quad


Mediante la Regla de Simpson la integral se aproxima por el área (si la función es posi-
tiva) comprendida entre las parábolas inscritas en la curva y determinadas por cada 3 puntos
de discretización consecutivos. Se trata de una aproximación cuadrática y, por tanto, más precisa.
Rb
El comando quad proporciona una aproximación de la integral de a f (x) x. con la fórmula
de Simpson compuesta:
Z b
∆x
I= f (x) x. ' [y0 + 4y1 + 2y2 + 4y3 + 2yn−2 + 4yn−1 + yn ]
a 3

siendo n par.

Este comando presenta el siguiente formato:

I = quad(0 f uncion0 , a, b)

donde la función f (x) se encuentra definida en un fichero “funcion.m” creado por el usuario o
ya definido por MATLAB, este es el caso de la funciones “sin”, “cos”, “exp”,... En todo caso, f
debe admitir vectores como argumentos de entrada.

8
Por defecto, este comando proporciona una aproximación con un error 1.0e-3. Esta precisión
puede ser mejorada introduciendo como nuevo argumento un parámetro de tolerancia tol, de la
siguiente forma:

[I, m] = quad(0 f uncion0 , a, b, tol)

Además tiene un segundo argumento de salida m que informa del número de puntos de la par-
tición utilizada.

Para utilizar este comando es necesario conocer la expresión de la función, a diferencia del
comando trapz.

2
Ejemplo 12 Aproximemos la integral de f (x) = e−x en el intervalo [0, 1], para lo cual será
necesario crear un fichero fichero f1.m que contenga la expresión de dicha función. El conte-
nido del fichero es el siguiente:

function y=f1(x)
y=exp(-x.ˆ2)

Aquı́, “f1” es el nombre de la función (y del fichero). Éste es el nombre que se debe de faci-
litar al comando quad. El argumento de entrada x, es el vector de la variable independiente.
El argumento de salida y será un vector que contenga las evaluaciones de f1=exp(-x.ˆ2) en
cada componente de x (recuerda que el punto “.” es necesario en las operaciones con vectores
componente a componente). Para obtener el valor de la integral:

>> quad(’f1’,0,1)

ans =

0.7468

Otra opción es definir f 1 como una función anónima:

>>f1=@(x) exp(-x.ˆ2);quad(f1,0,1)

ans =

0.7468

4. Integrales dobles
4.1. Integración exacta
El comando int permite calcular integrales dobles mediante integración iterada.

9
Ejemplo: Integral sobre una región rectangular

Podemos calcular la integral Z 2 Z 2


(1 − 6x2 y) x. y.,
−1 0
usando los comandos
>> syms x y
>> f = 1-6*xˆ2*y
>> f1 = int(f,x,0,2)
>> f2 = int(f1,y,-1,2)
El código anterior es equivalente a
>> f2 = int(int(f,x,0,2),y,-1,2)

Como la región de integración es un rectángulo, también podemos intercambiar el orden de


integración:
>> f2 = int(int(f,y,-1,2),x,0,2)

Ejemplo: Integral sobre una región no rectangular

Calculemos ahora la integral de f (x, y) = x sen(y) sobre la región {(x, y) ∈ R2 : 0 ≤ x ≤


π, 0 ≤ y ≤ x2 }. El comando area nos permite representar gráficamente el recinto de integración:

>> x=0:0.1:pi; y=x.ˆ2; area(x,y)

Ahora, la integral se calcula con


>> syms x y
>> f = x*sin(y)
>> f1 = int(f,y,0,xˆ2)
>> f2 = int(f1,x,0,pi)
>> I = double(f2)
También se podrı́a haber tecleado simplemente
>> I = double(int(int(x*sin(y),y,0,xˆ2),x,0,pi))

Ejercicio 1:

Pretendemos hallar el valor de la integral


Z 3 Z √9−x2
2 +y 2
√ ex y. x..
−3 − 9−x2

Intenta usar Matlab para calcular esta integral. ¿Qué es lo que ocurre?

Haz el cambio a coordenadas polares y usa Matlab para calcular el valor de la integral
resultante.

10
4.2. Integración numérica
La función dblquad permite aproximar mediante la regla de Simpson la integral de una
función de dos variables reales sobre una región rectangular. Introduciremos la función de interés
como una “función anónima”. Una función anónima de dos variables serı́a:

>> f = @(x,y) x.ˆ2+y.ˆ2

donde hemos usado el operador .∧ por si x e y son vectores. Ahora, la forma de usar dblquad es

>> y = dblquad(f,a,b,c,d,tol)

donde

f es una función anónima.

[a,b]×[c,d] es el rectángulo de integración.

tol es un argumento opcional que indica la tolerancia (por defecto, 1e-6).

Ejemplo:

Calculamos (exactamente) la integral


Z 1 Z 3
x2 y + 2y 2 x. y..
−1 1

>> syms x y
>> I = int(int(xˆ2*y+2*yˆ2,x,1,3),y,-1,1)

Ahora calculamos una aproximación con dblquad:

>> f = @(x,y) x.ˆ2.*y+2*y.ˆ2


>> I2 = dblquad(f,1,3,-1,1)

Observamos que el resultado es el mismo, ¿por qué?

Ejercicio 2:

Calcula con el comando int de Matlab el valor exacto de la integral


Z 3Z 2
x ln (xy) y. x..
2 1

Calcula con dblquad una aproximación del valor exacto usando distintas tolerancias. Com-
para los resultados obtenidos con el valor exacto.

11
Soluciones de los ejercicios anteriores

Solución del Ejercicio 1:

Intenta usar Matlab para calcular la integral


Z 3 Z √9−x2
2 +y 2
√ ex y. x..
−3 − 9−x2

¿Que es lo que ocurre?

>> syms x y
>> I2 = double(int(int(exp(xˆ2+yˆ2),y,-sqrt(9-xˆ2),sqrt(9-xˆ2)),x,-3,3))

Matlab no puede darnos un resultado numérico.

Haz el cambio a coordenadas polares y usa Matlab para calcular el valor de la integral
resultante.
Haciendo el cambio a coordenadas polares obtenemos
Z 2π Z 3
2
er r dr dθ.
0 0

Para resolverla con Matlab tecleamos

>> syms r t
>> I = double(int(int(exp(rˆ2)*r,r,0,3),t,0,2*pi))

Solución del Ejercicio 2:

Calcula con el comando int de Matlab el valor exacto de la integral


Z 3Z 2
x ln (xy) y.x..
2 1

>> format long


>> syms x y
>> I = double(int(int(x*log(x*y),y,1,2),x,2,3))

Calcula con dblquad una aproximación del valor exacto usando distintas tolerancias. Com-
para los resultados obtenidos con el valor exacto.

>> I2 = dblquad(@(x,y) x.*log(x.*y),2,3,1,2)


>> err_relativo = abs(I-I2)/I

>> I2 = dblquad(@(x,y) x.*log(x.*y),2,3,1,2,1e-10)


>> err_relativo = abs(I-I2)/I

12
5. Integrales triples
5.1. Integración exacta
El comando int permite calcular tanto integrales dobles como triples mediante integración
iterada.

Ejemplo: Integral sobre un paralelepı́pedo


Podemos calcular la integral Z 1Z 2Z 1
z 2 yex z. y. x.
0 1 −1
usando los comandos
>> syms x y z
>> f = zˆ2*y*exp(x)
>> f1 = int(f,z,-1,1)
>> f2 = int(f1,y,1,2)
>> f3 = int(f2,x,0,1)
El código anterior es equivalente a
>> int(int(int(f,z,-1,1),y,1,2),x,0,1)

Ejemplo: Integral sobre una región más general


Calculemos ahora la integral de f (x, y, z) = x + y sobre la región acotada por la esfera
x2 + y 2 + z 2 = 1, el cilindro x2 + y 2 = 1 y los planos z = 0 y z = 1. El comando sphere pinta
una esfera de radio unidad centrada en el origen y el comando cylinder representa un cilindro
con eje z y sección la circunferencia de centro el origen y radio 1. Por tanto, para representar la
región de integración tecleamos:
>> sphere
>> hold on
>> cylinder
Observa que, como queremos ver el interior de la región y deducir los lı́mites de integración, no
hemos pintado los planos z = 0 y z = 1. Ahora, la integral se calcula con
>> I = int(int(int(x+y,z,sqrt(1-xˆ2-yˆ2),1),y,-sqrt(1-xˆ2),sqrt(1-xˆ2)),x,-1,1)

Ejercicio 1:
Calcula la integral Z Z Z q
x2 + y 2 V
.,
B
siendo B el sólido limitado por los paraboloides z = x2 + y 2 y z = 2 − x2 − y 2 .

Representa la región de integración con el comando ezsurf e intenta usar Matlab para
calcular la integral original en cartesianas. ¿Qué es lo que ocurre?
Haz el cambio a coordenadas cilı́ndricas y usa Matlab para calcular el valor de dicha
integral.

13
5.2. Integración numérica
La función triplequad permite aproximar mediante la regla de Simpson la integral de una
función de tres variables reales sobre un paralelepı́pedo. Al igual que el comando dblquad admite
como argumento una función anónima.
Ejemplo:

Calculamos (exactamente) la integral


Z 3Z 1 Z 2
x2 y + 2y 2 + 3z 3 z. y. x..
1 −1 0

>> syms x y z
>> I = int(int(int(xˆ2*y+2*yˆ2+3*zˆ3,z,0,2),y,-1,1),x,1,3)

Ahora calculamos una aproximación con triplequad:

>> f = @(x,y,z) x.ˆ2.*y+2*y.ˆ2+3*z.ˆ3


>> I2 = triplequad(f,1,3,-1,1,0,2)

Observamos que el resultado es el mismo, ¿por qué?

Ejercicio 2:

Intenta calcular con el comando int de Matlab el valor exacto de la integral


Z 1Z 1Z 1 q
sen(xy) cos( x2 + y 2 + z) z. y. x..
0 0 0

Calcula con triplequad una aproximación del valor de la integral.

14
Soluciones de los ejercicios 1 y 2

Solución del Ejercicio 1:

Calcula la integral Z Z Z q
x2 + y 2 V
.,
B
siendo B el sólido limitado por los paraboloides z = x2 + y 2 y z = 2 − x2 − y 2 .

Representa la región de integración con el comando ezsurf e intenta usar Matlab para
calcular la integral original, en cartesianas. ¿Qué es lo que ocurre?

>> syms x y z
>> ezsurf(xˆ2+yˆ2)
>> hold on
>> ezsurf(2-xˆ2+yˆ2)
>> I2 = int(int(int(sqrt(xˆ2+yˆ2),z,xˆ2+yˆ2,2-xˆ2-yˆ2),y,-sqrt(1-xˆ2),sqrt(1-xˆ2)),
x,-1,1)

Matlab no puede darnos un resultado numérico.


Usa Matlab para calcular el valor de la integral en cilı́ndricas.
Si hacemos el cambio de variable a cilı́ndricas obtenemos
Z 2π Z 1 Z 2−r2
r2 dz dr dθ.
0 0 r2
Para resolverlo con Matlab tecleamos

>> syms r t
>> I = int(int(int(rˆ2,z,rˆ2,2-rˆ2),r,0,1),t,0,2*pi)

Solución del Ejercicio 2:

Intenta calcular con el comando int de Matlab el valor exacto de la integral


Z 1Z 1Z 1 q
sen(xy) cos( x2 + y 2 + z) z. y. x..
0 0 0

>> syms x y z
>> I = int(int(int(sin(x*y)*cos(sqrt(xˆ2+yˆ2+z)),z,0,1),y,0,1),x,0,1)

Matlab no puede calcular el valor exacto de la integral.


Calcula con triplequad una aproximación del valor de la integral.

>> f=@(x,y,z) sin(x.*y).*cos(sqrt(x.ˆ2+y.ˆ2+z))

>> I=triplequad(f,0,1,0,1,0,1)

15

Das könnte Ihnen auch gefallen