2015-07-10 71 views
0

有沒有辦法來限制擬合參數可以用gnuplot獲取的值?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

由於gnuplot支持非線性擬合,因此您可以在函數中使用B**2(或sqrt(B**2))將您的變量限制爲正值。

0

則可以將功能更改爲類似這樣:

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

但我不知道該NLLS alogrithm如何反應了這一點。謹防。

或者,你可能想是這樣的:

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

也許這會作何反應更加順暢和更接近你的數據的實際物理模型。