Ejercicio: 2Eva_2022PAOI_T2 EDO de circuito RLC con interruptor intermedio
La corriente del inductor y(t) para t≥0 se deriva para tener la expresión solo derivadas:
\frac{\delta}{\delta t}y(t) + 2 y(t) + 5 \int_{-\infty}^t y(\tau) \delta \tau = 10 \mu(t)Para t>0 que es donde transcurre el experimento, el escalón es una constante, se tiene que:
\frac{\delta ^2}{\delta t^2}y(t) + 2 \frac{\delta}{\delta t}y(t) + 5 y(t) = 0tomando las condiciones iniciales dadas para t=0, y(0)=2, y'(0)=–4
literal a
EL resultadoes perado es el planteamiento del problema. Se reescribe la ecuación con la nomenclatura simplificada y se resordena segun el modelo del método:
y'' = - 2y' - 5 yluego se sustituye la variable y se convierte a las ecuaciones:
z =y' = f_x(t,y,z) z' = - 2z - 5 y = g_z(t,y,z)se usa una tabla para llevar el registro de operaciones:
Se plantea las operaciones:
K1y = h * f(ti,yi,zi) K1z = h * g(ti,yi,zi) K2y = h * f(ti+h, yi + K1y, zi + K1z) K2z = h * g(ti+h, yi + K1y, zi + K1z) yi = yi + (K1y+K2y)/2 zi = zi + (K1z+K2z)/2 ti = ti + h
literal b
El resultado esperado es la aplicación correcta de los valores en las expresiones para al menos tres iteraciones usando h=0.01
itera = 0
K1y = 0.01 y'(0) = 0.01(-4) = -0.04 K1z = 0.01 (- 2z(0) - 5 y(0)) = 0.01(- 2(-4) - 5 (2)) = -0.02 K2y = 0.01 (-4-0.02) = -0.0402 K2z = 0.01 (-2(-4-0.02)-5(2-0.04)) = -0.0176 yi = yi + \frac{K1y+K2y}{2} = 2+\frac{-0.04-0.0402} {2} = 1.9599 zi = zi + \frac{K1z+K2z}{2} = -4 +\frac{-0.02-0.0176}{2} = -4.0188 ti = ti + h = 0+0.01 = 0.01itera = 1
K1y = 0.01(-4.0188) = -0.040188 K1z = 0.01(- 2(-4.0188) - 5 (1.9599)) = -0.0176 K2y = 0.01 (-4.0188-0.0176) = -0.0403 K2z = 0.01 (-2(-4.0188-0.0176)-5(1.9599-0.040188)) = -0.0152 yi = 1.9599 +\frac{-0.040188-0.0403} {2} = 1.9196 zi = -4.0188 +\frac{-0.0176-0.0152}{2} = -4.0352 ti = ti + h = 0.01+0.01 = 0.02itera = 2
K1y = 0.01(-4.0352) = -0.040352 K1z = 0.01(- 2(-4.0352) - 5 (1.9196)) = -0.0152 K2y = 0.01 (-4.0352-0.0152) = -0.0405 K2z = 0.01 (-2(-4.0352-0.0152)-5(1.9196-0.040352)) = -0.0129 yi = 1.9196 +\frac{-0.040352-0.0405} {2} =1.8792 zi = -4.0352 +\frac{-0.0152-0.0129}{2} = -4.0494 ti = ti + h = 0.02+0.01 = 0.03Resultados con el algoritmo en Python
ti, yi, zi, K1y, K1z, K2y, K2z [[ 0.00 2.0000 -4.0000 0.0000 0.0000 0.0000 0.0000] [ 0.01 1.9599 -4.0188 -0.0400 -0.0200 -0.0402 -0.0176] [ 0.02 1.9196 -4.0352 -0.0401 -0.0176 -0.0403 -0.0152] [ 0.03 1.8792 -4.0494 -0.0403 -0.0152 -0.0405 -0.0129] ...
Literal c
Runge-Kutta 2do Orden tiene error de truncamiento O(h3)
por lo que el error está en el orden de (0.01)3 = 0.000001
Literal d
Se requiere presentar el resultado para el intervalo t entre [0,5]. Siendo el tamaño de paso h=0.01 que es pequeño, se requieren realizar (5-0)/0.01=500 iteraciones, que es más práctico realizarlas usando el algoritmo.
Instrucciones en Python
# Respuesta a entrada cero # solucion para (D^2+ D + 1)y = 0 import numpy as np import matplotlib.pyplot as plt def rungekutta2_fg(f,g,x0,y0,z0,h,muestras): tamano = muestras + 1 estimado = np.zeros(shape=(tamano,7),dtype=float) # incluye el punto [x0,y0] estimado[0] = [x0,y0,z0,0,0,0,0] xi = x0 yi = y0 zi = z0 for i in range(1,tamano,1): K1y = h * f(xi,yi,zi) K1z = h * g(xi,yi,zi) K2y = h * f(xi+h, yi + K1y, zi + K1z) K2z = h * g(xi+h, yi + K1y, zi + K1z) yi = yi + (K1y+K2y)/2 zi = zi + (K1z+K2z)/2 xi = xi + h estimado[i] = [xi,yi,zi,K1y,K1z,K2y,K2z] return(estimado) # PROGRAMA f = lambda t,y,z: z g = lambda t,y,z: -2*z -5*y + 0 t0 = 0 y0 = 2 z0 = -4 h = 0.01 tn = 5 muestras = int((tn-t0)/h) tabla = rungekutta2_fg(f,g,t0,y0,z0,h,muestras) ti = tabla[:,0] yi = tabla[:,1] zi = tabla[:,2] # SALIDA np.set_printoptions(precision=4) print('ti, yi, zi, K1y, K1z, K2y, K2z') print(tabla) # GRAFICA plt.plot(ti,yi, color = 'orange', label='y_RK(t)') plt.ylabel('y(t)') plt.xlabel('t') plt.title('y(t) con Runge-Kutta 2do Orden d2y/dx2 ') plt.legend() plt.grid() plt.show()
Nota: En el curso TELG1001 Señales y Sistemas, la solución se realiza con Transformadas de Laplace