所以我需要这样做:
为普朗克函数的实验数据定义一个合适的拟合函数“Planck(l,*p)”。该函数基于普朗克公式:
Bλ(T) = (2hc^2/l^5) / (exp(hc/klt) -1)
式中,l是波长集,k是玻尔兹曼常数,h是普朗克常数,c是光速。
我需要在p中有两个拟合参数,一个是T(温度),另一个是比例因子。在
我画出了实验数据和拟合函数aT,我通过试错找到了它的峰值等于数据的峰值,这是我的结果:
很明显,我需要对蓝色函数进行转换,以便它能落在实验数据上,假设是通过比例因子。什么是比例因子?如何使用它将整个图形向右移动5个单位?
这是一个对数图,所以像y=x^2 ==> y=(x-5)^2
这样的东西不起作用。
有什么想法吗?在
我正在使用curve_fit
来拟合数据。在
要获得曲线沿x轴对数图的偏移,可以按常量缩放x轴参数。也就是说,使用
b*L
代替L
,并将b
视为适合的自由参数。在对于这个特殊的问题,通常情况下,人们知道波长的绝对值(虽然我可以想象在没有校准的传感器、移动源等情况下不是这样的情况下),并且对其进行缩放是没有意义的,尤其是超过10倍。如果你知道波长,但仍然得到偏移图,波长的单位可能有误,因为这会导致类似的偏移。这可能不是一个常见的错误,但这可能不是一个常见的转变。在
缩放x轴参数或更改单位都将沿对数轴移动曲线,因为
log(ab) = log(a) + log(b)
。总的来说,尽管x轴上的日志是不必要的混淆,而且似乎您的数据是以线性间距获取的,所以如果您遇到问题,最好在处理日志版本之前先在一个线性轴上绘制这个工作(可能只处理接近峰值的部分)。在但是,将上述内容称为“转移”是令人困惑的,因为这只是图像意义上的转变,而不是配合或功能的改变。相反,用
b*L
代替L
,一个人扭曲了函数,但在某种程度上与对数轴的失真相匹配,所以这只是图片的移动,而不是函数。转换函数的一般方法是在参数中添加一个项,因此f(x)
,因为f(x+c)
,这总是有效的。在最后,原始图形中轴的标记方式令人困惑。例如,我最初把x轴读作“波长(um)”。为了得到一个数字的
log
,这个数字必须是无单位的,因此将轴标记为log(L/1um)
之类的东西会更准确。在相关问题 更多 >
编程相关推荐