Está en la página 1de 3

UNIVERSIDAD NACIONAL DE COLOMBIA

Ecuaciones diferenciales
Diego Alejandro Ardila Cely
Marzo 2023

1 Ecuación propuesta
Nota: Sacada del libro de Naglex.
Se pide resolver la ecuación diferencial de primer orden con problema de valor inicial y hallar
su solución exacta:
dy π
sen(x) + ycos(x) = xsen(x), y( ) = 2 (1)
dx 2
Desarrollando obtenemos:

sen(x) dy ycos(x) xsen(x)


+ = (2)
sen(x) dx sen(x) sen(x)
dy
+ ycot(x) = x (3)
dx
R
Cot(x)dx
e = eln(sen(x))+c = sen(x) + c (4)
dy ycos(x)
sen(x) + ∗ sen(x) = xsen(x) (5)
dx sen(x)
d
(sen(x)y) = xsen(x) (6)
dx
Z Z
(sen(x)y)d = (xsen(x))dx (7)

Para la integral del lado derecho hacemos una sustitución: u=x, du=dx, dv=sen(x), v=-cos(x)
Z
sen(x)y = −xcos(x) + cos(x)dx (8)

sen(x)y = −xcos(x) + sen(x) + c (9)


Evaluando en la condición dada:
π π π π
Sen( ) ∗ 2 = − ∗ cos( ) + sen( ) + c, C = 1 (10)
2 2 2 2
Entonces la solución de la ecuación queda:

sen(x) ∗ y = −xcos(x) + sin(x) + c (11)

y = 1 − xcot(x) + csc(x) (12)

1.1 Tomando valores de delta x y comparando con el metodo de Euler.


Se pide que a través de un codigo se compare el metodo de euler, registrando los valores de delta
x para hacer dicha comparación, por lo tanto:

1
(a) Delta x = pi/20

Figure 1: 10 valores de delta x. Comparación.

2 Codigo Python
import numpy as np
import matplotlib.pyplot as plt

Definimos la ecuación diferencial


def f(x, y): return x - y / np.tan(x)

Definimos la solución exacta


def exacts olution(x) : return1 − x/np.tan(x) + 1/np.sin(x)

Definimos la solución aproximada por el método de Euler


def euler(f, x0, y0, h, n):
x = np.zeros(n)
y = np.zeros(n)
x[0] = x0
y[0] = y0
for i in range(n - 1):
y[i + 1] = y[i] + h * f(x[i], y[i])
x[i + 1] = x[i] + h
return x, y

Definimos el tamaño de paso y el intervalo


h = np.pi / 20
x0 = np.pi / 2
xn = 7 * np.pi / 5

Calculamos la solución exacta y la aproximada por el método de Euler


xe xact = np.linspace(x0, xn, 1000)
ye xact = exacts olution(xe xact)
xe uler, ye uler = euler(f, x0, 2, h, 36)

Graficamos la diferencia entre la solución exacta y la de Euler


plt.plot(xe xact, ye xact − exacts olution(xe xact), label =′ Exacta′ )
plt.plot(xe uler, ye uler − exacts olution(xe uler), label =′ Euler′ )
plt.legend()

2
plt.title(′ Dif erenciaentrelasoluciónexactayladeEuler′ )
plt.xlabel(′ x′ )
plt.ylabel(′ ye uler − ye xacta′ )
plt.show()

3 Grafica

(a) Diferencia entre las soluciones

Figure 2: Exacta vs Euler.

La lı́nea azul representa la diferencia entre la solución exacta y la solución de Euler, mientras
que la lı́nea naranja representa la solución exacta.

También podría gustarte