你如何整合普朗克定律让Stefan-Bolzmann使用python?

时间:2017-06-06 18:57:18

标签: python physics sympy

我是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))

但它无法进行整合。我确信我应该做一个简化,但我不知道怎么做。

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 ......)