2016-03-01 39 views
2

我有绘制拟合函数的问题。函数消失接近零

绘制的函数接近零的部分消失并与双曲线或根本不应该在那里的东西连接。只有当我将set xrange更改为小于0的东西时才会发生这种情况。我必须这样做,因为我有很多数据点要关闭零,因此如果我不更改它,看起来会非常难看。

我试图使用条件x>0?f(x):1/0但它没有帮助。双曲线消失,但功能不应该继续下去,因为它应该。

我用这个代码:

set terminal postscript eps size 3.5,2.62 enhanced color 

set output "a.eps" 

set xrange [-1:] 

f(x)=a*b*x/(1+a*x) 

fit f(x) "./a" via a, b 

plot "./a" w p title "", f(x) w l title "Langmuir isotherm" 
+1

除非您还使数据文件“。/ a”可用,否则没有人能够对此进行测试。 –

回答

1

那简直是取样的问题。默认采样率为100show samples),这不足以显示快速变化的功能。用例如增加采样率

set samples 1000 

有你的正常工作绘制。

第二个问题是,如果没有样本恰好位于该位置,则不能正确显示不连续性。考虑下面的情节来证明这一点:

set xrange [-1:1] 

set multiplot layout 2,1 
set samples 100 
plot 1/x 

set samples 101 
plot 1/x 
unset multiplot 

enter image description here

所以,如果你要正确地绘制在间断两侧的功能,则必须绕不连续定义一个小区域为未定义,或者分别在左侧和右侧绘制零件:

set xrange [-1:]  
f(x)=a*b*x/(1+a*x) 
fit f(x) "./a" via a, b 
left(x) = (x < -1/a ? f(x) : 1/0) 
right(x) = (x > -1/a ? f(x) : 1/0) 
plot "./a" w p title "", left(x) w l lt 2 title "Langmuir isotherm", right(x) w l lt 2 notitle 
+0

谢谢,它工作正如我想:) – dooobro