使用 GSL 拟合分段"broken stick"模型

Fitting a piecewise "broken stick" model with GSL

本文关键字:broken 模型 stick 分段 GSL 拟合 使用      更新时间:2023-10-16

我正试图将函数拟合到我所拥有的一些采样数据。我理解并看到了GSL中线性拟合的许多例子,但是我需要拟合的函数具有

的形式
x_i = c_0 + c_1*t_i

for I <任意数(T)>

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

for i>= t

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

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

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

我解决了!

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