首页 > 解决方案 > 需要找到从过零开始的振荡周期

问题描述

我有这个代码,我需要确定零交叉点的振荡周期。任何人都可以帮我一把,好吗?

dt =0.1
N= 600
k=1
q=0.2



 y=np.zeros(N)
vy=np.zeros(N)
y_e=np.zeros(N)
vy_e=np.zeros(N)

y[0] = 1
vy[0] =0
y_e[0] = 1
vy_e[0] =0

for i in range (0,N-1 ):
  vy[i+1]= vy[i]+dt*(-k*y[i])
  y[i+1]= y[i]+dt*vy[i]
zero_crossings = np.where(np.diff(np.signbit(y)))[0]

for z in range (0,N-1 ):
  vy_e[z+1]= vy_e[z]+dt*(-k*y_e[z])
  y_e[z+1]= y_e[z]+dt*vy_e[z+1]
zero_crossings_e = np.where(np.diff(np.signbit(y_e)))[0]



if np.sign(y[i]) != np.sign(y[i+1]):
  print(i)
if np.sign(y_e[z]) != np.sign(y_e[z+1]):
  print(z)



plt.plot(y)
plt.plot(y_e)
plt.show()

从上面的代码中,我需要确定振荡频率以及给定零交叉的周期。提前致谢

标签: pythonphysics

解决方案


推荐阅读