有没有办法禁用拟合参数可以与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
?
答案 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
这可能会更平滑,更接近数据的实际物理模型。