вторник, 17 июня 2014 г.

Gnuplot. Аналитические функции

Так уж устроена жизнь, что одними полиномами и дробно-рациональными выражениями в ней обойтись довольно сложно, рано или поздно появляется какая-то нелинейная функция, которая требует своего отображения на графике. Посмотрим, что предлагает Gnuplot на этот случай.


Алгебраические функции
abs(x) - для действительного аргумента возвращает абсолютную величину, для комплексного - модуль.
ceil(x) - наименьшее целое, большее или равное x.
exp(x) - экспоненциальная зависимость.
floor(x) - наибольшее целое, не больше x.
log(x) - натуральный логарифм x.
log10(x) - десятичный логарифм x.
sgn(x) - знак числа (+1, -1 или 0).
sqrt(x) - квадратный корень из x.

Тригонометрические функции
sin(x), asin(x) - синус и арксинус.
cos(x), acos(x) - косинус и арккосинус.
tan(x), atan(x) - тангенс и арктангенс.

Гиперболические функции
sinh(x), asinh(x) - гиперболические синус и арксинус.
cosh(x), acosh(x) - гиперболические косинус и арккосинус.
tanh(x), atanh(x) - гиперболические тангенс и арктангенс.

Комплексные числа
arg(z) - аргумент комплексного числа z.
imag(z) - мнимая часть числа.
real(z) - действительная часть числа.

Специальные функции
besj0(x), besj1(x) - функции Бесселя j0 и j1, в радианах.
besy0(x), besy1(x) - функции Бесселя y0 и y1, в радианах.
erf(x), erfc(x) - функции ошибок.
inverf(x) - обратная функция ошибок.
gamma(x) - гамма-функция.

Случайные числа
norm(x), invnorm(x) - нормальное распределение и обратная величина.
rand(x) - случайное число (при x = 0 - от 0 до 1).

Некоторые знаки операций
! - перед переменной означает логическое отрицание, после - факториал.
** - возведение в степень
% - остаток от деления
== - тождество
!= - отрицание тождества
<, <=, >=, > - от строго меньше до строго больше через возможность равенства
&& - логическое "и"
|| - логическое "или"
. (точка) - конкатенация строк
eq - эквивалентность строк
ne - различие строк

Из языка C также унаследована сокращённая запись условия 
state ? var1 : var2
что означает
если state то var1 иначе var2.

Помимо функций пользователь может создавать собственные переменные, и вообще, строить достаточно сложные математические выражения. Получить значение функции f(x) в какой-либо точке x0 можно с помощью команды 
print f(x0)
Т.о. при желании Gnuplot можно использовать и как продвинутый калькулятор. Например запись
p = 5; q = 6
g(x) = p * sqrt(x) + q ** 2
print g(4)
вернёт значение 46.0.

1 комментарий: