2008年 11月 1日 掲載
今回の例は,結城浩著「数学ガール」から採りました.
たくさんの描画を重ねることができるようになったので, たくさんの関数を一枚の図に描いてみよう.
今回は,正弦曲線 sin(x) と, それをテイラー展開した近似式を図化してみる.
sin(x) のテイラー級数(マクローリン級数)は,
だから,1,3,5次の近似式 f1(x), f3(x), f5(x) は,
である.これを図化してみる.
計算と描画が多いので,シェルスクリプトを書こう.
#!/bin/sh awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, sin(x)}' > sin.txt awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x}' > f1.txt awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x-x^3/6}' > f3.txt awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x-x^3/6+x^5/120}' > f5.txt psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps psxy f1.txt -R -J -O -K >> sin.eps psxy f3.txt -R -J -O -K >> sin.eps psxy f5.txt -R -J -O >> sin.eps
実行すると,こういう図↓ができる.
sin(x) と f1(x) は,まあ判別できるが, f3(x) と f5(x) は,つながって見えてわかりにくい. そこで,線の太さをかえてみることにする. psxyコマンドでは -Wオプションで,線の太さを指定できる. f5(x) の線の太さを 5 にしてみよう(指定がない場合は 1 になる).
#!/bin/sh psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps psxy f1.txt -R -J -O -K >> sin.eps psxy f3.txt -R -J -O -K >> sin.eps psxy f5.txt -R -J -W5 -O >> sin.eps
少しはわかりやすくなったかな. -Wオプションに「,」でつづけて色も指定できる.
#!/bin/sh psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps psxy f1.txt -R -J -W5,black -O -K >> sin.eps psxy f3.txt -R -J -W5,red -O -K >> sin.eps psxy f5.txt -R -J -W5,blue -O >> sin.eps
f1(x) を black,f3(x) を red,f5(x) を blue にしてみた. 色名は /usr/X11R6/lib/X11/rgb.txt にあるものが使える. RGB各色を 255階調で「/」で区切って指定することもできる.
#!/bin/sh psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps psxy f1.txt -R -J -W5,0/0/0 -O -K >> sin.eps psxy f3.txt -R -J -W5,255/0/0 -O -K >> sin.eps psxy f5.txt -R -J -W5,0/0/255 -O >> sin.eps
black,red,blue で指定した場合と同じ図ができる.
図をモノクロで入稿しなくてはならない場合もあるだろう. GMT では,線種を「-」「.」で指定することができる.
「-」「.」の組合せで,いろいろなパターンを好きなように作れる.
以下の例では,sin(x) を点線,f1(x) を一点破線, f3(x) を破線,f5(x) を実線で描画している.
#!/bin/sh psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -W5,. -K > sin.eps psxy f1.txt -R -J -W5,-. -O -K >> sin.eps psxy f3.txt -R -J -W5,- -O -K >> sin.eps psxy f5.txt -R -J -W5 -O >> sin.eps
色と線種を同時に指定することも,もちろんできる. 線の太さ,色,線種を「,」で区切って指定する.
#!/bin/sh psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -W5,black,. -K > sin.eps psxy f1.txt -R -J -W5,black,-. -O -K >> sin.eps psxy f3.txt -R -J -W5,red,- -O -K >> sin.eps psxy f5.txt -R -J -W5,blue -O >> sin.eps
これは,ちょっとやりすぎかな?
[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]
(C) 2008 KDO