所以我需要这样做:
对Planck函数的实验数据定义一个合适的拟合函数"Planck(l,*p)“。这一职能将以普朗克公式为基础:
Bλ(T) = (2hc^2/l^5) / (exp(hc/klt) -1) ,其中l是波长集合,k是Boltzmann常数,h是Planck常数,c是光速。
我需要在p中有两个拟合参数,一个是T (温度),另一个是标度因子。
我绘制了一个T的实验数据和拟合函数,我通过反复试验找到了它的峰值,使它的峰值等于数据的峰值,这是我的结果:

所以很显然,我需要将蓝色函数转换成蓝色函数,这样它才能落入实验数据中,据推测是通过比例因子。什么是标度因子,我如何使用它将整个图5单元移到右边?这是一个对数图,所以像y=x^2 ==> y=(x-5)^2 这样的东西不能工作。有什么想法吗?
我正在使用curve_fit来拟合数据。
发布于 2015-10-23 05:35:37
要求曲线沿x轴的对数图移动,可以用常数缩放x轴参数。也就是说,使用b*L代替L,并在合适的情况下将b作为一个自由参数。
对于这个特定的问题,人们通常知道绝对波长(虽然我可以想象,情况并非如此,比如无标记的传感器、移动源等),而且扩展它是没有意义的,尤其是超过10倍。如果你知道波长,但你仍然得到移位图,,你可能对波长有错误的单位,因为这将导致一个类似的转变。情况可能不是这样,但这是一个常见的错误,会导致这种转变。
缩放x轴参数或改变单位都将沿着一个日志轴移动曲线,因为log(ab) = log(a) + log(b)。总的来说,尽管x轴上的日志是不必要的混乱,而且您的数据似乎无论如何都是用线性间距来获取的,所以如果您遇到了问题,最好在处理日志版本之前先将其绘制在线性轴上(可能只是处理接近峰值的部分)。
将上述称为“转移”是令人困惑的,因为它只是图像意义上的转变,而不是适配或功能的转变。相反,通过替换b*L来代替L,可以扭曲函数,但以某种方式与日志轴的失真相匹配,因此它只是图片的移动,而不是函数的偏移。转移函数的一般方法是在参数中添加一个术语,所以f(x),因为f(x+c),而且这总是有效的。
最后,在原始图形中标出轴的方式是令人困惑的。例如,我最初把x轴读成“波长(嗯)”。要取一个数字的log,这个数字必须是不单位的,所以给这个轴贴上类似log(L/1um)之类的标签就更准确了。
https://stackoverflow.com/questions/33291428
复制相似问题