반응형
import matplotlib.pyplot as plt
import numpy as np
# 밀도 계산 함수
def simp_density(x, p):
return x ** p
# 디자인 변수
x = np.linspace(0, 1, 100)
# 페널티 팩터 값
penalization_factors = [1, 2, 3, 4]
colors = ['blue', 'orange', 'red', 'green']
# 그래프 그리기
plt.figure(figsize=(10, 6))
for p, color in zip(penalization_factors, colors):
density = simp_density(x, p)
plt.plot(x, density, label=f'p = {p}', color=color)
# 끝점 강조
plt.scatter([0, 1], [0, 1], color='black', s=100, zorder=5)
# x축과 y축 레이블 크기 키우기
plt.xlabel(r'$\rho (e)$', fontsize=20)
plt.ylabel(r'$\frac{E(\rho_e)}{E_0}$', fontsize=20)
plt.title('Effect of Penalization Factors in SIMP Method on Material Density', fontsize=16)
plt.legend()
plt.grid(True)
# x축과 y축 눈금을 간단하게 설정
plt.xticks(np.linspace(0, 1, 6), [f'{i/5:.1f}' for i in range(6)])
plt.yticks(np.linspace(0, 1, 6), [f'{i/5:.1f}' for i in range(6)])
# 그래프 출력
plt.show()
반응형
댓글