using Plots # Para el dibujo de gráficas.
using Makie # Para obtener gráficos interactivos.
using SymPy # Para el cálculo simbólico.
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.
3 Funciones elementales
3.1 Ejercicios Resueltos
Para la realización de esta práctica se requieren los siguientes paquetes:
Ejercicio 3.1 La siguiente tabla contiene el número de bacterias en un cultivo cada hora que pasa.
Horas | Bacterias |
---|---|
0 | 1 |
1 | 2 |
2 | 4 |
3 | 8 |
4 | 16 |
5 | 32 |
6 | 64 |
7 | 128 |
Dibujar una gráfica con la evolución del la población de bacterias.
Definir los valores de las horas en un vector x
y el número de bacterias en otro y
y luego utilizar la función scater(x,y)
del paquete Makie
, o scatter(x,y)
del paquete Plots
para dibujar una gráfica de puntos.
using GLMakie
= 0:7
horas = [1, 2, 4, 8, 16, 32, 64, 128]
bacterias = Figure()
fig = Axis(fig[1,1], xlabel="Horas", ylabel="Bacterias", title="Evolución de la población de bacterias")
ax scatter!(ax, horas, bacterias)
Makie. fig
using Plots
= 0:7
horas = [1, 2, 4, 8, 16, 32, 64, 128]
bacterias scatter(horas, bacterias, xlab="Horas", ylab="Bacterias", title="Evolución de la población de bacterias", legend=false) Plots.
¿Los pares dados en la tabla forman una función?
Si, porque para cada hora hay a lo sumo un número de bacterias con el que se relaciona.
¿Qué fórmula crees que explica la evolución del número de bacterias en función de las horas que pasan? Dibuja en la gráfica anterior la función con esa fórmula.
Para añadir una nueva gráfica a una anterior se añade un signo de exclamación !
a la función de graficación. Para una gráfica de líneas, utilizar la función lines!
del paquete Makie
, o plot!
del paquete Plots
, pasándole el nombre de la función si se ha definido previamente o la definición anónima de la función
lines!(ax, 0..7, x -> 2^x)
Makie. fig
using Plots
plot!(x -> 2^x) Plots.
Ejercicio 3.2 En el lanzamiento vertical de un objeto, la posición que ocupa el objeto en cada instante \(t\), viene dado por la función
\[ y(t) = y_0+v_0t+\frac{1}{2}gt^2 \]
donde \(y_0\) es la altura inicial del objeto, \(v_0\) la velocidad inicial con que se lanza, y \(g\) es la aceleración de la gravedad. Una pelota se lanza verticalmente desde la ventada de un edificio a 5 m de altura, con una velocidad inicial de \(10\) m/s. Dibujar la gráfica de la posición de la pelota en función del tiempo, tomando una aceleración de la gravedad \(g=-9.8\) m/s².
Declarar \(t\) como una variable simbólica usando el paquete SymPy
, definir después las constantes \(y_0\), \(v_0\) y \(g\), y luego definir la función \(y(t)\) mediante la fórmula dada.
Para dibujar la gráfica de la función, usar la función lines! del paquete Makie
o la función plot
del paquete Plots
, pasándole el nombre de la función. Como no tienen sentido los instantes negativos, ni las posiciones negativas, restringir la ventana de graficación a valores de \(t\) y de \(y\) positivos usando los parámetros xlim
e ylim
.
using GLMakie, SymPy
@syms t #Declaramos t como una variable simbólica
= 5
y₀ = 10
v₀ const gravedad = -9.8 #Declaramos la gravedad como una constante
y0(t) = y₀+v₀*t+ 1/2*gravedad*t^2
= Figure()
fig = Axis(fig[1,1], limits=(0, 3, 0, 15), xlabel="Tiempo (s)", ylabel="Altura (m)")
ax lines!(ax, 0..3, y0, label="Pelota")
Makie. fig
using Plots, SymPy
@syms t #Declaramos t como una variable simbólica
= 5
y₀ = 10
v₀ const gravedad = -9.8 #Declaramos la gravedad como una constante
y0(t) = y₀+v₀*t+ 1/2*gravedad*t^2
plot(y0, xlims=(0,3), ylims=(0,15), label="Pelota", xlab="Tiempo (s)", ylab="Altura (m)") Plots.
Al mismo tiempo que se lanza la pelota, un ascensor exterior baja por la fachada del mismo edificio desde una altura de \(8\) m con una velocidad constante de \(2\) m/s. Dibujar la gráfica de la posición del ascensor junto a la gráfica de la pelota.
La función que define la posición del ascensor que baja desde una altura \(y_1\) con una velocidad constante \(v_1\) en cada instante \(t\) es \(y(t) = y_1-v_1t\).
= 8
y₁ = 2
v₁ y1(t) = y₁-v₁*t
lines!(ax, 0..3, y1, label="Ascensor")
Makie.axislegend()
fig
= 8
y₁ = 2
v₁ y1(t) = y₁-v₁*t
plot!(y1, label="Ascensor") Plots.
¿En qué instantes el ascensor estará a la misma altura de la pelota? Dibujar los puntos correspondientes a esos instantes en la gráfica anterior.
= float(solve(y0(t)-y1(t)))
sol scatter!(ax, sol, y1.(sol), color = :red, label="Intersección")
Makie. fig
= solve(y0(t)-y1(t))
sol print("Instantes: ", sol)
scatter!(sol, y1.(sol), label="Intersección") Plots.
Instantes: Sym{PyCall.PyObject}[0.282613815574341, 2.16636577626239]
Ejercicio 3.3 El volumen de un globo esférico depende del radio según la función \(v(r)= \frac{4}{3}\pi r^3\). Calcular la función que expresa el radio en función del volumen y dibujar su gráfica.
Declarar las variables simbólicas r
y v
usando el paquete SymPy
y definir la función vol(r)
que expresa el volumen del globo en función del radio.
Después utilizar la función solve
del paquete SymPy
para despejar r
de la ecuación v-vol(r)=0
.
using GLMakie, SymPy
@syms r v
vol(r) = 4/3*pi*r^3
= lambdify(solve(v-vol(r),r)[1])
rad = Figure()
fig = Axis(fig[1,1], xlabel="Volumen (m³)", ylabel="Radio (m)")
ax lines!(ax, 0..10, rad)
Makie. fig
using Plots, SymPy
@syms r v
vol(r) = 4/3*pi*r^3
= solve(v-vol(r),r)[1]
rad2 plot(rad2, xlim=(0,10), xlab="Volumen (m³)", ylab="Radio (m)", legend=false) Plots.
Si empezamos a introducir helio en el globo de manera que su volumen a los \(t\) minutos viene dado por la función \(v(t)=t^2+2t\), dibujar la gráfica de la función que da el radio en cada instante.
Declarar las variables simbólicas t
usando el paquete SymPy
y definir la función vol(t)
que expresa el volumen del globo en función del tiempo.
Después utilizar a el operador de composición \(\circ\) para componer la función del volumen con la función del radio.
using GLMakie
vol(t)=t^2+2t
= Figure()
fig = Axis(fig[1,1], xlabel = "Tiempo (min)", ylabel = "Radio (m)")
ax lines!(ax, 0..10, rad∘vol)
Makie. fig
using Plots, SymPy
@syms t
vol(t)=t^2+2t
plot(rad2∘vol, xlim = (0,10), xlab = "Tiempo (min)", ylab = "Radio (m)", legend = false) Plots.
Si el globo explota cuando el radio alcanza los 3 m, ¿cuándo explotará el globo?
= solve((rad∘vol)(t)-3) sol
2-element Vector{Sym{PyCall.PyObject}}:
-11.6816354332674
9.68163543326738
El globo explotará a los 9.68163543326738 minutos.
Ejercicio 3.4 Dibujar la gráfica de la función
\[ f(x) = 2x^3-3x^2-12x+4 \]
en el intervalo \([-3,4]\) y determinar, observando la gráfica, lo siguiente:
using GLMakie
f(x) = 2x^3-3x^2-12x+4
= Figure()
fig = Axis(fig[1,1])
ax lines!(ax, -3..4, f, label = L"$f(x) = 2x^3-3x^2-12x+4$")
Makie.()
axislegend fig
using Plots, LaTeXStrings
f(x) = 2x^3-3x^2-12x+4
plot(f, -3, 4, label=L"$f(x) = 2x^3-3x^2-12x+4$") Plots.
- Dominio
\(\operatorname{Dom}(f)=\mathbb{R}\)
- Imagen
\(\operatorname{Im}(f)=\mathbb{R}\)
- Raíces
using SymPy
@syms x
f(x) = 2x^3-3x^2-12x+4
= solve(f(x)) # Solución exacta
raices print(raices)
N(raices) # Solución aproximada con decimales
Sym{PyCall.PyObject}[-2, 7/4 - sqrt(33)/4, sqrt(33)/4 + 7/4]
3-element Vector{Sym{PyCall.PyObject}}:
-2
7/4 - sqrt(33)/4
sqrt(33)/4 + 7/4
Hay tres raíces en \(x=-2\), \(x=0.31\) y \(x=3.19\) aproximadamente.
- Signo
Intervalos con \(f(x)\) negativa: \((-\infty, -2)\cup (0.31,3.19)\).
Intervalos con \(f(x)\) positiva: \((-2,0.31)\cup (3.19,\infty)\).
- Crecimiento
Intervalos con \(f(x)\) creciente: \((-\infty, -1)\cup (2,\infty)\).
Intervalos con \(f(x)\) decreciente: \((-1,2)\).
- Extremos
Máximo relativo en \(x=-1\) y el valor máximo es \(f(-1)=11\).
Mínimo relativo en \(x=2\) y el valor del mínimo es \(f(2)=-16\).
- Concavidad
Intervalos de concavidad hacia arriba: \((0.5,\infty)\).
Intervalos de concavidad hacia abajo: \((-\infty, 0.5)\).
- Puntos de inflexión
Punto de inflexión en \(x=0.5\).
Ejercicio 3.5 Dibujar la gráfica de la función
\[ g(t) = \frac{t^4+19t^2-5}{t^4+9t^2-10} \]
en el intervalo \([-8,8]\) y determinar, observando la gráfica, lo siguiente:
Usar la función lines
del paquete Makie
, o la función plot
del paquete Plots
con el parámetro aspect_ratio=1.0
para que los ejes tengan la misma escala.
Para respetar las discontinuidades autilizar la función rangeclamp()
del paquete MTH229
.
using GLMakie
g(t) = (t^4+19t^2-5) / (t^4+9t^2-10)
= Figure()
fig = Axis(fig[1,1])
ax lines!(ax, -8..8, rangeclamp(g), label = L"$g(t) = \frac{t^4+19t^2-5}{t^4+9t^2-10}$")
Makie.()
axislegend fig
using Plots
g(t) = (t^4+19t^2-5) / (t^4+9t^2-10)
plot(rangeclamp(g), -8, 8, aspect_ratio=1.0, ylims=(-5,5) , xticks =Vector(-10:10), yticks = Vector(-5:5), label=L"$g(t) = \frac{t^4+19t^2-5}{t^4+9t^2-10}$") Plots.
- Dominio. ¿Qué pasa si aplicamos la función a algún valor fuera de su dominio?
\(\operatorname{Dom}(f)=\mathbb{R}\setminus\{-1,1\}\)
g(-1), g(1)
(Inf, Inf)
Como se observa, al aplicar la función a \(-1\) y \(1\) se obtiene \(\infty\).
- Imagen
\(\operatorname{Im}(f)=\mathbb{R}\setminus (0.5,1]\)
- Asíntotas. Dibujarlas.
= Makie.vlines!(ax, [-1,1], color = :red)
av = Makie.hlines!([1], color = :green)
ah axislegend(ax, [av, ah], ["Asíntotas verticales", "Asíntotas Horizontales"], position = :rb)
fig
vline!([-1,1], label="Asíntotas verticales")
Plots.hline!([1], label="Asíntotas horizontales", legend=:bottomright) Plots.
Asíntotas verticales en \(x=-1\) y \(x=1\).
Asíntotas horizontales en \(y=1\).
No hay asíntotas oblicuas.
- Raíces
Hay dos raíces en \(x=-0.5\) y \(x=0.5\) aproximadamente.
- Signo
Intervalos con \(f(x)\) positiva: \((-\infty,-1)\cup (-0.5,0.5)\cup (1,\infty)\).
Intervalos con \(f(x)\) negativa: \((-1,-0.5)\cup (0.5,1)\).
- Crecimiento
Intervalos con \(f(x)\) creciente: \((-\infty, -1)\cup (-1,0)\).
Intervalos con \(f(x)\) decreciente: \((0,1)\cup (1,\infty)\).
- Extremos
Máximo relativo en \(x=0\) y el valor máximo es \(g(0)=0.5\).
No hay mínimos relativos.
- Concavidad
Intervalos de concavidad hacia arriba: \((-\infty,-1)\cup (1,\infty)\).
Intervalos de concavidad hacia abajo: \((-1,1)\).
- Puntos de inflexión
No hay puntos de inflexión.
Ejercicio 3.6 Dibujar la gráficas de las siguientes funciones exponenciales \(2^x\), \(e^x\), \(0.5^x\), \(0.7^x\) y responder a las siguientes preguntas comparando las gráficas.
using GLMakie
= Figure()
fig = Axis(fig[1,1])
ax lines!(ax, -2..2, x -> 2^x, label=L"$2^x$")
Makie..lines!(ax, -2..2, exp, label=L"$e^x$")
Makielines!(ax, -2..2, x -> 0.5^x, label=L"$0.5^x$")
Makie..lines!(ax, -2..2, x -> 0.7^x, label=L"$0.7^x$")
Makieaxislegend(position = :lt)
fig
using Plots, LaTeXStrings
plot(2^x, -2, 2, label=L"$2^x$")
Plots..plot!(exp(x), label=L"$e^x$")
Plotsplot!(0.5^x, label=L"$2^x$")
Plots..plot!(0.7^x, label=L"$2^x$") Plots
- ¿Cuál es el dominio de una función exponencial?
\(\mathbb{R}\).
- ¿Cuál es la imagen de una función exponencial?
\(\mathbb{R}^+\).
- ¿Cómo es el crecimiento de una función exponencial?
\(a^x\) es creciente si \(a>1\) y decreciente si \(0<a<1\).
- ¿Tienen extremos una función exponencial?
No
- ¿Cómo es la curvatura de una función exponencial?
Es cóncava hacia arriba.
Ejercicio 3.7 Dibujar la gráficas de las funciones trigonométricas \(\operatorname{sen}(x)\), \(\operatorname{sen}(x+2)\), \(\operatorname{sen}(x)+2\), \(\operatorname{sen}(2x)\) y \(2\operatorname{sen}(x)\), y completar la siguiente tabla estudiando su periodo y amplitud.
Función | Periodo | Amplitud |
---|---|---|
\(\operatorname{sen}(x)\) | ||
\(\operatorname{sen}(x+2)\) | ||
\(\operatorname{sen}(x)+2\) | ||
\(\operatorname{sen}(2x)\) | ||
\(2\operatorname{sen}(x)\) |
¿Qué conclusiones sacas?
El periodo es el mínimo intervalo en el que la gráfica de la función se repite, y la amplitud es la mitad de la diferencia entre el máximo y el mínimo de la función.
using GLMakie
= Figure()
fig = Axis(fig[1,1])
ax lines!(ax, -2pi..2pi, x -> sin(x+2), label=L"$\sin(x+2)$")
Makie..lines!(ax, -2pi..2pi, x -> sin(x)+2, label=L"$\sin(x)+2$")
Makielines!(ax, -2pi..2pi, x -> sin(2x), label=L"$\sin(2x)$")
Makie..lines!(ax, -2pi..2pi, x -> 2sin(x), label=L"$2\sin(x)$")
Makieaxislegend()
fig
using Plots, LaTeXStrings
plot(sin(x), -2*pi, 2*pi, label=L"$\operatorname{sen}(x)$")
Plots..plot!(sin(x+2), label=L"$\operatorname{sen}(x+2)$")
Plotsplot!(sin(x)+2, label=L"$\operatorname{sen}(x)+2$")
Plots..plot!(sin(2x), label=L"$\operatorname{sen}(2x)$")
Plotsplot!(2sin(x), label=L"$2\operatorname{sen}(x)$") Plots.
Función | Periodo | Amplitud |
---|---|---|
\(\operatorname{sen}(x)\) | \(2\pi\) | 1 |
\(\operatorname{sen}(x+2)\) | \(2\pi\) | 1 |
\(\operatorname{sen}(x)+2\) | \(2\pi\) | 1 |
\(\operatorname{sen}(2x)\) | \(\pi\) | 1 |
\(2\operatorname{sen}(x)\) | \(2\pi\) | 2 |
Se observa que al sumar una constante a la función seno o a su argumento, el periodo y la amplitud no cambian. Sin embargo, si se multiplica por una constante el seno, cambia la amplitud, y si se multiplica su argumento, cambia el periodo.
Ejercicio 3.8 Dibujar la gráfica de la función a trozos
\[ h(x)= \begin{cases} -2x & \mbox{si } x\leq 0;\\ x^2 & \mbox{si } 0< x \leq 2;\\ 4 & \mbox{si } 2< x \end{cases} \]
Usar el operador condicional anidado.
using GLMakie
h(x) = x<=0 ? -2x : x<=2 ? x^2 : 4
lines(-5..5, h) Makie.
using Plots
h(x) = x<=0 ? -2x : x<=2 ? x^2 : 4
plot(h, legend = false) Plots.
Ejercicio 3.9 Una hormiga se mueve sobre el plano real de manera que en cada instante \(t\) su posición viene dada por las funciones
\[ \begin{cases} x=\operatorname{sen}(t) \\ y=\operatorname{sen}(2t) \end{cases} \]
Dibujar la gráfica de la trayectoria de la hormiga.
using GLMakie
u1(t)=sin(t)
v1(t)=sin(2t)
= range(0, 4pi, 200)
ts lines(u1.(ts), v1.(ts)) Makie.
using Plots
u1(t)=sin(t)
v1(t)=sin(2t)
plot(u1, v1, 0, 4pi, aspect_ratio=1.0, legend = false) Plots.
3.2 Ejercicios propuestos
Ejercicio 3.10 ¿Cuáles de las siguientes funciones tienen dominio \(\mathbb{R}\) e imagen \(\mathbb{R}^+\cup\{0\}\)?
Ejercicio 3.11 Dibujar las gráficas de las funciones logarítmicas \(\ln(x)\), \(\log_2(x)\) y \(\log_{0.5}(x)\) y contestar a las siguientes preguntas.
- ¿Cuál es el dominio de una función logarítmica?
- ¿Cuál es la imagen de una función logarítmica?
- ¿Cómo es el crecimiento la función logarítmica \(\log_a(x)\)?
- ¿Cómo es la concavidad la función logarítmica \(\log_a(x)\)?
Ejercicio 3.12 ¿Cuál es el periodo y la amplitud de la función \(2\cos(x/2)\)?
Ejercicio 3.13 ¿Cuál de las gráficas corresponde a la siguiente función paramétrica?
\[ f(t)= \begin{cases} \operatorname{sen}(2t)-\cos(t) \\ \operatorname{sen}(t)+\cos(t) \end{cases} \]