6  Integrales de funciones reales

6.1 Ejercicios Resueltos

Para la realización de esta práctica se requieren los siguientes paquetes:

using SymPy  # Para el cálculo simbólico de integrales.
using QuadGK  # Para el cálculo numérico de integrales.
using Plots  # Para el dibujo de gráficas.
using LaTeXStrings  # Para usar código LaTeX en los gráficos.
using PrettyTables # Para formatear tablas.
using CalculusWithJulia # Utilidades varias para cálculo.

Ejercicio 6.1 Sea \(f(x)=x^2\).

  1. Calcular la suma inferior de Riemann de \(f\) en el intervalo \([0,1]\), tomando una partición de 10 subinvervalos de igual amplitud.

    La suma inferior de Riemann de una función \(f\) en un intervalo \([a,b]\) se obtiene sumando las áreas de los rectángulos que resultan de tomar una partición del intervalo, tomando como base la amplitud de los subintervalos y el como altura el mínimo valor de \(f\) en el subintervalo.

    f(x) = x^2
    # Definimos la amplitud de los subintervalos.
    Δx = 1/10
    # Calculamos las áreas de los rectángulos tomando como altura el mínimo valor de la función en el subintervalo, que es el valor de la función en el extremo izquierdo del subintervalo.
    areas_inf = [f((i-1)*Δx)*Δx for i = 1:10]
    # Sumamos las áreas de los rectángulos.
    sum_inf = sum(areas_inf)
    0.2850000000000001
  2. Calcular la suma superior de Riemann de \(f\) en el intervalo \([0,1]\), tomando una partición de 10 subinvervalos de igual amplitud.

    La suma superior de Riemann de una función \(f\) en un intervalo \([a,b]\) se obtiene sumando las áreas de los rectángulos que resultan de tomar una partición del intervalo, tomando como base la amplitud de los subintervalos y el como altura el máximo valor de \(f\) en el subintervalo.

    f(x) = x^2
    # Definiendo la amplitud de los subintervalos.
    Δx = 1/10
    # Calculamos las áreas de los rectángulos tomando como altura el máximo valor de la función en el subintervalo, que es el valor de la función en el extremo derecho del subintervalo.
    areas_sup = [f(i*Δx)*Δx for i = 1:10]
    # Sumamos las áreas de los rectángulos.
    sum_sup = sum(areas_sup)
    0.3850000000000001
  3. Dar una cota del error cometido en la aproximación del área encerrada entre la gráfica de \(f\) y el eje \(x\) en el intervalo \([0,1]\) tomando sumas de Riemann para una partición en 10 subintervalos.

    La suma inferior de Riemann nos da una cota inferior del área que queda encerrada entre la gráfica de la función y el eje \(x\) en el intervalo \([a,b]\), mientras que la suma superior de Riemann nos da una cota superior. Por tanto, si tomamos cualquier valor entre la suma inferior y la suma superior de Riemann como aproximación del área encerrada entre la gráfica de \(f\) y el eje \(x\), una cota del error cometido será la diferencia entre la suma superior y la suma inferior.

    error = sum_sup - sum_inf
    0.10000000000000003
  4. Definir una función para calcular de manera aproximada el área encerrada entre la gráfica de \(f\) y el eje \(x\) en el intervalo \([a,b]\) tomando sumas de Riemann para una partición en \(n\) subintervalos, y el error cometido en la aproximación. Utilizarla para calcular los errores aproximados al aproximar el area de \(f\) en el intervalo \([0,1]\) tomando particiones desde 10 a 100 subintervalos.

    using PrettyTables
    f(x) = x^2
    
    function suma_inf(f, a, b, n)
        """
        Función que calcular la suma inferior de Riemann de una función f en el intervalo [a,b] tomando una partición de n subintervalos.
        """
        Δx = (b-a)/n
        return sum([f(a+(i-1)*Δx)*Δx for i = 1:n])
    end
    
    function suma_sup(f, a, b, n)
        """
        Función que calcular la suma superior de Riemann de una función f en el intervalo [a,b] tomando una partición de n subintervalos.
        """
        Δx = (b-a)/n
        return sum([f(a+i*Δx)*Δx for i = 1:n])
    end
    
    function area(f, a, b, n)
        """
        Función que calcular de manera aproximada el área encerrada entre la gráfica de f y el eje x en el intervalo [a,b] tomando sumas de Riemann para una partición en n subintervalos, y el error cometido en la aproximación.
        """
        area_inf = suma_inf(f, a, b, n)
        area_sup = suma_sup(f, a, b, n)
        area = (area_inf + area_sup) / 2
        error = area_sup - area_inf
        return area, error
    end
    
    suma_sup(f, 0, 1, 10)  
    area(f, 0, 1, 10)
    areas = [area(f, 0, 1, 10^n) for n=1:6]
    pretty_table(hcat(first.(areas), last.(areas)); header = ["Aproximación", "Error"])
    ┌──────────────┬────────┐
    │ Aproximación │  Error │
    ├──────────────┼────────┤
    │        0.335 │    0.1 │
    │      0.33335 │   0.01 │
    │     0.333334 │  0.001 │
    │     0.333333 │ 0.0001 │
    │     0.333333 │ 1.0e-5 │
    │     0.333333 │ 1.0e-6 │
    └──────────────┴────────┘

