如果已经提出这个问题我很抱歉 - 我不确定在这里使用正确的术语,所以如果有的话,希望它能帮助像我这样的人发现任何被标记为傻瓜的东西。
我想从3点开始为代码中的曲线(理想情况下是C#或Javascript)创建一个公式 - 公式应该是y = a /(t + b)+ c的形式,其中t是时间 - 水平轴 - 和y是垂直轴。显然,a,b和c只适用于图形拟合。
我该怎么做?我应该使用现有的库吗?
源数据有超过3个可用的数据点,我只是想找到一个最简单的方法来将1 / x曲线拟合到数据中 - 所以如果例如4个点需要精确度,那么很容易提供作为输入。
答案 0 :(得分:1)
如果您希望适合表格
的功能 y(t) = a/(t + b) + c
到您面临非线性最小二乘问题的一组数据点,您可以使用Gauss-Newton或Levenberg-Marquardt方法。然而,当你的近似是a时,有一个名为Loeb's algorithm
的旧算法可以用来生成好的(但不是最好的 - 它可以表明它不会收敛到最佳逼近)近似值多项式的比率。它通过线性化最小二乘问题并产生迭代最小二乘解决方案(尽管在实践中,您将通过单次迭代获得良好的结果)。我为我的博士学习了这个算法,我强烈推荐它用于你想用多项式比率近似数据点的任何实际问题(你的情况就是非常简单的例子)。
缺点是这个算法很老,你可能很难找到合适的文档。如果可以的话,它的实现并不比标准的线性最小二乘近似更复杂。如果你没有在这里得到更好的答案,请考虑谷歌搜索它。如果你找不到合适的信息,请告诉我,我会将我的论文上传到我的网站(包含该方法的实施细节),你可以下载它。
正如我所说,你可以在这里得到一个更简单的答案,但如果没有,它肯定会是你的选择。