import numpy as np
import matplotlib.pyplot as plt
# 定義引數
zeta = 0.1 # 阻尼比減小,以實現更慢的衰減
omega_n = 1.0 # 自然頻率
omega_d = omega_n * np.sqrt(1 - zeta**2) # 阻尼頻率
varphi = np.pi / 4 # 相位角
# 定義時間變數
t = np.linspace(0, 20, 2000) # 從0到20秒,2000個點,增加週期
# 計算函式值
a = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2))
b = np.sin(omega_d * t + varphi)
c = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2)) * np.sin(omega_d * t + varphi)
# 繪製影像
plt.figure(figsize=(15, 5)) # 設定整個影像的大小
# 繪製(a)部分
plt.subplot(1, 3, 1) # 1行3列的第1個
plt.plot(t, a)
plt.title(r'(a) $e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
# 繪製(b)部分
plt.subplot(1, 3, 2) # 1行3列的第2個
plt.plot(t, b)
plt.title(r'(b) $\sin(\omega_{d} t+\varphi)$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
# 繪製(c)部分
plt.subplot(1, 3, 3) # 1行3列的第3個
plt.plot(t, c, label='Damped Sine Wave')
plt.plot(t, a, label='Envelope', linestyle='--') # 繪製包絡線
plt.title(r'(c) $e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}\sin(\omega_{d} t+\varphi)$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.legend()
plt.grid(True)
# 顯示影像
plt.tight_layout() # 調整子圖間距
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 定義引數
zeta = 0.5 # 阻尼比
omega_n = 1.0 # 自然頻率
omega_d = omega_n * np.sqrt(1 - zeta**2) # 阻尼頻率
varphi = np.pi / 4 # 相位角
# 定義時間變數
t = np.linspace(0, 10, 1000) # 從0到10秒,1000個點
# 計算函式值
a = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2))
b = np.sin(omega_d * t + varphi)
c = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2)) * np.sin(omega_d * t + varphi)
# 繪製影像
plt.figure(figsize=(10, 6))
# 繪製(a)部分
plt.subplot(3, 1, 1)
plt.plot(t, a)
plt.title(r'(a) $e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}$') # 使用r字首來表示原始字串
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
# 繪製(b)部分
plt.subplot(3, 1, 2)
plt.plot(t, b)
plt.title(r'(b) $\sin(\omega_{d} t+\varphi)$') # 使用r字首來表示原始字串
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
# 繪製(c)部分
plt.subplot(3, 1, 3)
plt.plot(t, c)
plt.title(r'(c) $e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}\sin(\omega_{d} t+\varphi)$') # 使用r字首來表示原始字串
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
# 顯示影像
plt.tight_layout()
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 定義引數
zeta = 0.5 # 阻尼比
omega_n = 1.0 # 自然頻率
omega_d = omega_n * np.sqrt(1 - zeta**2) # 阻尼頻率
varphi = np.pi / 4 # 相位角
# 定義時間變數
t = np.linspace(0, 10, 1000) # 從0到10秒,1000個點
# 計算函式值
a = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2))
b = np.sin(omega_d * t + varphi)
c = np.exp(-zeta * omega_n * t) * np.sqrt(1 / (1 - zeta**2)) * np.sin(omega_d * t + varphi)
# 繪製(a)圖
plt.figure(figsize=(6, 4))
plt.plot(t, a)
plt.title(r'$e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.show()
# 繪製(b)圖
plt.figure(figsize=(6, 4))
plt.plot(t, b)
plt.title(r'$\sin(\omega_{d} t+\varphi)$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.show()
# 繪製(c)圖
plt.figure(figsize=(6, 4))
plt.plot(t, c)
plt.title(r'$e^{-\zeta\omega_{n} t}\sqrt{\frac{1}{1-\zeta^2}}\sin(\omega_{d} t+\varphi)$')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.grid(True)
plt.show()