我要拟合以下数据:
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))
$通过a1,a2,T2e,T2g拟合f(x)'数据'
但是它一直给我以下结果:
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)
$通过b,T2g拟合g(x)'数据'
我知道
b = 0.0451053 +/- 0.001598 (3.542%)
T2g = 359.359 +/- 16.89 (4.701%)
和
$ S(x)= S0 * exp(-x / T2e)
$通过S0,T2e适合S(x)'数据'
给予:
S0 = 0.057199 +/- 0.003954 (6.913%)
T2e = 319.257 +/- 38.17 (11.96%)
我已经尝试设置初始值,但是并没有改变结果。
有人知道出什么问题了吗? 谢谢
答案 0 :(得分:0)
好吧,您会看到一个带有高斯驼峰的指数衰减。
我采用的方法是:首先,排除数据点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%)