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