#!/usr/bin/python3 # Euler's method (explicit variant) import numpy as np import matplotlib.pyplot as plt def f(x, t): return -x**3 + np.sin(t) a, b, = 0.0, 10.0 # interval N = 1000 # number of points h = (b - a) / N # increment x = 0.0 # initial condition tpoints = np.linspace(a, b, N+1) xpoints = [] for t in tpoints: xpoints.append(x) x += h * f(x, t) plt.xlabel("t") plt.ylabel("x(t)") plt.plot(tpoints, xpoints) plt.show()