Gnuplot:对拟合参数施加限制

时间:2015-07-10 18:36:50

标签: gnuplot curve-fitting

有没有办法禁用拟合参数可以与gnuplot一起使用的值?

f(x) = A/(x**2) + B/(x**4)
A = 1
B = 0.01
fit f(x) 'data.dat' u 1:2 via A,B

我知道B < 0没有任何意义。有没有办法强加B > 0

2 个答案:

答案 0 :(得分:2)

Since gnuplot supports non-linear fitting you can use B**2 (or sqrt(B**2)) in your function to constrain your variable to be positive.

答案 1 :(得分:0)

您可以将功能更改为以下内容:

minB = 0.001
f(x) = A*x**-2 + (B<minB:minB:B)*x**-4

但我不确定NLLS算法是如何对此作出反应的。当心。

或者您可能会想到这样的事情:

f(x) = A*x**-2 + 10**B*x**-4

这可能会更平滑,更接近数据的实际物理模型。