只获得黑体曲线的底部而不是整体功能

时间:2016-12-05 21:33:05

标签: math matplotlib plot graph physics

我试图在T = 2.73处绘制黑体分布,我得到的是曲线但不是完整曲线,只能看到曲线的最底部。有什么建议?这是我的代码:

import matplotlib.pyplot as plt
from numpy import * 
from scipy import *

h=6.62606957e-34
c=2.998e8
k=1.3806488e-23
T = 100

f = arange(0,10000)
E = (8*h/(c**3.0))*(f**3.0)*(1/(exp((h*f)/(k*T))-1))

plt.plot(f, E*10000)
plt.title('Black-Body spectrum for T = 2.725K')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Energy Density (f)')
plt.show()

1 个答案:

答案 0 :(得分:0)

使用类似

的内容
x = linspace(0,12,1501)
f = 10**x
eterm = exp(-(h*f)/(k*T))
E =  (2*h)/(c**2) * f**3 * eterm/(1-eterm)

我引入了eterm指数项,将指数中的溢出转换为危害较小的下溢。

检查您的来源并与wikipedia on Planck's law进行比较,以获得正确的公式。

您现在也可以使用

plot(x,E)

以对数刻度获取x轴,因为如果x间隔的右端错误,图形将无法正确地压缩到y轴。