Рассмотрим закон сохранения энергии на примере задачи свободного падения тела. Работа есть произведение приложенного усилия на видимые изменения. В случае свободного падения вблизи поверхности Земли приложенная сила — величина постоянная = m*g, а результат работы — изменение высоты тела — h. При подъёме тела совершаемая работа сохраняется в потенциальной энергии = m*g*h. При свободном падении потенциальная энергия переходит в кинетическую = m*v2/2. Составим программу расчёта свободного падения на основе закона сохранения энергии:
g = 9.8 m = 1. h = 100. e_p = m*g*h v = 0. e_k = m*v**2./2. t = 0. dA = e_p/1000. t_ = [t] h_ = [h] v_ = [v] while h>0.: e_p = e_p - dA e_k = e_k + dA h_new = e_p/m/g v_new = (e_k/m*2.)**0.5 dt = (h-h_new)/(v+v_new)*2. t = t + dt h = h_new v = v_new t_.append(t) h_.append(h) v_.append(v) import matplotlib.pyplot as plt plt.plot(t_,h_,'red') plt.twinx() plt.plot(t_,v_,'blue') plt.show()
В этой программе закон сохранения энергии заключён в двух первых строчках цикла, где малая порция работы dA отнимается из потенциальной энергии и добавляется в кинетическую. На основе закона сохранения энергии можно определить скорость для любого положения тела, время для этого не требуется. Время мы восстанавливаем отдельно в следующих строчках, его точность зависит от величины порции работы и на рисунке строим две зависимости: высоты и скорости от времени.