16.3 関数 (Functions)

特に注意がなければ、gnuplot の数学関数の引数は整数、実数、複素数の値 を取ることができます。角を引数や戻り値とする関数 (例えば sin(x)) は、 その値をラジアンとして扱いますが、これはコマンド set angles によって 度に変更できます。

数学ライブラリ関数
関数 引数 戻り値
     
abs(x) 任意 x の絶対値, | x|; 同じ型
abs(x) 複素数 x の長さ, $ \sqrt{{{\mbox{real}(x)^{2} +
\mbox{imag}(x)^{2}}}}$
acos(x) 任意 cos-1x (アークコサイン)
acosh(x) 任意 ラジアンでの cosh-1x (逆双曲余弦)
airy(x) 任意 エアリー関数 Ai(x)
arg(x) 複素数 x の偏角
asin(x) 任意 sin-1x (アークサイン)
asinh(x) 任意 ラジアンでの sinh-1x (逆双曲正弦)
atan(x) 任意 tan-1x (アークタンジェント)
atan2(y,x) 整数または実数 tan-1(y/x) (アークタンジェント)
atanh(x) 任意 ラジアンでの tanh-1x (逆双曲正接)
EllipticK(k) 実数 k $ \in$ (-1:1) K(k) 第 1 種完全楕円積分
EllipticE(k) 実数 k $ \in$ [-1:1] E(k) 第 2 種完全楕円積分
EllipticPi(n,k) 実数 n<1, 実数 k $ \in$ (-1:1) $ \Pi$(n, k) 第 3 種完全楕円積分
besj0(x) 整数または実数 J0 ベッセル関数 (0 次ベッセル関数)
besj1(x) 整数または実数 J1 ベッセル関数 (1 次ベッセル関数)
besy0(x) 整数または実数 Y0 ベッセル関数 (0 次ノイマン関数)
besy1(x) 整数または実数 Y1 ベッセル関数 (1 次ノイマン関数)
ceil(x) 任意 $ \lceil$x$ \rceil$, x (の実部) 以上の最小の整数
cos(x) 任意 x のコサイン cos x
cosh(x) 任意 cosh x, x のハイパボリックコサイン
erf(x) 任意 erf(real(x)), x の 実部の誤差関数
erfc(x) 任意 erfc(real(x)), 1.0 - (x の実部の誤差関数)
exp(x) 任意 ex, x の指数関数
expint(n,x) 整数 n$ \ge$ 0, 実数 x$ \ge$ 0 En(x) = $ \int_{1}^{\infty}$t-ne-xt dt, x の指数積分
floor(x) 任意 $ \lfloor$x$ \rfloor$, x (の実部) 以下の最大の整数
gamma(x) 任意 gamma(real(x)), x の実部のガンマ関数
ibeta(p,q,x) 任意 ibeta(real(p, q, x)), p,q,x の実部の不完全ベータ関数
inverf(x) 任意 x の実部の逆誤差関数
igamma(a,x) 任意 igamma(real(a, x)), a,x の実部の不完全ガンマ関数
imag(x) 複素数 x の虚数部分 (実数)
invnorm(x) 任意 x の実部の逆正規分布関数
int(x) 実数 x の整数部分 (0 に向かって丸め)
lambertw(x) 実数 Lambert W 関数
lgamma(x) 任意 lgamma(real(x)), x の実部のガンマ対数関数
log(x) 任意 logex, x の自然対数 (底 e)
log10(x) 任意 log10x, x の対数 (底 10)
norm(x) 任意 x の実部の正規分布 (ガウス分布) 関数
rand(x) 整数 区間 [0:1] 内の疑似乱数生成器
real(x) 任意 x の実部
sgn(x) 任意 x > 0 なら 1, x < 0 なら -1, x = 0 なら 0. x の虚部は無視
sin(x) 任意 sin x, x のサイン
sinh(x) 任意 sinh x, x のハイパボリックサイン
sqrt(x) 任意 $ \sqrt{{x}}$, x の平方根
tan(x) 任意 tan x, x のタンジェント
tanh(x) 任意 tanh x, x のハイパボリックタンジェント
voigt(x,y) 実数 Voigt/Faddeeva 関数 $ {\frac{{y}}{{\pi}}}$$ \int$$ {\frac{{exp(-t^2)}}{{(x-t)^2+y^2}}}$dt
    注意: voigt(x, y) = real (faddeeva(x + iy))
     

libcerf (利用可能な場合のみ) による特殊関数
関数 引数 戻り値
     
cerf(z) 複素数 複素誤差関数
cdawson(z) 複素数 Dawson 積分 D(z) = $ {\frac{{\sqrt{\pi}}}{{2}}}$e-z2erfi(z) の複素拡張
faddeeva(z) 複素数 再スケール化複素誤差関数 w(z) = e-z2 erfc(- iz)
erfi(x) 実数 虚誤差関数 erf (x) = - i*erf (ix)
VP(x,$ \sigma$,$ \gamma$) 実数 Voigt プロファイル VP(x,$ \sigma$,$ \gamma$) = $ \int^{{\infty}}_{{-\infty}}$G(x$\scriptstyle \prime$;$ \sigma$)L(x-x$\scriptstyle \prime$;$ \gamma$)dx$\scriptstyle \prime$
     

文字列関数
関数 引数 返り値
gprintf("format",x,...) 任意 gnuplot の書式解析器を適用した結果の文字列
sprintf("format",x,...) 複数個 C 言語の sprintf の返す文字列
strlen("string") 文字列 文字列中の文字数
strstrt("string","key") 文字列 部分文字列 "key" が現れる先頭位置
substr("string",beg,end) 複数個 文字列 "string"[beg:end]
strftime("timeformat",t) 任意 gnuplot による時刻解析結果の文字列
strptime("timeformat",s) 文字列 文字列 s を変換した 1970 年からの秒数
system("command") 文字列 シェルコマンドの出力を持つ文字列
word("string",n) 文字列, 整数 文字列 "string" の n 番目の単語
words("string") 文字列 文字列 "string" 中の単語数

他の gnuplot の関数
関数 引数 返り値
column(x) 整数か文字列 データファイル処理中の x 列目
columnhead(x) 整数 データファイルの最初の x 列目中の文字列
exists("X") 文字列 変数名 X が定義されていれば 1, そうでなければ 0
hsv2rgb(h,s,v) h,s,v $ \in$ [0:1] 24 ビット RGB 色値
stringcolumn(x) 整数か文字列 文字列としての x 列目の内容
timecolumn(N,"timeformat") 整数, 文字列 データ入力中の N 列目の日時データ
tm_hour(x) 整数
tm_mday(x) 整数
tm_min(x) 整数
tm_mon(x) 整数
tm_sec(x) 整数
tm_wday(x) 整数 その週の何日目
tm_yday(x) 整数 その年の何日目
tm_year(x) 整数 西暦
time(x) 任意 現在のシステム時刻
valid(x) 整数 データ中の column(x) の正当性
value("name") 文字列 名前 name の変数の現在の値



Subsections
竹野茂治@新潟工科大学
2019-01-08