python两个垂直简谐振动动态合成,将该过程做成动态绘制,且写出python代码
时间: 2024-10-29 09:17:47 浏览: 13
在Python中,我们可以使用matplotlib库来创建动态图形,同时结合numpy库进行数值计算。这里是一个简单的例子,展示如何合成两个垂直简谐振动并动态显示。我们将创建两个独立的简谐振动,然后把它们叠加在一起。
```python
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
# 定义常量和振幅
g = 9.81 # 重力加速度
A1 = 0.5
A2 = 1.0
freq1 = 1.0 # 第一个振动的频率
freq2 = 2.0 # 第二个振动的频率
# 创建时间范围
t = np.linspace(0, 10, 1000) # 从0到10秒,每0.01秒取一个点
# 每个振动的位移
y1 = A1 * np.sin(freq1 * 2 * np.pi * t)
y2 = A2 * np.sin(freq2 * 2 * np.pi * t)
# 合成总位移
y_total = y1 + y2
# 初始化figure和轴
fig, ax = plt.subplots()
line, = ax.plot([], [], 'o-r')
def init():
line.set_data([], [])
return line,
def animate(i):
x = t[i]
line.set_data(x, y_total[i])
return line,
# 创建动画
ani = FuncAnimation(fig, animate, frames=len(t), interval=50, blit=True,
init_func=init)
plt.title('Two Vertical Harmonic Oscillations')
plt.xlabel('Time (s)')
plt.ylabel('Displacement (m)')
plt.show()
阅读全文