Am trying to find a function that could fit this data for bond breaking minimum path but so far haven't found one. I have previously fitted such data to Fourier series using NonlinearModelFit but had trouble fitting this one. I would greatly appreciate your help.
data1={{-4.238, 0.027},{-4.137, 0.394},{-3.95, 2.048},{-3.808, 4.175},{-3.69, 6.485},{-3.547, 10.003},{-3.444, 12.996},{-3.267, 19.061},{-3.128, 24.549},{-2.986, 30.771},{-2.873, 36.075},{-2.71, 44.056},{-2.545, 52.326},{-2.386, 60.124},{-2.231, 67.266},{-2.067, 74.144},{-1.902, 80.393},{-1.777, 84.856},{-1.615, 90.527},{-1.465, 95.936},{-1.332, 100.951},{-1.219, 105.414},{-1.111, 109.93},{-1.032, 113.396},{-0.943, 117.439},{-0.858, 121.535},{-0.788, 125.158},{-0.714, 129.201},{-0.654, 132.719},{-0.598, 136.159},{-0.494, 143.116},{-0.433, 147.422},{-0.395, 150.126},{-0.294, 157.136},{-0.226, 161.363},{-0.171, 164.278},{-0.108, 166.798},{0.02, 168.584},{0.144, 164.987},{0.191, 162.072},{0.251, 157.215},{0.312, 150.914},{0.372, 143.615},{0.49, 126.366},{0.525, 120.668},{0.569, 113.474},{0.62, 104.994},{0.68, 94.886},{0.724, 87.718},{0.79, 77.531},{0.834, 71.283},{0.888, 64.141},{0.967, 54.794},{1.024, 48.782},{1.08, 43.452},{1.147, 37.519},{1.22, 31.585},{1.306, 25.389},{1.372, 21.031},{1.465, 15.386},{1.576, 9.321},{1.673, 4.464},{1.784, -0.656},{1.91, -6.012},{2.052, -11.421},{2.211, -16.855},{2.372, -21.818},{2.542, -26.622},{2.715, -31.243},{2.949, -37.439},{3.086, -41.273},{3.296, -47.469},{3.457, -52.562},{3.772, -63.038},{3.888, -66.924},{4.103, -74.091},{4.257, -79.08}}
Here is my code
fit = NonlinearModelFit[data1,
A + Μ Cos[x] + Ν Cos[2 x] + Ξ Cos[3 x] + Ο Sin[x] + Π Sin[2 x] + Ρ Sin[3 x] + Σ Sin[4 x],
{{A, 150}, {Μ, 3}, {Ν, 1}, {Ξ, 1}, {Ο, 1}, {Π, 1}, {Ρ, 1}, {Σ, 1}}, x,
ConfidenceLevel -> 0.99, MaxIterations -> 1000, Method -> Automatic]
fitplot =
Show[ListPlot[data1, PlotMarkers -> O , PlotStyle -> Red],
Plot[Normal[fit], {x, -4, 4},
AxesLabel -> {"Reaction Coordinate",
"Energy/\!\(\*SuperscriptBox[\(kcalmol\), \(-1\)]\)"},
PlotStyle -> Blue], Frame -> True, Axes -> False]
fit["ParameterTable"]
(*assigning the equation of the fitted parameters to a function V[x] *)
V[x_?NumericQ] := fit[x]