Mathematica中的三角拟合不起作用?

时间:2012-04-03 01:23:30

标签: wolfram-mathematica trigonometry curve-fitting

我试图曲线拟合一些周期性的实验数据,并发现用于曲线拟合到其他函数的方法不适用于三角函数 - 至少 - 就像我这样做。

这是我的代码:

falseData = Table[{x, N[3*Sin[4*x]]}, {x, 10}];
model = a*Sin[b*x];
fit = NonlinearModelFit[falseData, model, {a, b}, x]
Show[ListPlot[falseData, PlotStyle -> Red], Plot[fit[x], {x, 1, 10}]]

以下是代码生成的内容:

FittedModel[-0.184706 Sin[1.00073 x]]

A failure of a curve fit

如果我将此示例中的Sin函数切换为Log或其他类型的函数,它可以正常工作,但是当我尝试使用Sin或Cos时它会失败。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

尝试使用NMinimize方法:

falseData = Table[{x, N[3*Sin[4*x]]}, {x, 10}];
model = a*Sin[b*x];
fit = NonlinearModelFit[falseData, model, {a, b}, x, Method -> NMinimize]
Show[ListPlot[falseData, PlotStyle -> Red], Plot[fit[x], {x, 1, 10}]]

这是输出:

FittedModel[-3. Sin[2.28319 x]]

以下是结果曲线:

result of fitting