Solución y graficación del modelo alterno para espejos parabólicos
Analiza el siguiente código y contesta el cuestionario
Resolvemos la ED con sagemath
Vamos a resolver la ecuación diferencial \( \displaystyle \frac{du}{\sqrt{1+u^{2}}} = \frac{dx}{x} \) que modela la curvatura de un espejo parabólico, usando sagemath, para eso completa los siguientes códigos:
Agrega la ED que buscamos resolver tomando en cuenta que en sagemath la tienes que ingresar de ésta forma:
\(\displaystyle \frac{du/dx}{\sqrt{1+u^{2}}}=\frac{1}{x}\)
# Ejemplo
reset() # Reinicia el estado de Sage, limpiando variables, funciones y entornos previos
x = var('x') # Declara x como variable simbólica
u = function('u')(x) # Declara u como una función simbólica de x, es decir u = u(x)
# Definimos la ecuación diferencial:
# diff(u,x) representa la derivada de u con respecto a x.
# sqrt(1+u^2) es la raíz cuadrada de (1 + u^2).
# La ecuación se establece como: (du/dx)/sqrt(1+u^2) = 1/x
DE = ...
assume(x>0) # Establece la suposición de que x > 0, lo cual puede ayudar en la resolución
# Resolvemos la ecuación diferencial usando la función desolve:
soln = desolve(DE, u)
# Mostramos la solución
soln
Pega en la siguiente celda el código de arriba y completa la definición de la ecuación diferencial, es decir, sustituye los 3 puntos acá DE = ...
, por la ecuación diferencial.
Despejamos \(\displaystyle u(x)\) y regresamos a las variables originales \(\displaystyle y(x) = …\)
La idea ahora es despejar \(\displaystyle u(x)\), como ya sabemos.
La funciónsolve
de sagemath tiene la configuración: solve(ecuación, variable a despejar)
, completa el siguiente fragmento de código, utilizando la ecuación solución anterior.
Posteriormente regresamos a las variables originales: \(\displaystyle u = \frac{y}{x}\), es decir: \(\displaystyle y = ux\)
# Supongamos que tu DE es algo así:
# desolve(ecuacion, u, ics=[...])
# Luego obtendrías una expresión para arcsinh(u(x)):
# arcsinh(u(x)) == _C + log(x)
# IMPORTANTE, escríbela así:
# arcsinh(u) == log(C) + log(x)
# Para aislar u, utiliza solve:
var('u, x, C')
S1 = solve(...)
S = S1[0].full_simplify()
show(S)
# Sustituimos de regreso: u = y/x --> y = ux
y = S.rhs()*x
print('\ny= ')
show(y.expand())
Pega en la siguiente celda el código de arriba y completalo.
Gráfica de la función resultante \(\displaystyle y(x)\)
# Gráfica
C = var('C')
y(x) = ...
P = Graphics()
k = 1
P += plot(y(x).substitute(C == k), (x, -1, 1), color='blue', legend_label='$y(x)$')
P.show(ymin=-1,ymax=1,axes_labels=['$x$','$y(x)$'], legend_loc="upper right")
Pega en la siguiente celda el código de arriba y completa la definición de la función solución, es decir, sustituye los 3 puntos acá y(x) = ...
, por la función solución que obtuviste en el paso anteriorl.