我是python的新手,我正试图通过分析整合Plancks法来获得stefan boltzmann定律。到目前为止,我绘制了黑体辐射曲线,但我仍然坚持如何整合它。这是我的功能:
import numpy as np
h=6.626e-34
c=3.0e+8
k=1.38e-23
def planck(x,T):
a=2.0*h*c**2
b=(h*c)/*x*k*T)
intensity= a/( (x**5)*(np.exp(b)-1.0)
return intensity
要整合它,我试着像这样使用SymPy:
from sympy import *
x=Symbol('x')
T=Symbol('T')
integrate((x**3)/(exp(x)-1))
但它无法进行整合。我确信我应该做一个简化,但我不知道怎么做。
答案 0 :(得分:1)
要从Plancks定律到Stefan-Boltzmann定律,您需要在所有频率(1)上进行积分。因此,你需要一个明确的积分:
integrate((x**3)/(exp(x)-1),(x,0,oo))
整合详细here。 Riemann zeta函数可用于同情:
n = symbols('n')
riemann_zeta = functions.special.zeta_functions.zeta(n,1)
但当然不再依赖x了。不幸的是,sympy无法将积分转换为分析表达式:
x = symbols('x', real=True, negative=False)
pprint(simplify(integrate((x**3)/(exp(x)-1),(x,0, oo))))
只会给$ \ int_0 ^ \ infty \ frac {x ^ 3} {e ^ x-1} dx $而不是$ \ zeta(4)\ Gamma(4)= \ frac {\ pi ^ 4} {15} $。 (抱歉LaTeX ......)