Как мне улучшить мою подгонку дифракции с двумя щелями в gnuplot? - PullRequest
0 голосов
/ 01 мая 2019

Я написал этот код, чтобы он соответствовал уравнению интенсивности дифракции с двумя щелями по моим измеренным данным.Проблема в том, что график соответствия не пропорционален графику измеренных данных.Измеренные данные представляют собой текстовый файл, который выглядит следующим образом:

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)

Функция подбора должна быть такой же высокой и широкой, как график измеренных данных, как мне этого добиться? Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2019

Хитрость заключалась в том, чтобы сузить начальные значения переменных вручную, пока подгонка почти не понадобилась.Спасибо, в любом случае.Если кому-то интересно, k была релевантная переменная, которая имела наибольшее значение.

Если я должен удалить вопрос вместо того, чтобы отвечать на него сам, извините, тогда удалите это.

...