5  Derivadas de funciones reales

5.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 límites.
using Plots  # Para el dibujo de gráficas.
#plotlyjs() # Para obtener gráficos interactivos.
using ImplicitPlots # Para dibujar curvas implícitas.
using MTH229 # Para restringir la gráfica de una función a su dominio.
using LaTeXStrings  # Para usar código LaTeX en los gráficos.
using Latexify  # Para convertir expresiones a código LaTeX.

Ejercicio 5.1 Galileo Galilei trató de estudiar el movimiento de un cuerpo en caída libre con un experimento en el que midió la distancia recorrida cada segundo por una bola que caía por un plano inclinado.

Plano inclinado de Galileo.

La siguiente tabla recoge sus mediciones.

Tiempo (s) Distancia (cm)
0 0
1 1
2 4
3 9
4 16
5 25
  1. Dibujar la gráfica que resulta de unir los puntos correspondientes a los pares de la tabla con segmentos. ¿Qué forma tiene la gráfica?

    Definir dos arrays con los valores del tiempo y la distancia y usar la función scatter del paquete Plots, o bien la función scatter del paquete Makie, para dibujar el array de términos.

    using Plots
    t = [0, 1, 2, 3, 4, 5, 6]
    d = [0, 1, 4, 9, 16, 25, 36]
    Plots.scatter(t, d, legend=false)
    plt = Plots.plot!(t, d, linecolor="blue", xlab="Tiempo (s)", ylab="Distancia recorrida (cm)")
    using GLMakie
    t = [0, 1, 2, 3, 4, 5, 6]
    d = [0, 1, 4, 9, 16, 25, 36]
    fig = Figure()
    ax = Axis(fig[1,1], xlabel="Tiempo (s)", ylabel="Distancia recorrida (cm)")
    Makie.scatter!(ax, t, d)
    f(x) = x^2
    Makie.lines!(ax, 0..6, f)
    fig

    Se aprecia que una forma parabólica.

  2. Calcular la velocidad media (tasa de variación media) desde los instantes \(t=0, 1, 2\) hasta el instante \(t=3\) y dibujar la rectas secantes a la gráfica anterior en esos instantes. ¿Cómo es la tendencia de las velocidades medias?

    La tasa de variación media de una función \(f\) en un intervalo \([a,b]\) viene dada por la fórmula

    \[ TVM(f,[a,b]) = \frac{f(b)-f(a)}{b-a}, \]

    y la recta secante a la función \(f\) en el intervalo \([a,b]\) tiene ecuación

    \[ y = f(a) + TVM(f,[a,b]) (x-a). \]

    # Función para el cálculo de la velocidad media en del instante i al instante j.
    tvm(i, j) = (d[j]-d[i])/(t[j]-t[i])
    j = 4
    # Cálculo de las velocidades medias.
    for i in 1:3
        println("Velocidad media desde el instante $(t[i]) al instante $(t[j]): $(tvm(i, j)) cm/s")
    end
    # Función para calcular la ecuación de la recta secante en los instantes i y j.
    secante(x, i, j) = d[i] + tvm(i, j) * (x - t[i])
    # Dibujo de las rectas secantes
    for i in 1:3
        plt = Plots.plot!(x -> secante(x,i,j))
    end
    plt
    Velocidad media desde el instante 0 al instante 3: 3.0 cm/s
    Velocidad media desde el instante 1 al instante 3: 4.0 cm/s
    Velocidad media desde el instante 2 al instante 3: 5.0 cm/s

    Las velocidades medias crecen a medida que pasa el tiempo.

  3. Calcular la velocidad media desde el instante \(t=3\) hasta los instantes \(t=6, 5, 4\) y dibujar la rectas secantes a la gráfica anterior en esos instantes. ¿Cómo es la tendencia de las velocidades medias? ¿Hacia dónde tiende la velocidad media cuando los aproximamos al instante \(t=3\) con instantes menores y mayores?

    i = 4
    # Cálculo de las velocidades medias.
    for j in 7:-1:5
        println("Velocidad media desde el instante $(t[i]) al instante $(t[j]): $(tvm(i, j)) cm/s")
    end
    # Dibujo de las rectas secantes.
    for j in 7:-1:5
        plt = Plots.plot!(x -> secante(x,i,j))
    end
    plt
    Velocidad media desde el instante 3 al instante 6: 9.0 cm/s
    Velocidad media desde el instante 3 al instante 5: 8.0 cm/s
    Velocidad media desde el instante 3 al instante 4: 7.0 cm/s

    Las velocidades medias decrecen a medida que el tiempo decrece.

    Se puede deducir que las velocidades medias tienden a \(6\) cm/s cuando los instantes se aproximan a \(3\) s.

  4. Calcular la variación en la distancia recorrida cada segundo que pasa. ¿Cómo evoluciona la velocidad de la bola?

    v = []
    for i in 2:length(d)
        push!(v, d[i]-d[i-1])
        println("Velocidad media desde el instante $(t[i-1]) al instante $(t[i]): $(v[i-1]) cm/s")
    end
    Velocidad media desde el instante 0 al instante 1: 1 cm/s
    Velocidad media desde el instante 1 al instante 2: 3 cm/s
    Velocidad media desde el instante 2 al instante 3: 5 cm/s
    Velocidad media desde el instante 3 al instante 4: 7 cm/s
    Velocidad media desde el instante 4 al instante 5: 9 cm/s
    Velocidad media desde el instante 5 al instante 6: 11 cm/s
  5. Calcular la variación en la velocidad cada segundo que pasa. ¿Cómo evoluciona la aceleración de la bola? ¿Qué conclusiones sacó Galileo sobre la aceleración de la bola?

    for i in 2:length(v)
        println("Aceleración media desde el instante $(t[i-1]) al instante $(t[i]): $(v[i]-v[i-1]) cm/s")
    end
    Aceleración media desde el instante 0 al instante 1: 2 cm/s
    Aceleración media desde el instante 1 al instante 2: 2 cm/s
    Aceleración media desde el instante 2 al instante 3: 2 cm/s
    Aceleración media desde el instante 3 al instante 4: 2 cm/s
    Aceleración media desde el instante 4 al instante 5: 2 cm/s

    Se observa que la aceleración es la misma. Galileo concluyó que la aceleración de un cuerpo en caída libre era uniforme.

