利用python自带的库,直接根据位移的解析表达式求解无阻尼振动

#利用python自带的库,直接根据位移的解析表达式
import math #导入数学模块,属于自带库
import matplotlib.pyplot as plt #导入绘图模块库,是外部库
plt.rcParams['font.sans-serif'] = ['Microsoft Yahei']
plt.rcParams['axes.unicode_minus'] = False #绘图可以中文显示
def SHV_1(m,k,x0,v0): #定义输入参数:质量,刚度,初始位移,初始速度
    omega_n = math.sqrt(k/m)
    freq_n = math.sqrt(k/m)/(2*math.pi)
    x=[]
    t=[]
    for ti in range(0,100,1):   #生成迭代序列,但只能是int型
        ti=ti/10    #把int型序列变成float型
        x_t=x0*math.cos(omega_n*ti)+v0/omega_n*math.sin(omega_n*ti)
        x.append(x_t)
        t.append(ti)
    return x,t
x,t=SHV_1(1,1,0,5)
plt.figure("无阻尼简谐振动",(12,8))
plt.title("单自由度无阻尼简谐振动")
plt.plot(t,x)
plt.xlabel("时间(t)")
plt.ylabel("位移(x)")
plt.xlim(0,10)
plt.grid()
plt.show()

你可能感兴趣的:(Python机械振动,python,matplotlib)