Вы можете использовать numpy
для векторизации вашего кода
Может быть что-то вроде:
# Define time steps
t = np.linspace(0, 1, 100)
# Build v
v = np.empty_like(t)
v[.2 < t] = 20
v[.2 >= t] = 0
# Build f
f = np.empty_like(t)
f[t < 0.2] = 20 * t[t < 0.2]
f[t >= 0.2] = 4
# Plot
plt.plot(t, v)
plt.plot(t, d)
Другой способ построения v
и f
- использование np.piecewise
:
v = np.piecewise(t, [.2 < t, .2 >= t], [20, 0])
f = np.piecewise(t, [t <= .2, t > .2], [lambda x: 20 * x, 4])
Я думаю, np.piecewise
не очень читабелен, но определенно сохраняет некоторые строки кода