Построение функции с дискретными значениями x в gnuplot - PullRequest
6 голосов
/ 06 марта 2012

Мне нужно построить функцию f(x), где x - это дискретный набор значений (в моем случае положительные целые числа).Я не мог найти способ указать размер шага при использовании параметра диапазона, и образцы, кажется, не являются правильным решением.Наконец, я хотел бы приблизить f(x) с гладкой функцией.

Ответы [ 3 ]

7 голосов
/ 06 марта 2012

Я не совсем понимаю, почему образцы не являются решением вашей проблемы.

Если я хочу построить sin (x) на интервале от 0 до 10 с точкой на каждое целое число, которое я использую

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

Очевидно, что число выборок составляет xmax-xmin + 1 (10 - 0 + 1 = 11).

Наконец, чтобы решить проблему аппроксимации, взгляните на этот веб-сайт , на котором обсуждается линейная аппроксимация методом наименьших квадратов. Для простой линейной интерполяции используйте lp вместо p.

1 голос
/ 07 марта 2012

Или, альтернативно, поиграйте с функциями ceil(x) или floor(x).

Может быть, посмотрите на этот пример: http://gnuplot.sourceforge.net/demo/prob2.html

0 голосов
/ 18 августа 2015

Вы можете сделать:

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'
...