如何改善gnuplot中双缝衍射的拟合度?

问题描述 投票:-1回答:1

我写了这个代码,以适应我的测量数据的双缝衍射强度方程。问题是拟合图与测量数据的图不成比例。测量数据是一个如下所示的txt文件:

0 0 10224 
1 1.00048851978505 10460
...
1050 1050.5129457743 59573
...
2047 2048 10518

我试图让尽可能多的变量给出拟合函数选项以与绘图对齐并为我的变量提供良好的起始值但是拟合仍然不在任何可靠的数据点附近,尽管它似乎是正确的形状。函数winkel(x)用于将测量的x值(第二垂直列)从像素转换为弧度,因为强度Int(x)(https://de.wikipedia.org/wiki/Doppelspaltexperiment)的公式是针对弧度进行的,并且我测量了干涉图案的宽度使用2048像素宽的相机传感器。

set title "Intensity"
set xlabel "pixels"
set ylabel "tics"
#d slit distance
#a slit width
#b proportional constant
#c,g moves the center of the fit function
#lambda wave length of the light
#Int(x) intensity function
#k maximum distraction angle thats still on the screen and measured
pi = 3.14159
lambda = 632.816e-9
winkel(x) = -k+2*k*(x+g)/2048
beta(x) = (pi*d/lambda)*sin(winkel(x))
alpha(x) = (pi*a/lambda)*sin(winkel(x))
f(x)=b*(cos(beta(x))**2) * ((sin(alpha(x))/alpha(x))**2)+c
a=0.0006
d=0.0002
b=60000
c=10000
g=50
k=0.002
fit f(x) "...\\2ohnefilter.txt" using 2:3 via a,b,c,d,g,k
plot "...\\2ohnefilter.txt" using 2:3 , f(x)

拟合函数应该与测量数据的图一样高和宽,我该如何实现?提前致谢。

gnuplot physics data-fitting
1个回答
0
投票

诀窍是手动缩小变量的起始值,直到几乎不再需要拟合。不管怎么说,还是要谢谢你。如果有人好奇,k是最重要的相关变量。

如果我应该删除这个问题而不是自己回答我很抱歉,那么请删除它。

© www.soinside.com 2019 - 2024. All rights reserved.