import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import quad
R=8.314
theta_e=428
theta_d=428
T=np.linspace(1,500,500)
def dulong_petit(T):
return np.full_like(T,3*R)
def einstien_model(T,theta_e):
x=theta_e/T
return 3*R*(x**2*np.exp(x))/((np.exp(x)-1)**2)
def debye_integral(x):
return (x**4*np.exp(x))/((np.exp(x)-1)**2)
def debye_model(T, theta_d):
CV=[]
for temp in T:
x_D=theta_d/temp
integral,_=quad(debye_integral,0,x_D)
CV.append(9*R*(temp/theta_d)**3*integral)
return np.array(CV)
cv_dulong=dulong_petit(T)
cv_einstien=einstien_model(T,theta_e)
cv_debye=debye_model(T, theta_d)
plt.figure(figsize=(10,6))
plt.plot(T,cv_dulong, label='Dulong Petit')
plt.plot(T,cv_einstien, label='Einstien')
plt.plot(T,cv_debye, label='Debye')
plt.xlabel('Temperature (K)')
plt.ylabel('Specific heat (J/mol.K)')
plt.legend()
plt.grid(True)
plt.show()
aW1wb3J0IG51bXB5IGFzIG5wCmltcG9ydCBtYXRwbG90bGliLnB5cGxvdCBhcyBwbHQKZnJvbSBzY2lweS5pbnRlZ3JhdGUgaW1wb3J0IHF1YWQKClI9OC4zMTQKdGhldGFfZT00MjgKdGhldGFfZD00MjgKClQ9bnAubGluc3BhY2UoMSw1MDAsNTAwKQoKZGVmIGR1bG9uZ19wZXRpdChUKToKCXJldHVybiBucC5mdWxsX2xpa2UoVCwzKlIpCgkKZGVmIGVpbnN0aWVuX21vZGVsKFQsdGhldGFfZSk6Cgl4PXRoZXRhX2UvVAoJcmV0dXJuIDMqUiooeCoqMipucC5leHAoeCkpLygobnAuZXhwKHgpLTEpKioyKQoJCmRlZiBkZWJ5ZV9pbnRlZ3JhbCh4KToKCXJldHVybiAoeCoqNCpucC5leHAoeCkpLygobnAuZXhwKHgpLTEpKioyKQoJCmRlZiBkZWJ5ZV9tb2RlbChULCB0aGV0YV9kKToKCUNWPVtdCglmb3IgdGVtcCBpbiBUOgoJCXhfRD10aGV0YV9kL3RlbXAKCQlpbnRlZ3JhbCxfPXF1YWQoZGVieWVfaW50ZWdyYWwsMCx4X0QpCgkJQ1YuYXBwZW5kKDkqUioodGVtcC90aGV0YV9kKSoqMyppbnRlZ3JhbCkKCXJldHVybiBucC5hcnJheShDVikKCQoJCmN2X2R1bG9uZz1kdWxvbmdfcGV0aXQoVCkKY3ZfZWluc3RpZW49ZWluc3RpZW5fbW9kZWwoVCx0aGV0YV9lKQpjdl9kZWJ5ZT1kZWJ5ZV9tb2RlbChULCB0aGV0YV9kKQoKcGx0LmZpZ3VyZShmaWdzaXplPSgxMCw2KSkKcGx0LnBsb3QoVCxjdl9kdWxvbmcsIGxhYmVsPSdEdWxvbmcgUGV0aXQnKQpwbHQucGxvdChULGN2X2VpbnN0aWVuLCBsYWJlbD0nRWluc3RpZW4nKQpwbHQucGxvdChULGN2X2RlYnllLCBsYWJlbD0nRGVieWUnKQpwbHQueGxhYmVsKCdUZW1wZXJhdHVyZSAoSyknKQpwbHQueWxhYmVsKCdTcGVjaWZpYyBoZWF0IChKL21vbC5LKScpCnBsdC5sZWdlbmQoKQpwbHQuZ3JpZChUcnVlKQpwbHQuc2hvdygpCg==