In [2]:
import numpy as np
from matplotlib import pyplot as plt
%matplotlib inline
In [13]:
# Definir constantes
R = 1
L = 1
C = 1
t = np.linspace(0, 20, 100)
delta = t[1] - t[0]
# Condicoes iniciais
q0 = 1
I0 = 0
def dq(t, q, I):
return I
def dI(t, q, I):
return - (R*I + q/C) / L
In [14]:
q_analytical = np.e**(-t/2) * np.cos(3**.5 * t / 2)
In [20]:
# Método de Euler
q_euler = np.zeros(len(t))
I = np.zeros(len(t))
q_euler[0] = q0
I[0] = I0
for i in range(1, len(t)):
q_euler[i] = q_euler[i-1] + delta * dq(t[i-1], q_euler[i-1], I[i-1])
I[i] = I[i-1] + delta * dI(t[i-1], q_euler[i-1], I[i-1])
In [ ]:
#Metodo de Euler Modificado
q_emod = np.zeros(len(t))
I = np.zeros(len(t))
q_emod[0] = q0
I = I0
for i in range(1, len(t)):
k1 = delta * dq(t[i-1], q_emod[i-1], I[i-1])
l1 = delta * dI(t[i-1], q_emod[i-1], I[i-1])
k2 = delta * dq(t[i-1], )
In [21]:
plt.plot(t, q_analytical)
plt.plot(t, q_euler)
Out[21]:
In [ ]: