Решить дифференциальное уравнение пружинного маятника:
a = — k/m x
с помощью электронно-вычислительной машины.
Python-программа:
m = 1.5 x = 5.e-2 k = 2. t = 0. v = 0. dt = 0.001 while t < 2.*3.14*(m/k)**0.5: print(t, x, v) t = t + dt x = x + v*dt v = v - k/m*x*dt
график положения грузика:
график скорости грузика:
Добавим силу трения:
g = 9.8 mu = 0.0003 m = 3. k = 2. def sign(arg): if arg>0: return -1 else: return +1 x = 0.1 v = 0. t = 0. dt = 0.001 t_ = [t] x_ = [x] while t < 25.: t = t + dt x = x + v*dt v = v - k/m*x*dt + sign(v)*mu*g*dt t_.append(t) x_.append(x) import matplotlib.pyplot as plt plt.plot(t_,x_) plt.show()