我正在尝试使用gnuplot绘制标准黑体曲线(普朗克函数)和Wien近似以匹配一组给定的恒星数据。
数据在0到1.4单位的(任意)y范围内精细绘制。然而,无论我做什么,普朗克和维恩曲线在任何地方都接近0 - 所有点都在1e-27范围内。
我是否可能将函数定义错误,或者gnuplot在我不知情的情况下将非常小的数字设置为零?
这是我正在使用的gnuplot代码:
set title "Planck and Wien functions (blackbody curve)" font "Helvetica,14"; \
set out "ps3g0ivplot.eps"
set xrange ["0":"1.1e4"]; \
#set yrange ["0":"1.4"]; \
set ylabel "Arbitrary flux" font "Helvetica,14"; \
set xlabel "Wavelength (Angstrom)" font "Helvetica,14"; \
set mxtics; \
set mytics; \
#constants
h = 6.62606876e-34 # Planck's constant
c = 2.99792458e8 # speed of light
k = 1.3806503e-23 # Boltzmann's constant
Planck(x,t) = \
(2*h*c*c/x**5)*(exp(-1*h*c/(x*k*t))-1)
Wien(x,t) = \
(2*h*c**2/x**5)*exp((-1*h*c)/(x*k*t))
#set temperature, t
t = 6400 #in Kelvin, to match given star in ps3g0iv.dat
#print Planck(4500, t)
#print Wien(4500, t)
plot \
Wien(x,t) lt 2 lw 3 title "Wien" , \
Planck(x,t) lt 1 lw 3 title "Planck", \
#"ps3g0iv.dat" lt 9 pt 1 pointsize 1 title "ps3g0iv.dat" with lines
quit