Wir betrachten im Folgenden die Darstellung einer Trajektorie der Lösungsfunktionen $x(t), y(t)$ und $z(t)$ in einem drei-dimensionalen $x,y,z$-Koordinatensystem. Die Lösungsfunktionen sollen dabei als numerische Zahlenwerte der Lösung eines gekoppelten Systems von Differentialgleichungen erster Ordnung gegeben sein.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
In unserem Beispiel-Fall generieren wir die Beispiel-Zahlenwerte der Lösung zunächst. Es soll dabei die folgende Raumkurve betrachtet werden.
\begin{equation} x(t) = \frac{t}{30} \cdot \hbox{sin}\left( t \right) \, , \quad y(t) = \frac{t}{30} \cdot \hbox{sin}\left( t \right) \, , \quad z(t) = \frac{t}{50} \quad \forall \, t \in [0,50] \end{equation}t_end = 50
N = 10000
t_val = np.linspace(0, t_end, N+1)
x = t_val*np.sin(t_val)/30
y = t_val*np.cos(t_val)/30
z = t_val/t_end
Wir stellen als Erstes die zeitliche Entwicklung der Funktionen $x(t) \, , \,\, y(t) \, , \,\, z(t)$ selbst dar.
params = {
'figure.figsize' : [11,5],
# 'text.usetex' : True,
'axes.titlesize' : 14,
'axes.labelsize' : 16,
'xtick.labelsize' : 14 ,
'ytick.labelsize' : 14
}
matplotlib.rcParams.update(params)
plt.xlabel("t")
plt.ylabel("x,y,z")
plt.plot(t_val, x,c="blue", label="x");
plt.plot(t_val, y,c="green", label="y");
plt.plot(t_val, z,c="red", label="z");
plt.legend(loc='upper right',fontsize=16);
Die Trajektorie der Lösungsfunktionen $x(t), y(t)$ und $z(t)$ in einem drei-dimensionalen $x,y,z$-Koordinatensystem sieht wie folgt aus, wobei die Farbe den aktuellen Zeitwert kennzeichnet.
fig = plt.figure(figsize = (16, 9))
ax = fig.add_subplot(projection='3d')
bild = ax.scatter3D(x,y,z, marker='o', s=1, c = t_val, cmap=cm.gnuplot2)
ax.view_init(azim=-75, elev=20)
cbar = fig.colorbar(bild, shrink=0.6, aspect=15)
cbar.set_label(r"$\rm t$", rotation=270)
plt.title("Raumkurve")
ax.set_xlabel(r"$\rm x(t)$")
ax.set_ylabel(r"$\rm y(t)$")
ax.set_zlabel(r"$\rm z(t)$");