2012-03-06 103 views
4

我需要繪製一個函數f(x),其中x是離散的一組值(在我的例子中是正整數)。在使用範圍選項時,我找不到指定步長的方法,而樣本似乎不是正確的解決方案。最後,我想用平滑的函數近似f(x)在gnuplot中繪製一個具有離散x值的函數

回答

6

我不太明白爲什麼樣品不是您的問題的解決方案。

如果我想在每個整數繪製上與點0和10之間的間隔的sin(x)我使用

set xrange [0:10] 
set sample 11 
plot sin(x) w p 

顯然的樣本的數目是XMAX-XMIN + 1(10 - 0 + 1 = 11)。

最後要解決近似問題,請看this website討論線性最小二乘擬合。對於簡單的線性插值,使用lp而不是p

+0

如果您有一個與數據點數量相同的樣本規格,那麼'平滑'樣式不起作用。 – Karl 2015-08-19 08:32:24

0

你可以這樣做:

plot [1:12] '+' u ($0):(f($0)) 

其中,$0將1,2,...,12。你甚至可以做替代順利就此。例如:

f(x)=sin(2*x) 
plot [1:12] f(x) t 'the function'\ 
      , '+' u ($0):(f($0)) t 'the points'\ 
      , '+' u ($0):(f($0)) smooth cspline t 'the smooth' 
+0

比特粗略的解決方案。 「$ 0」是行號。 'plot [52:127]「+」us 0:(f($ 0))'已經中斷了,除非增加樣本數量。我至少會將range範圍的較低值添加到$ 0。 – Karl 2015-08-19 08:21:48

+0

順便說一下,gnuplot 5.1現在不僅具有單個採樣範圍(5.0中新增),而且還具有單個採樣增量。 – Karl 2015-08-19 08:38:33

相關問題