我正在寻找一种非线性曲线拟合程序(可能最容易在R或Python中找到,但我也可以考虑其他编程语言),该程序可以采用x、y数据并对其进行曲线拟合。
我应该能够通过一个字符串来指定我想要拟合的表达式类型。
示例:
"A+B*x+C*x*x"
"(A+B*x+C*x*x)/(D*x+E*x*x)"
"sin(A+B*x)*exp(C+D*x)+E+F*x"
从这个过程中我希望至少得到常量 (A、B、C 等) 的值,以及关于匹配适合度的统计数据。虽然有商业程序来做这个工作,但是我预期在现代语言库中应该能够找到一些常见的方法来完成期望表达式的拟合。我怀疑 SciPy 的优化部分可能能够做到这一点,但我看不到它让我定义一个方程。同样,在 R 中似乎也找不到我想要的东西。是否存在我正在寻找的内容,还是我需要自己制作?如果它存在并且我只是找不到,那么我很犹豫要自己制作。编辑: 我想这样做是为了比 LAB Fit 更好地控制整个过程。LAB Fit 的用户界面很差。我还想能够将范围分成多个部分,并使用不同的曲线表示范围的不同部分。最终结果必须能够在速度上击败带有线性插值的查找表,否则我不感兴趣。
在我的当前问题集中,我有三角函数或 exp(),我需要每秒实时执行 352,800 次(并且仅使用 CPU 的一小部分)。所以我绘制曲线并使用数据驱动曲线拟合器,以获得更便宜的近似值。在过去,LUTs 几乎总是解决方案,但现在跳过内存查找并进行近似有时会更快。