python画阻尼曲线

阻尼振动的方程是:
x = exp(-at)Acos(bt + phi)
这里exp是以自然对数为底的指数函数,参数a,b,A,phi 是阻尼,劲度系数,滑块质量以及初状态,从键盘输入这四个参数值,画出阻尼曲线。

以下内容引用自GPT,有用望采纳:

当你从键盘输入阻尼振动方程中的参数值,并要求画出阻尼曲线时,你需要按照以下步骤编写Python程序:

  1. 导入所需的库:

    import numpy as np
    import matplotlib.pyplot as plt
    
  2. 从键盘获取输入参数:

    a = float(input("输入阻尼参数 a: "))
    b = float(input("输入劲度系数参数 b: "))
    A = float(input("输入滑块质量参数 A: "))
    phi = float(input("输入初状态参数 phi(角度): "))
    
  3. 创建时间范围并计算阻尼曲线上的点的值:

    t = np.linspace(0, 10, 1000)  # 时间范围从010,总共取1000个点
    x = np.exp(-a*t) * A * np.cos(b*t + np.deg2rad(phi))  # 阻尼曲线方程
    
  4. 绘制阻尼曲线:

    plt.plot(t, x)
    plt.xlabel('时间')
    plt.ylabel('位移')
    plt.title('阻尼振动曲线')
    plt.grid(True)
    plt.show()
    

以下是完整的Python程序:

import numpy as np
import matplotlib.pyplot as plt

a = float(input("输入阻尼参数 a: "))
b = float(input("输入劲度系数参数 b: "))
A = float(input("输入滑块质量参数 A: "))
phi = float(input("输入初状态参数 phi(角度): "))

t = np.linspace(0, 10, 1000)
x = np.exp(-a*t) * A * np.cos(b*t + np.deg2rad(phi))

plt.plot(t, x)
plt.xlabel('时间')
plt.ylabel('位移')
plt.title('阻尼振动曲线')
plt.grid(True)
plt.show()

运行程序后,你将被要求从键盘输入阻尼、劲度系数、滑块质量和初状态参数值。然后程序将绘制相应的阻尼曲线。

希望这个程序能满足你的需求!如果你还有其他疑问,请随时提问。