我想用 gnuplot 做一个多分支拟合。我定义了两个函数 z1(x) 和 z2(x),我希望 z1(x) 适合所有数据,直到第 49 行,从第 50 行开始,它应该适合 z2(x)。这就是我在配件部分所做的:
z(x,y) = (y < 50) ? z1(x) : z2(x)
fit z(x,y) 'data.txt' using 1:-1:2 via a, b
但是 gnuplot 完全忽略了 z2(x) 部分。我什至可以注释掉 z2(x) 的定义,它甚至没有给出错误或警告。它永远不会达到 y >= 50 的情况,但 data.txt 文件有 100 行。
此外,如果我之后绘制 z1(x) 和 z2(x),它们只是常数零(z1 = z2 = 0),但拟合参数 a 和 b 大致(不完全,因为忽略了第二个分支)在正确的顺序。
我在这里做错了吗?有没有一个很好的例子(官方的 gnuplot fit 演示没有帮助)?