AFAIK Невозможно иметь «файл параметров» с другими параметрами для построения графика в функции, поскольку команда plot может либо использовать функцию для построения или файла данных:
plot {<ranges>}
{<iteration>}
{<function> | {"<datafile>" {datafile-modifiers}}}
{axes <axes>} {<title-spec>} {with <style>}
{, {definitions{,}} <function> ...}
Таким образом, либо вам нужно создать файл данных, в котором указаны ваши t
и функциональные значения для построения gnuplot. Другой обходной путь, который может быть полезен, если у вас есть только ограниченное количество функций karplus для печати, это:
set angles degrees
set xrange [-180:180]
f(x, a, b, c, o) = a*cos(x+o)**2 + b*cos(x+o) + c
title(n) = sprintf("f_%d", n)
plot a = 1 b = 2 c = 3 o = 60 f(x, a, b, c, o) t title(1), \
a = 4 b = 5 c = 6 o = 180 f(x, a, b, c, o) t title(2), \
a = -3 b = -5 c = -9 o = -120 f(x, a, b, c, o) t title(3)
Теперь вы указываете параметры напрямую и соответственно строите график функции.
В качестве альтернативы вы можете реализовать итерацию следующим образом:
plot for [a = 1:10:2] b = 2 c = 3 o = 60 f(x, a, b, c, o) t title(a)
К сожалению, в gnuplot невозможно вложить итерации, поэтому приходится иметь дело только с одним параметром для изменения.