Ejercicio 6.2 Calcular las primitivas de las siguientes funciones.

Para calcular la primitiva de una función se puede usar la función integrate(f) del paquete SymPy, donde f es la función a integrar.

  1. \(f(x)=x^2\ln(x)\)

    using SymPy
    @syms x::real
    primitiva = integrate(x^2*log(x))

    \(\frac{x^{3} \log{\left(x \right)}}{3} - \frac{x^{3}}{9}\)

    Obsérvese que la primitiva obtenida con la función integrate no incluye la típica constante que define la familia de primitivas.

    Podemos comprobar que efectivamente es la primitiva derivándola.

    diff(primitiva)

    \(x^{2} \log{\left(x \right)}\)

  2. \(g(x)= \dfrac{\ln(\ln(x))}{x}\)

    integrate(log(log(x))/x)

    \(\log{\left(x \right)} \log{\left(\log{\left(x \right)} \right)} - \log{\left(x \right)}\)

  3. \(h(x)= \dfrac{2x^3+x^2+6}{x^5-x}\)

    Se trata de una función racional, así que hacemos primero la descomposición en fracciones simples. Para ello se puede usar la función apart(f) del paquete SymPy.

    h(x) = (2x^3+x^2+6)/(x^5-x)
    # Descomposición en fracciones simples.
    apart(h(x))

    \(\frac{5 x + 2}{2 \left(x^{2} + 1\right)} + \frac{5}{4 \left(x + 1\right)} + \frac{9}{4 \left(x - 1\right)} - \frac{6}{x}\)

    Y ahora calculamos la primitiva.

    integrate(h(x))

    \(- 6 \log{\left(x \right)} + \frac{9 \log{\left(x - 1 \right)}}{4} + \frac{5 \log{\left(x + 1 \right)}}{4} + \frac{5 \log{\left(x^{2} + 1 \right)}}{4} + \operatorname{atan}{\left(x \right)}\)

  4. \(i(x)= x^a\)

    Cuando en la función aparece algún parámetro, es necesario indicar la variable con respecto a la que calcular la integral. Para ello se utiliza la función integrate(f, x), siendo x la variable con respecto a la que integrar.

    @syms a::real
    integrate(x^a, x)

    \(\begin{cases} \frac{x^{a + 1}}{a + 1} & \text{for}\: a \neq -1 \\\log{\left(x \right)} & \text{otherwise} \end{cases}\)

  5. \(j(x) = (1 + \log(x))\sqrt{1 + x^2\log(x)^2}\)

    @syms x::real
    j(x) = (1 + log(x)) * sqrt(1 + (x*log(x))^2 )
    # El cálculo directo de la integral no funciona.
    integrate(j(x))
    # Ayudamos a SymPy con la sustitución.
    h(x) = x*log(x)
    @syms y::real dy::real
    # Definimos la nueva función con el cambio de variable.
    g(y) = j(x)(h(x) => y, diff(h(x), x) => 1)
    # Integramos la nueva función y deshacemos el cambio de variable.
    integrate(g(y))(y => h(x))

    \(\frac{x \sqrt{x^{2} \log{\left(x \right)}^{2} + 1} \log{\left(x \right)}}{2} + \frac{\operatorname{asinh}{\left(x \log{\left(x \right)} \right)}}{2}\)

