📅  最后修改于: 2023-12-03 15:35:52.049000             🧑  作者: Mango
在物理学中,简谐运动是指在一个势函数相对于最低点的二次项的导数等于负的角度速度的情况下发生的运动。这样的运动可以在许多不同的系统中发生,下面我们来介绍一些执行简谐运动的系统。
弹簧振子是一个简单的执行简谐运动的系统。它由一个固定的支撑点、一个悬挂在支撑点下方的弹性绳和一个悬挂在弹性绳下方的质点组成。当质点向下受力时,弹性绳会向上弹性变形,然后恢复原状,使质点回到初始位置。
# 弹簧振子的运动方程
import numpy as np
import matplotlib.pyplot as plt
def spring_oscillator(x0, v0, k, m, t):
omega = np.sqrt(k / m)
A = np.sqrt(x0**2 + (v0 / omega)**2)
phi = np.arctan2(x0 * omega, v0)
x = A * np.cos(omega * t + phi)
v = -A * omega * np.sin(omega * t + phi)
return x, v
# 弹簧振子的模拟
x0 = 1
v0 = 0
k = 1
m = 1
t = np.linspace(0, 10, 1000)
x, v = spring_oscillator(x0, v0, k, m, t)
plt.plot(t, x, label='position')
plt.plot(t, v, label='velocity')
plt.legend()
plt.show()
单摆是由一个质点悬挂在一个固定支点下方的一根细线上而形成的简谐运动系统。当质点偏离其平衡位置时,重力将使它在细线上摆动,直到摆动停止时回到平衡位置。
# 单摆的运动方程
def pendulum(theta0, omega0, L, g, t):
omega = np.sqrt(g / L)
A = np.sqrt(theta0**2 + (omega0 / omega)**2)
phi = np.arctan2(theta0 * omega, omega0)
theta = A * np.cos(omega * t + phi)
return theta
# 单摆的模拟
theta0 = np.pi / 4
omega0 = 0
L = 1
g = 9.81
t = np.linspace(0, 10, 1000)
theta = pendulum(theta0, omega0, L, g, t)
plt.plot(t, theta, label='angle')
plt.legend()
plt.show()
悬挂质点是另一个简单的执行简谐运动的系统。它由一个细线在一个固定支点上方悬挂的质点组成。当质点受到外力时,它将在细线上振动,直到运动停止时回到平衡位置。
# 悬挂质点的运动方程
def hanging_mass(m, k, L, g, t):
omega = np.sqrt(k / m)
A = L / omega
phi = np.arctan2(0, A)
x = A * np.cos(omega * t + phi)
v = -A * omega * np.sin(omega * t + phi)
return x, v
# 悬挂质点的模拟
m = 1
k = 1
L = 1
g = 9.81
t = np.linspace(0, 10, 1000)
x, v = hanging_mass(m, k, L, g, t)
plt.plot(t, x, label='position')
plt.plot(t, v, label='velocity')
plt.legend()
plt.show()
以上就是几个执行简谐运动的系统的介绍和模拟,在实际物理和工程应用中都有广泛的用途。