'''
Implementação do Método de Euler para EDOs
DOWNLOAD
Luã Jaz
04.04.25
'''
import matplotlib.pyplot as plt
import math
def euler(f, t0: float, T: float, y0: float, n: int):
'''
Toma uma função f tal que y' = f(t,y), um intervalo
de interesse [t_0, T], a condição inicial y(t0) = y0 e o número
de pontos n e realiza o método de Euler neste intervalo discretizado
em n pontos.
'''
x_data = []
y_data = []
# step
h = (T - t0)/n
t = t0
y = y0
x_data.append(t)
y_data.append(y)
for i in range(1, n):
y += h * f(t, y)
x_data.append(t)
y_data.append(y)
t = t0 + i*h
return x_data, y_data
def main():
def f(t, y):
return y*(1-y)
for i in range(81):
x, y = euler(f, 0.1, 10, -2 + 0.05*i, 1000)
plt.plot(x,y)
plt.axis((0, 10, -15, 15))
plt.show()
if __name__ == "__main__":
main()