Ejercicio 6.3 Calcular las siguientes integrales definidas:

Para calcular una integral definida también se puede usar la función integrate(f, (x, a, b)), del paquete SymPy, donde, además de la función f, hay que indicar la variable de integración x y los límites de integración a y b.

  1. \(\displaystyle \int_{-1/2}^0 \frac{x^3}{x^2+x+1}\, dx\)

    using SymPy
    @syms x::real
    integrate(x^3/(x^2+x+1), (x, -1/2, 0))

    \(-0.625 + \frac{\sqrt{3} \pi}{9}\)

  2. \(\displaystyle \int_2^4 \frac{\sqrt{16-x^2}}{x}\, dx\)

    integrate(sqrt(16-x^2)/x, (x, 2, 4))

    \(- 2 \sqrt{3} + 4 \operatorname{acosh}{\left(2 \right)}\)

  3. \(\displaystyle \int_0^{\pi/2} \frac{dx}{3+\cos(2x)}\)

    integrate(1/(3+cos(2x)), (x, 0, PI/2))

    \(\frac{\sqrt{2} \pi}{8}\)

Ejercicio 6.4 Calcular la integral definida \(\displaystyle \int_0^1 x^x\, dx\) con un error menor de \(10^{-10}\).

Esta función no tiene primitiva como se puede comprobar al realizar la integral con la función integrate. Para calcularla hay que recurrir a métodos numéricos de aproximación. Para ello se puede usar la función quadgk del paquete QuadGK que realiza el cálculo de la integral mediante el método de la cuadratura de Gauss-Kronrod.

using SymPy
@syms x::real
f(x) = x^x
integrate(f(x), (x, 0, 1))

\(\int_{0}^{1} x^{x}\, dx\)

No es posible calcular la primitiva con integrate porque esta función no tiene primitiva, así que hay que calcular la integral definida de manera aproximada por métodos numéricos.

using QuadGK
quadgk(f(x), 0, 1, rtol = 10^-10)
(0.783430510710741, 7.598588099878845e-11)

Ejercicio 6.5 Dibujar y calcular el área encerrada por la parábola \(y=x^{2}-7x+6\) y el eje de abscisas en el intervalo \([2,7]\).

Para calcular el área encerrada entre la gráfica de una función y el eje \(x\) en un intervalo \([a,b]\), hay que descomponer el intervalo de integración en los subintervalos donde la función es positiva y los subintervalos donde es negativa, e integrar la función en cada intervalo por separado.

Otra opción es calcular el área mediante la integral del valor absoluto de la función.

Dibujamos primero la región.

using SymPy, LaTeXStrings, GLMakie
@syms x::real
f(x) = x^2-7x+6
# Definimos un rango de valores para x.
xs = range(2, 7, length=100)
# Creamos la figura.
fig = Figure()
# Definimos los ejes.
ax = Axis(fig[1, 1])
# Dibujamos la región.
band!(ax, xs, f.(xs), [0], color = :blue, alpha = 0.3)
# Dibujamos la función.
lines!(ax, xs, f.(xs), color = :blue, label = L"$f(x)=x^2-7x+6$")
# Añadimos la leyenda.
axislegend(ax)
# Mostramos la figura.
fig
using Plots, SymPy, LaTeXStrings
@syms x::real
f(x) = x^2-7x+6
# Dibujamos la región y la gráfica de la función.
Plots.plot(f, 2, 7, fillrange = 0, fillalpha = 0.3, label = L"$f(x)=x^2-7x+6$")

