问题是,我有德拜公式,需要用辛普森法则来写一个函数cv(T)来计算给定温度下的Cv。那么Cv = 9*V_p_k_B*(T/theta_D)3 (积分从0到θ_D/T)x_4*ex/ (ex -1)*2,对于这个积分,如何用辛普森方法建立一个函数来求积分?这个公式的积分是θ_D/T的0。
这是我到目前为止所拥有的
from __future__ import division, print_function
from math import e
import numpy as np
# constants
V = 1000 # cm**3 of solid aluminum
p = 6.022*10**28 # number density in m**-3
k_b = 1.380*10**-23 # Boltzmann's constant in J*K**-1
theta_D = 428 # Debye temperature in K
N = 50 # sample points
def cV(T):
return 9*V*p*k_b*(T / theta_D)**3 * (x**4 * e**x / (e**x - 1)**2)
def debye(T, a, b, N):发布于 2015-03-17 15:46:09
如果这是一个家庭作业问题,您应该将它标记为这样,并为您的函数debye提供您尝试的代码。如果这是现实生活,那么使用scipy.integrate.quad可能比滚动自己的更好:
from scipy.integrate import quad
def debye(T, a, b):
return quad(cV, a, b)[0]不需要给出求积点的数目:quad为您处理这个问题。请注意,您应该将integrand函数cV定义为x函数,而不是T函数。
https://stackoverflow.com/questions/29103223
复制相似问题