from
__future__
import
print_function
import
numpy as np
import
matplotlib.pyplot as plt
from
scipy.optimize
import
curve_fit
xdata
=
[
-
10.0
,
-
9.0
,
-
8.0
,
-
7.0
,
-
6.0
,
-
5.0
,
-
4.0
,
-
3.0
,
-
2.0
,
-
1.0
,
0.0
,
1.0
,
2.0
,
3.0
,
4.0
,
5.0
,
6.0
,
7.0
,
8.0
,
9.0
,
10.0
]
ydata
=
[
1.2
,
4.2
,
6.7
,
8.3
,
10.6
,
11.7
,
13.5
,
14.5
,
15.7
,
16.1
,
16.6
,
16.0
,
15.4
,
14.4
,
14.2
,
12.7
,
10.3
,
8.6
,
6.1
,
3.9
,
2.1
]
xdata
=
np.asarray(xdata)
ydata
=
np.asarray(ydata)
plt.plot(xdata, ydata,
'o'
)
def
Gauss(x, A, B):
y
=
A
*
np.exp(
-
1
*
B
*
x
*
*
2
)
return
y
parameters, covariance
=
curve_fit(Gauss, xdata, ydata)
fit_A
=
parameters[
0
]
fit_B
=
parameters[
1
]
fit_y
=
Gauss(xdata, fit_A, fit_B)
plt.plot(xdata, ydata,
'o'
, label
=
'data'
)
plt.plot(xdata, fit_y,
'-'
, label
=
'fit'
)
plt.legend()