Ejercicio 5.2 Representar gráficamente la función \(f(x)=|x-1|\) y estudiar su derivabilidad en el punto \(x=1\) haciendo uso de la definición de derivada.

using Plots, SymPy, LaTeXStrings
@syms x::real
f(x) = abs(x-1)
display(Plots.plot(f(x), label=L"f(x)=|x-1|"))
println("Derivada por la izquierda: ", limit((f(x)-f(1))/(x-1), x=>1, dir="-"))
println("Derivada por la derecha: ", limit((f(x)-f(1))/(x-1), x=>1, dir="+"))
Derivada por la izquierda: -1
Derivada por la derecha: 1

Como la derivada por la izquierda y por la derecha no son iguales, la función no es derivable en \(x=1\).

Ejercicio 5.3 Calcular las derivadas de las siguientes funciones hasta el orden 4 y deducir la expresión de la derivada de orden \(n\).

  1. \(f(x)=\ln(x+1)\)

    Usar la función diff(f,n) del paquete SymPy para calcular simbólicamente la derivada de grado n de la función f.

    using SymPy
    @syms x::real
    f(x) = log(x+1)
    println("Primera derivada: ", diff(f(x)))
    println("Segunda derivada: ", diff(f(x), x, 2))
    println("Tercera derivada: ", diff(f(x), x, 3))
    println("Cuarta derivada: ", diff(f(x), x, 4))
    Primera derivada: 1/(x + 1)
    Segunda derivada: -1/(x + 1)^2
    Tercera derivada: 2/(x + 1)^3
    Cuarta derivada: -6/(x + 1)^4

    La derivada de orden \(n\) es \(f^{(n}=\frac{(-1)^{n-1}(n-1)!}{(x+1)^n}\).

  2. \(f(x)=a^x\)

    using SymPy
    @syms x::real a::real
    g(x) = a^x
    println("Primera derivada: ", diff(g(x), x))
    println("Segunda derivada: ", diff(g(x), x, 2))
    println("Tercera derivada: ", diff(g(x), x, 3))
    println("Cuarta derivada: ", diff(g(x), x, 4))
    Primera derivada: a^x*log(a)
    Segunda derivada: a^x*log(a)^2
    Tercera derivada: a^x*log(a)^3
    Cuarta derivada: a^x*log(a)^4

    La derivada de orden \(n\) es \(g^{(n}=a^x\ln(a)^n\).

  3. \(h(x)=\operatorname{sen}(x)+\cos(x)\)

    using SymPy
    @syms x::real
    h(x) = sin(x)+cos(x)
    println("Primera derivada: ", diff(h(x)))
    println("Segunda derivada: ", diff(h(x), x, 2))
    println("Tercera derivada: ", diff(h(x), x, 3))
    println("Cuarta derivada: ", diff(h(x), x, 4))
    Primera derivada: -sin(x) + cos(x)
    Segunda derivada: -(sin(x) + cos(x))
    Tercera derivada: sin(x) - cos(x)
    Cuarta derivada: sin(x) + cos(x)

    La derivada de orden \(n\) es

    \[ h^{(n}= \begin{cases} \operatorname{sen}(x)+\cos(x) & \mbox{si } n=4k\\ \cos(x)-\operatorname{sen}(x) & \mbox{si } n=4k+1\\ -\operatorname{sen}(x)-\cos(x) & \mbox{si } n=4k+2\\ -\cos(x)+\operatorname{sen}(x) & \mbox{si } n=4k+3\\ \end{cases} \quad k\in\mathbb{N} \]

Ejercicio 5.4 Sea \(f(x)=\sqrt{x}\).

  1. Dibujar la gráfica de \(f\) y dibujar las rectas secantes a \(f\) en los intervalos \([\frac{i}{10}, 1]\) para \(i=0,\ldots, 9\). ¿Hacia dónde tienden las pendientes de las rectas secantes?

    using Plots, SymPy, LaTeXStrings, Latexify
    @syms x::real
    f(x) = sqrt(x)
    plt = Plots.plot(f, 0, 2, ylims=(0,2.5), linewidth = 3, label=L"f(x)=\sqrt{x}", legend=:topleft)
    secante(x, i, j) = f(i) + (f(j)-f(i))/(j-i) * (x - i)
    for i in 0:9
        sec = secante(x, i/10, 1)
        plt = Plots.plot!(sec, label =L"y=" * latexify(sec))
    end
    plt

    Se deduce que las pendientes de las rectas secantes tienen a \(0.5\).

  2. Dibujar la recta tangente a la gráfica de \(f\) en \(x=1\).

    La ecuación de la recta tangente a la función \(f(x)\) en el punto \(a\) es \(y=f(a)+f'(a)(x-a)\).

    Usar la función diff(f) del paquete SymPy para calcular simbólicamente la derivada de la función f.

    tg = f(1) + diff(f(x))(1) * (x-1)
    Plots.plot!(tg, linewidth = 2, color = "red", label="Tangente " * L"y=" * latexify(tg))