Gnuplot 拟合
Gnuplot fitting
我要拟合以下数据:
70 0.0429065
100 0.041212
150 0.040117
200 0.035018
250 0.024366
300 0.02017
350 0.018255
400 0.015368
以下函数是指数函数和高斯函数的组合:
$ f(x)= a1*(a2* exp(-x/T2e)+ exp(-(x/T2g)**2))
$ fit f(x) 'data' via a1,a2,T2e,T2g
但它一直给我以下结果:
a1 = 0.0720021 +/- 0.04453 (61.84%)
a2 = 0.310022 +/- 0.9041 (291.6%)
T2e = 63291.7 +/- 2.029e+07 (3.206e+04%)
T2g = 252.79 +/- 32.36 (12.8%)
而当我尝试将它单独安装到
$ g(x)=b* exp(-(x/T2g)**2)
$ fit g(x) 'data' via b,T2g
我明白了
b = 0.0451053 +/- 0.001598 (3.542%)
T2g = 359.359 +/- 16.89 (4.701%)
和
$ S(x)=S0* exp(-x/T2e)
$ fit S(x) 'data' via S0,T2e
给出:
S0 = 0.057199 +/- 0.003954 (6.913%)
T2e = 319.257 +/- 38.17 (11.96%)
我已经尝试设置初始值,但它并没有改变结果。
有人知道哪里出了问题吗?
谢谢,
好的,您可以看到带有驼峰的指数衰减,这可能是高斯分布。
方法,我是如何拟合的:首先,排除数据点 100 和 150 并拟合指数,然后将高斯分布设置为大约 170。
您可能不太适合,因为至少高斯峰值偏移了某个值 x1
.
使用代码:
### fitting
reset session
$Data <<EOD
70 0.0429065
100 0.041212
150 0.040117
200 0.035018
250 0.024366
300 0.02017
350 0.018255
400 0.015368
EOD
a = 0.055
T2e = 310
b = 0.008
x1 = 170
T2g = 54
Exponential(x) = a*exp(-x/T2e)
Gaussian(x) = b*exp(-((x-x1)/T2g)**2)
f(x) = Exponential(x) + Gaussian(x)
fit f(x) $Data u 1:2 via a,b,x1,T2e,T2g
plot $Data u 1:2 w lp pt 7, f(x) lc rgb "red"
### end of code
您将获得:
a = 0.0535048 +/- 0.00183 (3.42%)
b = 0.00833589 +/- 0.001006 (12.06%)
x1 = 170.356 +/- 5.664 (3.325%)
T2e = 315.114 +/- 12.94 (4.106%)
T2g = 54.823 +/- 12.13 (22.12%)
我要拟合以下数据:
70 0.0429065
100 0.041212
150 0.040117
200 0.035018
250 0.024366
300 0.02017
350 0.018255
400 0.015368
以下函数是指数函数和高斯函数的组合:
$ f(x)= a1*(a2* exp(-x/T2e)+ exp(-(x/T2g)**2))
$ fit f(x) 'data' via a1,a2,T2e,T2g
但它一直给我以下结果:
a1 = 0.0720021 +/- 0.04453 (61.84%)
a2 = 0.310022 +/- 0.9041 (291.6%)
T2e = 63291.7 +/- 2.029e+07 (3.206e+04%)
T2g = 252.79 +/- 32.36 (12.8%)
而当我尝试将它单独安装到
$ g(x)=b* exp(-(x/T2g)**2)
$ fit g(x) 'data' via b,T2g
我明白了
b = 0.0451053 +/- 0.001598 (3.542%)
T2g = 359.359 +/- 16.89 (4.701%)
和
$ S(x)=S0* exp(-x/T2e)
$ fit S(x) 'data' via S0,T2e
给出:
S0 = 0.057199 +/- 0.003954 (6.913%)
T2e = 319.257 +/- 38.17 (11.96%)
我已经尝试设置初始值,但它并没有改变结果。
有人知道哪里出了问题吗? 谢谢,
好的,您可以看到带有驼峰的指数衰减,这可能是高斯分布。
方法,我是如何拟合的:首先,排除数据点 100 和 150 并拟合指数,然后将高斯分布设置为大约 170。
您可能不太适合,因为至少高斯峰值偏移了某个值 x1
.
使用代码:
### fitting
reset session
$Data <<EOD
70 0.0429065
100 0.041212
150 0.040117
200 0.035018
250 0.024366
300 0.02017
350 0.018255
400 0.015368
EOD
a = 0.055
T2e = 310
b = 0.008
x1 = 170
T2g = 54
Exponential(x) = a*exp(-x/T2e)
Gaussian(x) = b*exp(-((x-x1)/T2g)**2)
f(x) = Exponential(x) + Gaussian(x)
fit f(x) $Data u 1:2 via a,b,x1,T2e,T2g
plot $Data u 1:2 w lp pt 7, f(x) lc rgb "red"
### end of code
您将获得:
a = 0.0535048 +/- 0.00183 (3.42%)
b = 0.00833589 +/- 0.001006 (12.06%)
x1 = 170.356 +/- 5.664 (3.325%)
T2e = 315.114 +/- 12.94 (4.106%)
T2g = 54.823 +/- 12.13 (22.12%)