Y ahora calculamos el área de la región sombreada.

# Calculamos primero las raíces de la función
solve(f(x))
# Descomponemos el intervalo de integración en los subintervalos [2,6] (función negativa) y [6,7] (función positiva) y calculamos las integrales por separado
-integrate(f(x), (x, 2, 6)) + integrate(f(x), (x, 6, 7))

\(\frac{43}{2}\)

En general, para calcular áreas bajo una curva, es más rápido integrar el valor absoluto de la función.

integrate(abs(f(x)), (x, 2, 7))

\(\frac{43}{2}\)

Ejercicio 6.6 Calcular y dibujar el área comprendida entre las parábolas \(y=-x^2+6x\) e \(y=x^2-2x\).

Calculamos primero el área comprendida entre las dos funciones.

using Plots, SymPy, LaTeXStrings
@syms x::real
f(x) = -x^2+6x
g(x) = x^2-2x
# Calculamos primero los puntos de corte de la función.
a, b = solve(f(x)-g(x))
# Calculamos el área comprendida entre las dos funciones entre los puntos de corte.
sol = integrate(f(x)-g(x), (x, a, b))

\(\frac{64}{3}\)

Y ahora dibujamos el área calculada.

using GLMakie
# Definimos un rango de valores para x.
xs = range(-1, 5, length=100)
# Definimos un rango de valores para x en el intervalo de intersección.
xs2 = range(a, b, length=100)
# Creamos la figura.
fig = Figure()
# Definimos los ejes.
ax = Axis(fig[1, 1])
# Dibujamos la región.
band!(ax, xs2, f.(xs2), g.(xs2), color = :blue, alpha = 0.3)
# Dibujamos la función.
lines!(ax, xs, f.(xs), color = :blue, label = L"$f(x)=-x^2+6x$")
lines!(ax, xs, g.(xs), color = :red, label = L"$g(x)=x^2-2x$")
# Añadimos el area calculada.
text!(2, 4, text = "$sol")
# Añadimos la leyenda.
axislegend(ax)
# Mostramos la figura.
fig
using Plots
Plots.plot!(g, a, b, fillrange = f, fillalpha = 0.3, label = "")
Plots.plot(f, -1, 5, label = L"$f(x)=-x^2+6x$")
Plots.plot!(g, label = L"$g(x)=x^2-2x$")
annotate!(2, 4, sol)

Ejercicio 6.7 Dibujar la gráfica de la función \(f(x)=e^{-x}\) y calcular el área total encerrada entre la gráfica y el eje \(x\) para \(x>0\).

Dibujamos primero la gráfica.

using SymPy, LaTeXStrings, GLMakie
@syms x::real
f(x) = exp(-x)
# Definimos un rango de valores para x.
xs = range(0, 10, length=100)
# Creamos la figura.
fig = Figure()
# Definimos los ejes.
ax = Axis(fig[1, 1])
# Dibujamos la región.
band!(ax, xs, f.(xs), 0, color = :blue, alpha = 0.3)
# Dibujamos la función.
lines!(ax, xs, f.(xs), color = :blue, label = L"$f(x)=e^{-x}$")
# Añadimos la leyenda.
axislegend(ax)
# Mostramos la figura.
fig
using SymPy, LaTeXStrings, Plots
@syms x::real
f(x) = exp(-x)
Plots.plot(f(x), 0, 10, fillrange = 0, fillalpha = 0.3, label = L"$f(x)=e^{-x}$")

Y ahora calculamos el área mediante la integral impropia entre \(0\) y \(\infty\).

integrate(f(x), (x, 0, oo))

\(1\)

Ejercicio 6.8 Dibujar la región encerrada por la curvas polares \(f(\theta)=1+\cos(\theta)\) y \(g(\theta) = 3\cos(\theta)\) y calcular su área.

Para dibujar curvas polares se pueden definir los ejes polares con la función PolarAxis del paquete Makie, o bien se puede usar la función plot del paquete Plots con el argumento proj = :polar.

Dibujamos primero las curvas polares.

