Mit Python und Numpy lassen sich Differentialgleichungen mit Hilfe des expliziten Euler-Verfahrens lösen. Der folgende Code ist hierfür ein Beispiel. Er kann im nachfolgenden Repl.it-Fenster direkt ausgeführt werden.
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return (x+1)**(-2) * np.sin(2*np.pi*x)
startwert = 1
def euler(x, y0, fx):
'''Numerische Lösung einer Differentialgleichung.
x ist ein Array der Stützstellen.
y0 ist die Anfangsbedingung.
fx ist die Funktion f(x).'''
N = len(x)-1
y = np.zeros(N+1)
y[0] = y0
dy = fx(x) # Ableitungen von y an Stellen x_k
h = (x[len(x)-1] - x[0])/N
for k in range(N):
y[k+1] = y[k] + h*dy[k]
return y
fig, ax = plt.subplots()
for n in [1000, 200, 50, 20]:
x = np.linspace(0, 5, n+1)
y = euler(x, startwert, f)
ax.plot(x, y, label='N='+str(n))
ax.set_xlabel('x')
ax.set_ylabel('y(x)')
ax.set_title("Eulerverfahren")
ax.legend()
plt.show()

