движение маятника

Решить дифференциальное уравнение пружинного маятника:

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()