所以我需要这样做:
定义合适的拟合函数,"普朗克(l,* p)"到普朗克函数的实验数据。此功能基于普朗克公式:
Bλ(T) = (2hc^2/l^5) / (exp(hc/klt) -1)
,其中 l 是波长组, k 是玻尔兹曼常数, h 是普朗克常数, c 是光的速度 我需要在 p 中有2个拟合参数,一个是 T (温度),另一个是缩放因子。
我绘制了实验数据和 T 的拟合函数,我通过反复试验发现它的峰值等于数据的峰值,这是我的结果:
显然,我不知何故需要转换蓝色函数,以便它可以通过比例因子落到实验数据上。什么是比例因子?如何使用它将整个图形向右移动5个单位?
这是一个对数图,所以像y=x^2 ==> y=(x-5)^2
这样的东西不会起作用。
有什么想法吗?
我正在使用curve_fit
来填充数据。
答案 0 :(得分:-1)
要沿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)
或类似的东西会更准确。