【数式処理 MuPAD 入門】
平田 浩一 / 1999年12月06日 
hirata@edserv.ed.ehime-u.ac.jp 
愛媛大学教育学部数学教室 


関数のグラフ



ここでは、 関数のグラフを表示する方法について 説明します。

plotfunc

■ 関数 y = f(x)

一変数関数 y = f(x) のグラフ表示には plotfunc を使用します。

plotfunc(f, x=a..b)    関数 f のグラフを x の範囲 [a,b] で表示

最初に、変数記号 x に値が代入されていないことを確認します。

● x;
                                     x

もし、次の例のように何らかの値が代入されている場合は、 変数に NIL を代入し値を消去しておきます。

● x;
                                     6

● x:=NIL;
                                    NIL

● x;
                                     x

関数 y = sin(x) のグラフを表示してみます。

● plotfunc(sin(x),x=0..2*PI):

VCam Light というウィンドウが開き、次のようなグラフが表示されます。

[グラフ 1]


幾つかの関数をひとつのグラフに表示することもできます。

plotfunc(f1,f2,..., x=a..b)   関数 f1, f2,... のグラフを x の範囲 [a,b] で表示

3角関数 y = sin(x), y = cos(x), y = sin(x)+cos(x) の グラフを表示してみましょう。

● plotfunc(sin(x),cos(x),sin(x)+cos(x),x=0..2*PI):


[グラフ 2]

変化の激しい関数は正しく表示されませんので注意が必要です。 次の例は y = sin(1/x) を区間 [-1/10, 1/10] で表示させたものです。 実際のグラフはは x = 0 の近くで無限に振動するものです。

● plotfunc(sin(1/x),x=-1/10..1/10):


[グラフ 3]

発散するような関数のグラフも表示することができます。 次の例は y = tan(x) を区間 [-π, π] で表示させたものです。

● plotfunc(tan(x),x=-PI..PI):


[グラフ 4]

■ 関数 z = f(x,y)

2変数関数 z = f(x,y) のグラフも plotfunc で表示させることができます。

plotfunc(f, x=a..b, y=c..d)    2変数関数 f のグラフを x の範囲 [a,b]、y の範囲 [c,d] で表示

例として、z = sin(x)*cos(y) のグラフを表示してみましょう。

● plotfunc(sin(x)*sin(y), x=0..2*PI, y=0..2*PI):


[グラフ 5]
implicitplot

■ 方程式 f(x,y) = 0

方程式 f(x,y) = 0 のグラフ表示には plot::implicitplot を使用します。

implicitplot を用いてグラフを表示させる前に func を用いて関数記号を定義します。

関数記号 := func(数式, 変数1, 変数2)   

例えば、f(x, y) = x3+y3-3xy の場合は次のように定義します。

● f := func(x^3+y^3-3*x*y, x, y);

                      func((x^3 + y^3) - 3*x*y, x, y)


方程式のグラフ表示は次のようにします。

plotlib::implicitplot(関数, 変数1の範囲, 変数2の範囲, n)

数値 n としては、5 ≦ n ≦ 10 くらいの整数を指定します。n が大きくなるとグラフの精度は良くなりますが計算時間は長くなります。

先ほどの例を表示させてみます。計算に少々時間がかかります、じっと待ちましょう。

● plotlib::implicitplot(f, -2..2, -2..2, 6):


[グラフ 6]


2つめの例として、方程式 g(x, y) = (x2+y2)3 - (x2-y2)2 = 0 のグラフを求めてみましょう。

● g := func((x^2+y^2)^3 - (x^2-y^2)^2, x, y);

                 func((x^2 + y^2)^3 - (x^2 - y^2)^2, x, y)

● plotlib::implicitplot(g, -1..1, -1..1, 7):



[グラフ 7]


plot2d

■ パラメタ表示 x=f(t), y=g(t)

パラメタ表示された曲線 x=f(t), y=g(t) のグラフ表示には plot2d を用います。

plot2d(Axes=Box, [Mode=Curve, [f, g], t=[a,b], Grid=[n]])

最初に、簡単な例として楕円 x = 3 cos t, y = 2 sin t (0 ≦ t ≦ 2π) を 表示してみましょう。

● plot2d(Axes=Box, [Mode=Curve, [3*cos(t),2*sin(t)], t=[0,2*PI], Grid=[50]]):


[グラフ 8]


Axes=Box は座標軸の表示形態を指定するものです。 この他に Axes=None, Axes=Origin, Axes=Box があります。

曲線のグラフは実際は折れ線で表示されています。 Grid=[50] の指定は折れ線の本数を指定するものです。

次に x = cos 3t, y = sin 5t (0 ≦ t ≦ 2π) を 表示してみましょう。

● plot2d(Axes=Box, [Mode=Curve, [cos(3*t),sin(5*t)], t=[0,2*PI], Grid=[100]]):


[グラフ 9]


plot3d

■ パラメタ表示 x=f(s,t), y=g(s,t), z=h(s,t)

パラメタ表示された曲面のグラフ表示には plot3d を用います。

plot3d(Axes=Box, [Mode=Surface, [f,g,h], s=[a,b], t=[c,d], Grid=[m,n]])

例として曲面 x = sin s cos t, y = sin s sin t, z = cos s (0 ≦ s ≦ π, 0 ≦ t ≦ 2π) を表示してみましょう。

● plot3d(Axes=Box, [Mode=Surface, [sin(s)*cos(t),sin(s)*sin(t),cos(s)],
       s=[0,PI],t=[0,2*PI],Grid=[20,20]]):


これは球面です。

[グラフ 10]



【演習問題】

(1) f(x) = tan x とするとき、 曲線 y = f(x) と y = f′(x) を一つのグラフに表示せよ。 ただし、0 ≦ x ≦ 2π とする。

(2) 方程式 x4 + 2x2y2 + y4 + 2x2y - y3 = 0 の表す曲線のグラフを求めよ。

(3) 曲線 x = 3 cos t + cos 3t, y = 3 sin t - sin 3t (0 ≦ t ≦ 2π) のグラフを求めよ。

(4) 曲面 z = x4 + y4 - 2(x2 + y2) のグラフを求めよ。 ただし、-2 ≦ x ≦ 2、-2 ≦ y ≦ 2 とする。


【数式処理 MuPAD 入門】