using SymPy, GLMakie
@syms θ::real
f(θ) = 1 + cos(θ)
g(θ) = 3cos(θ)
# Generamos los valores de θ
θs = range(0, 2pi, 100)
fig = Figure()
ax = PolarAxis(fig[1, 1], radius_at_origin = 0)
lines!(ax, θs, g.(θs), label =  L"g(\theta) = 3\cos(\theta)")
lines!(ax, θs, f.(θs), label = L"f(\theta) = 1 + \cos(\theta)")
fig
using SymPy, Plots
@syms θ::real
f(θ) = 1 + cos(θ)
g(θ) = 3*cos(θ)
Plots.plot(g, 0, pi, proj = :polar, label = L"g(\theta) = 3\cos(\theta)")
Plots.plot!(f, 0, 2pi, proj = :polar, label = L"f(\theta) = 1 + \cos(\theta)")

Y ahora calculamos el area encerrada entre ellas.

# Calculamos los puntos de corte de las funciones.
a, b = solve(f(θ)-g(θ))
# Ajustamos los ángulos para recorrer la región en el sentido correcto.
a, b = b - 2pi, a  
# Calculamos el de la región con forma de media luna encerrada entre g y f.
area_luna = integrate(g(θ)^2/2, (θ, a, b)) - integrate(f(θ)^2/2, (θ, a, b))
# Finalmente calculamos el area de g y le restamos el área de la media luna.
N(integrate(g(θ)^2/2, (θ, 0, pi)) - area_luna)
3.9269908169872414

Ejercicio 6.9 Un vehículo se mueve con una velocidad dada por la función \(\operatorname{sen}(t)^2\). ¿Cuál es la velocidad media en el intervalo \([0,2\pi]\)?

Para calcular el valor medio de una función \(f(x)\) en un intervalo \([a,b]\) tenemos que calcular la integral definida

\[ \frac{1}{b-a}\int_a^b f(x)\,dx. \]

using SymPy
@syms x::real
f(x) = sin(x)^2
1/(2*PI) * integrate(f(x), (x, 0, 2PI))

\(\frac{1}{2}\)

Ejercicio 6.10 Representar gráficamente la región del primer cuadrante limitada por la función \(f(x)=2+\operatorname{sen}(x)\) y el eje \(x\) en el intervalo \([0,2\pi]\) y hallar el volumen del sólido de revolución generado al rotar esta región alrededor del eje \(x\).

Para calcular el volumen de un sólido de revolución generado al rotar la gráfica de una función \(f(x)\) alrededor del eje \(x\) en el intervalo \([a,b]\), mediante discos cilíndricos perpendiculares al eje \(x\), hay que calcular la integral definida

\[ \int_a^b \pi f(x)^2\, dx \]

Dibujamos primero la región.

using SymPy, Plots
@syms x::real
f(x) = sin(x)+2
Plots.plot(f, 0, 2pi, ylim=(0,3), fillrange = 0, fillalpha = 0.3, label = "")

A continuación dibujamos el sólido de revolución parametrizado en 3D.

