与mathematica拟合的正弦数据之和

时间:2013-04-11 16:14:54

标签: wolfram-mathematica curve-fitting sine

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 ...... 也许这不是做这种拟合的正确方法。有没有人对此有所了解?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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