0

我正在尝试为我拥有的一些采样数据拟合一个函数。我了解并看过 GSL 中的大量线性拟合示例,但是我需要拟合的函数具有以下形式

x_i = c_0 + c_1*t_i

对于 i < 某个任意数 (T)

x_i = c_0 + c_1*t_i + c_2*(T-t_i)

对于 i >= T。

为了可视化这一点,它是一条线(长度有限),在 T 指定的某个点处有一个中断。我一直试图弄清楚如何在 GSL 中实现这一点,但我无法弄清楚拟合两个方程,并在不同的值范围内拟合这两个方程。我的数学没有应有的强大,而且 GSL 文档有点密集。

或者,如果 GSL 无法做到这一点,是否还有其他 C/C++ 库能够做到这一点?

编辑:我认为这实际上可能相当于以正常线性方式拟合断棒的前半部分,然后拟合后半部分(已知 c_0 和 c_1,并拟合 c_2)。我仍然不知道该怎么做,但我认为如果这是一个可能的解决方案,我正在做的事情可能是可以接受的。但是,我仍然想要一些方法来找到最好的 T 来打破棍子,但这并不是绝对必要的。

4

1 回答 1

0

我解决了!

事实证明,它就像创建一个平滑的 b 样条一样简单,具有二维(即 3 节),我相信 GSL 仍然在线性时间内完成。

于 2013-01-08T12:13:42.367 回答