与mathematica拟合的正弦数据之和

wsed 发布于 2019-03-09 sine 最后更新 2019-03-09 14:36 3 浏览

Hy everyones, 我有一个mathematica脚本的问题,我需要用3个正弦函数的总和来拟合数据点:

fit = NonlinearModelFit[Data,a1*Sin[b1*x + c1] + a2*Sin[b2*x + c2] + a3*Sin[b3*x + c3], {a1, b1,c1, a2, b2, c2, a3, b3, c3}, x]
我得到这个错误:
NonlinearModelFit::cvmit: Failed to converge to the requested accuracy or precision within 100 iterations
我尝试了不同的初始值,MaxIteration设置为10.000 ... 也许这不是做这种拟合的正确方法。有没有人有这个想法? 谢谢!
已邀请:

kaut

赞同来自:

也许您的数据太糟糕了,但它可以很好地处理好样本:

data = Table[{x, Sin[ x + .3] + 2 Sin[1.2 x] + 3 Sin[1.5 x + .5]}, 
             {x, .01,  8 Pi, .001}];
fit = NonlinearModelFit[data, 
          a1*Sin[b1*x + c1] + a2*Sin[b2*x + c2] + a3*Sin[b3*x + c3], 
          {a1, b1, c1, a2, b2, c2, a3, b3, c3}, x]
Show[ListPlot[data], Plot[fit[x], {x, 0, 8 Pi}, PlotStyle -> Red], Frame -> True]
enter image description here