-1

如果已经有人问过这个问题,我深表歉意——我不确定在这里使用的正确术语,所以如果有的话,希望它能帮助像我这样的其他人找到任何被标记为欺骗的东西。

我正在寻找从 3 个点为代码(理想情况下是 C# 或 Javascript)创建曲线的公式 - 公式应采用 y = a/(t+b) + c 的形式,其中 t 是时间 - 水平轴 - y 是纵轴。显然,a、b 和 c 只是用于图形拟合。

我该怎么办?我应该使用现有的库吗?

源数据有超过 3 个数据点可用,我只是在寻找将 1/x 曲线拟合到数据的最简单方法 - 因此,例如,如果需要 4 个点来获得精度,则很容易作为输入提供。

4

1 回答 1

1

如果您正在寻找适合表格的功能

    y(t) = a/(t + b) + c

对于一组数据点,您将面临非线性最小二乘问题,您可以使用 Gauss-Newton 或 Levenberg-Marquardt 方法。但是,当您的近似值是多项式的比率时,有一种名为的旧算法Loeb's algorithm可用于生成良好的(但不是最好的 - 可以证明它不会收敛到最佳近似值)近似值。它通过线性化最小二乘问题并产生迭代最小二乘解决方案来工作(尽管在实践中您将通过一次迭代获得良好的结果)。我为我的博士学位研究了这个算法,我强烈推荐它用于任何你想使用多项式比率来近似数据点的实际问题(你的例子是非常简单的例子)。

缺点是该算法非常陈旧,您可能很难找到合适的文档。如果可以的话,实现起来并不比标准线性最小二乘近似更复杂。如果您的问题在这里没有得到更好的答案,请考虑使用谷歌搜索。如果您找不到合适的信息,请告诉我,我会将我的论文上传到我的网站(包含方法的实现细节),您可以下载它。

正如我所说,您可能会在这里得到一个简单得多的答案,但如果没有,那肯定是您可以选择的。

于 2012-06-29T22:22:10.073 回答