next up previous
Next: 複雑な手順を記憶させる Up: 関数が与えられた時 Previous: 関数が与えられた時

gnuplot

1行で書ける関数、例えば、 sin(x)/x等は、plot sin(x)/xとするだけでよい。 ただし、xの範囲は標準のが取られる。これを変更するには、 set xrange [0:20]のようにしておけばよい。

関数値を計算する際に、いろいろ複雑な条件判断が入ってこないようなものは もっと複雑でも、gnuplotで簡単に描ける。 例えば、

のグラフを描く。ただし、は単なる定数ではなく、 他の変数wによって決まるとする。それらの関数形は、

で与えられているとしよう。 wの値をいろいろ変えた時の のグラフをひとつのグラフに重ねて描きたい。 (縦軸は、対数で表すものとし、xの範囲は11200とする)。 wの関数でもある。 これをgnuplotでグラフ化するには、gnuplotの中で、

                set logscale  y         (set log yと略せる;se lo yでもokだが、やりすぎ)
                set xrange [1 : 1200]   (set xr  [1:1200]と略せる)
                xmax(w)=(66.7*log10(w)+625)/s
                mumax(w)=29.0*w**0.8 * s**(-0.61)
                a(w)=mumax(w)*exp(b(w))
                m(w)=b(w)*n(w)
                n(w)=0.606*w**0.0417
                b(w)=3.8
                s = 2.0
                mu(x,w)=a(w)*(x/xmax(w))**m(w)* exp(-b(w)*(x/xmax(w))**n(w))
                plot mu(x,100), mu(x,1000), mu(x,10000)
  とすればよい。mu(x, w)=...としている事に注意。 最後にplotで、 w=100, 1000, 10000の時のグラフを3つ重ね合わせて表示している。 bは定数てあるが、 もしかするとwの関数にする可能生もあるので、のようにしている。 一度プロットして、sの値を少し変えたグラフを見てみたい、 というようなことも よくある。その時は、
                s=2.5
                replot
とやるだけでよい。また等の関数形を変えるのも同じようにしてできる。



Kinya Hibino
Wed May 3 15:57:30 JST 1995