import numpy as np
import matplotlib.pyplot as plt
# ----- (1) 좌굴 모드형상 : y = sin(n*pi*x/L) -----
L = 5
x = np.linspace(0, L, 100)
for n in [1, 2, 3]:
y = 1.0*np.sin(n*np.pi*x/L)
plt.plot(y, x, label=f"n = {n}")
plt.legend(); plt.xlabel("변위"); plt.ylabel("높이 x")
plt.show()
# ----- (2) 세장비에 따른 좌굴하중 -----
# Pcr = n^2 pi^2 E A / lambda^2
E = 10000 # 탄성계수
n = 1 # 좌굴 모드
A = 10 # 단면적
lamda = np.linspace(0.1, 0.4, 100)
Pcr = n*np.pi**2*E*A/(lamda**2)
plt.plot(lamda, Pcr)
plt.xlabel("세장비 lambda"); plt.ylabel("좌굴하중 Pcr")
plt.show()