using GLMakie
# Generamos los valores de x y θ
x = LinRange(0, 2pi, 100)
θ = LinRange(0, 2pi, 100)
# Generamos los valores de X, Y y Z de la superficie de revolución.
xs = [i for i in x, j in θ]
ys = [f(i) * cos(j) for i in x, j in θ]
zs = [f(i) * sin(j) for i in x, j in θ]
# Creamos la figura.
fig = Figure()
# Definimos los ejes.
ax = Axis3(fig[1, 1], azimuth = -pi/3, title = "Sólido de revolución", xlabel = "X", ylabel = "Y", zlabel = "Z")
# Dibujamos la superficie de revolución
Makie.surface!(ax, xs, ys, zs, alpha = 0.9)
# Mostamos la figura.
fig
using CalculusWithJulia
@syms x::real u::real v::real
f(x) = sin(x)+2
S(u, v) = (u, f(u)*cos(v), f(u)*sin(v))
us = range(0, 2pi, length=100)
vs = range(0, 2pi, length=100)
ws = unzip(S.(us, vs'))
Plots.surface(ws...)

Finalmente, calculamos el volumen del sólido de revolución.

N(integrate(pi*f(x)^2, (x, 0, 2pi)))
88.82643960980423

Ejercicio 6.11 Calcular el volumen del toro que se obtiene al rotar la circunferencia de ecuación \((x-2)^2+y^2=1\) alrededor del eje \(y\).

En este caso, usaremos envoltorios cilíndricos para calcular el volumen del sólido de revolución. Para calcular el volumen del sólido de revolución que se obtiene al rotar alrededor del eje \(y\) la gráfica de una función \(f(x)\) en el intervalo \([a,b]\), mediante envoltorios cilíndricos, hay que calcular la integral definida

\[ \int_a^b 2\pi x f(x)\,dx. \]

Dibujamos primero la región.

using SymPy, Plots
@syms x::real
f(x) = sqrt(1-(x-2)^2)
Plots.plot(f(x), 0, 4, fillrange = 0, fillalpha = 0.3, aspect_ratio = 1, label = "")
Plots.plot!(-f(x), 0, 4, fillrange = 0, fillalpha = 0.3, aspect_ratio = 1, label = "")

Para el caso particular del toro, como el círculo que lo genera es simétrico con respecto al eje \(X\), calcularemos la mitad de su volumen aprovechando la simetría y lo multiplicaremos por 2.

2 * integrate(2PI*x*f(x), (x, 1, 3))

\(4 \pi^{2}\)

Ejercicio 6.12 Una empresa fabrica tejas de chapa con forma ondulada cuyo perfil viene dado por la curva \(y=\operatorname{sin}\left(\frac{x}{2}\right)\). Si se quieren obtener tejas de 100 cm de longitud, ¿qué longitud tienen que tener las planchas de chapa para fabricarlas?

Para calcular la longitud de una curva dada por la gráfica de una función \(f(x)\) en un intervalo \([a,b]\), hay que calcular la integral

\[ \int_a^b \sqrt{1+f'(x)^2}\,dx. \]

Dibujamos primero el perfil de las chapas.

using SymPy, Plots
@syms x::real
f(x) = sin(x/2)
Plots.plot(f(x), 0, 100, aspect_ratio = 1, label = "")
using QuadGK
quadgk(sqrt(1+diff(f(x))^2), 0, 100)
(105.954416730336, 1.2200227161862642e-6)

Ejercicio 6.13 El cuerno de Gabriel es un sólido de revolución que se obtiene al rotar la función \(f(x)=1/x\) alrededor del eje \(x\) para \(x\geq 1\).

  1. El volumen del cuerno de Gabriel.

    Calculamos su volumen mediante discos cilíndricos transversales al eje \(x\).

    using SymPy
    @syms x::real
    f(x) = 1/x
    integrate(PI*f(x)^2, (x, 1, oo))

    \(\pi\)

  2. Calcular la superficie del cuerno de Gabriel.

    Para calcular la superficie del sólido de revolución que se obtiene al rotar la gráfica de la función \(f(x)\) alrededor del eje \(x\) en el intervalo \([a,b]\) hay que calcular la integral definida

    \[ \int_a^b 2\pi f(x)\sqrt{1+f'(x)^2}\,dx. \]

    using SymPy
    @syms x::real
    f(x) = 1/x
    integrate(2PI*f(x)*sqrt(1+diff(f(x))^2), (x, 1, oo))

    \(\infty\)

    Así pues, se da la paradoja de que el cuerno de Gabriel tiene un volumen finito, pero una superficie infinita.

Ejercicio 6.14 Un depósito con forma de sólido de revolución generado al rotar la gráfica de la función \(f(x)=\frac{x^2}{2}\) alrededor del eje \(y\) en el intervalo de \(0\) a \(4\) m, contiene \(100000\) l de aceite con una densidad de \(\delta = 900\) kg/m\(^3\). ¿Qué trabajo se realiza al vaciar el depósito por arriba?

Para calcular el trabajo realizado por una fuerza aplicada sobre un objeto y que provoca un desplazamiento desde \(x=a\) hasta \(x=b\), basta con calcular la integral definida

\[ \int_a^b f(x)\,dx \]

En este caso, tomando discos cilíndricos perpendiculares al eje \(y\), el volumen de cada disco viene dado por la función \(V(y)=\pi f^{-1}(y)^2\Delta y\) y, por tanto, la masa de cada uno de estos discos es \(M(y)=\delta\pi f^{-1}(y)^2\Delta y\). Como la única fuerza que actúa sobre la masa es la gravedad, la fuerza aplicada a la masa de cada disco es \(F(y) = gM(y)= g\delta\pi f^{-1}(y)^2\Delta y\). Finalmente, como la masa de cada uno de los discos debe elevarse una distancia \(4-y\), el trabajo realizado para vaciar el depósito se calcula mediante la integral definida

\[ \int_0^h g\delta\pi f^{-1}(y)^2(4-y)\,dy \]

donde \(h\) es el nivel del aceite.

Calculamos primero el nivel del aceite en el depósito. Para ello necesitamos el volumen contenido en el depósito hasta una altura \(h\).

using SymPy
@syms x::real y::real
f(x) = x^2/2
f⁻¹(y) = solve(y-f(x), x)[2]
# Volumen hasta una altura h
V(x) = integrate(PI*f⁻¹(y)^2, (y, 0, x))
# Nivel para un volumen de 100 m³
nivel = solve(V(x)-100)[2]

\(\frac{10}{\sqrt{\pi}}\)

Ahora calculamos el trabajo realizado al vaciar el depósito por arriba.

δ = 900
gravedad = 9.81
N(integrate(gravedad*δ*PI*f⁻¹(y)^2*(8-y), (y, 0, nivel)))
3.7423801112379064e6

Ejercicio 6.15 Dibujar la región que se obtiene con la intersección de la recta \(y=x-1\) y la parábola \(y=(x-1)^2\), y dibujar su centroide. ¿Cuál es le volumen del sólido de revolución generado al rotar esta región sobre el eje \(x\)? ¿Y al rotarla sobre el eje \(y\)?

Para calcular el centroide \((\bar x, \bar y)\) de una región plana encerrada por dos curvas \(f(x)\) y \(g(x)\) en el intervalo \([a,b]\) hay que calcular por separado el centro de masas \(\bar x\) con respecto al eje \(y\), y el centro de masas \(\bar y\) con respecto al eje \(x\), mediante cociente de las siguientes integrales definidas

\[\begin{align*} \bar x &=\frac{\int_a^b x (f(x)-g(x))\,dx}{\int_a^b f(x)-g(x)\,dx}\\ \bar y &=\frac{\frac{1}{2}\int_a^b f(x)^2-g(x)^2\,dx}{\int_a^b f(x)-g(x)\,dx} \end{align*}\]

Dibujamos primero la región. Para ello hay que calcular primero los puntos de corte de las dos curvas.

using SymPy, GLMakie
@syms x::real
f(x) = x-1
g(x) = (x-1)^2
# Calculo de los puntos de corte.
a, b = float(solve(f(x)-g(x)))
# Definimos un rango de valores para x.
xs = range(a, b, length=100)
# Creamos la figura.
fig = Figure()
# Definimos los ejes.
ax = Axis(fig[1, 1])
# Dibujamos la región.
band!(ax, xs, f.(xs), g.(xs), color = :blue, alpha = 0.3)
# Dibujamos la función.
lines!(ax, xs, f.(xs), color = :blue, label = L"$f(x)=-x^2+6x$")
lines!(ax, xs, g.(xs), color = :red, label = L"$g(x)=x^2-2x$")
# Añadimos la leyenda.
axislegend(ax, position = :lt)
# Mostramos la figura.
fig
using SymPy, Plots
@syms x::real
f(x) = x-1
g(x) = (x-1)^2
# Calculo de los puntos de corte.
a, b = float(solve(f(x)-g(x)))
# Dibujamos la región. 
Plots.plot(g, a, b, fillrange = f, fillalpha = 0.3, label = "")
# Dibujamos la gráfica de f.
Plots.plot!(f, a, b, label = L"$f(x)=-x^2+6x$")
# Dibujamos la gráfica de g.
Plots.plot!(g, label = L"$g(x)=x^2-2x$")

Ahora calculamos el centroide de la región y lo dibujamos.

# Coordenada x del centroide.
cx = integrate(x*(f(x)-g(x)), (x, a, b)) / integrate(f(x)-g(x), (x, a, b))
# Coordenada y del centroide
cy = 1/2 * integrate(f(x)^2-g(x)^2, (x, a, b)) / integrate(f(x)-g(x), (x, a, b))

\(0.399999999999996\)

Makie.scatter!(Point2(cx, cy), color = :green, markersize = 10, label = "Centroide")
fig
Plots.scatter!([cx], [cy], color = :green, label = "Centroide")

Para calcular el volumen del sólido de revolución generado al rotar esta región sobre el eje \(x\) podemos usar el teorema de Pappus que establece que el volumen es el area de la región multiplicada por la longitud del camino recorrido por el centroide.

Al rotar la región sobre el eje \(x\) el camino recorrido por el centroide es \(2\pi \bar y\).

2*PI*cy*integrate(f(x)-g(x), (x,a, b))

\(0.133333333333332 \pi\)

Y al rotarla sobre el eje \(y\) el camino recorrido por el centroide es \(2\pi \bar x\).

2*PI*cx*integrate(f(x)-g(x), (x, a, b))

\(0.5 \pi\)

6.2 Ejercicios propuestos

Ejercicio 6.16 Calcular la suma superior de Riemann de la función \(f(x)=\sqrt{\ln(x)}\) en el intervalo \([1,2]\), tomando una partición de 100 subinvervalos de igual amplitud.


 🎁

Ejercicio 6.17 Calcular el area encerrada entre las funciones \(f(x)=\operatorname{sin}(x)\) y \(\cos(x)\) en el intervalo \([0,2\pi]\).


 🎁

Ejercicio 6.18 Dibujar la gráfica de la función \(f(x)=\dfrac{1}{\sqrt{2\pi}}e^{\frac{-x^2}{2}}\) y calcular el área total encerrada entre la gráfica y el eje \(x\).


 🎁

Ejercicio 6.19 Calcular el área encerrada entre las curvas polares \(f(\theta)=2\operatorname{sen}(3\theta)\) y \(g(\theta)=1\).


 🎁

Ejercicio 6.20 La función \(T(t)=100te^{-t}\) define la temperatura de un sistema en cada instante \(t\). Calcular la temperatura media en el intervalo \([0,5]\).


 🎁

Ejercicio 6.21 Calcular el volumen del sólido de revolución generado por la rotación al rededor del eje \(x\) de la región comprendida entre las funciones \(f(x)=\ln(x)\) y \(g(x)=\frac{x-1}{2}\).


 🎁

Calcular también el volumen del sólido de revolución generado al rotar la misma región alrededor del eje \(y\).


 🎁

Ejercicio 6.22 La curva \(y=a\cosh(x/a)\) se conoce como catenaria. ¿Cuál es la longitud de la catenaria con \(a=2\) entre \(-1\) y \(1\)?


 🎁

Ejercicio 6.23 Un depósito metálico tiene la forma del elipsoide que se obtiene al rotar la elipse \(\frac{x^2}{4}+y^2=1\) alrededor del eje \(x\). Calcular la cantidad de chapa metálica necesaria para construir el depósito.


 🎁

Ejercicio 6.24 La función de densidad del modelo de distribución de probabilidad exponencial \(\mbox{Exp}(1)\) es

\[ f(x)= \begin{cases} 0 & \mbox{si $x<0$}\\ e^{-x} & \mbox{si $x\geq 0$} \end{cases} \]

¿Cuál de las siguientes afirmaciones es cierta?

Select an item