2015-02-04 6 views
0

Я хотел бы знать, как управлять параметрическими 1-D функциями. Например, я хочу построить гауссово для разных значений параметра a: f (x) = exp (-a * (x-1) ** 2)Параметрические функции в gnuplot

Я знаю, что могу создавать различные функции f (x) для многих значений a, но мне интересно, есть ли способ построить эту функцию для a = 1,2,3 и т. д.

Спасибо.

+0

Будьте осторожны, чтобы различать "параметрические функции" из «функции с параметрами». Первый относится к графикам, таким как x = cos (t), y = sin (t) (нанесенный с заданным параметрическим), второй - типа, о котором вы спрашиваете. – Daniel

ответ

3

Да, просто определить свою функцию так, что она принимает переменную параметра в качестве входных данных:

f(x,a)=exp(-a*(x-1)**2) 

А затем цикл над ним. Это может быть сделано в последовательности ("а от 1 до 3 с интервалом в 1"):

plot for [a=1:3:1] f(x,a) t "a = ".a 

Или, используя список значений:

plot for [a in "1 2 3"] f(x,a) t "a = ".a 

enter image description here

1

Используя следующие команды

gnuplot> f(x) = a*x 
gnuplot> plot for [a = 1:3:1] f(x) title sprintf("a=%d",a) 

я получаю следующий участок

enter image description here

Вы можете прочитать описание вы можете получить с помощью следующих команд

gnuplot> help for 
The `plot`, `splot`, `set` and `unset` commands may optionally contain an 
iteration for clause. This has the effect of [...] 

и

gnuplot> help sprintf 
`sprintf("format",var1,var2,...)` applies standard C-language format specifiers 
to multiple arguments and returns the resulting string. If you want to 
use gnuplot's own format specifiers, you must instead call `gprintf()`. 
For information on sprintf format specifiers, please see standard C-language 
documentation or the unix sprintf man page. 

НТН