第3章
Mathematica のグラフィックス
1
1
0.5
0.5
0
0
-1
-0.5
-0.5
0
0.5
1
- 53 -
-1
1.Mathematica のグラフィックス(1)
1-1
いろいろな関数とグラフ
関数のグラフ
1-1-1 陽関数のグラフの基本
書式
備考
Plot[関数,{変数,表示する変数の最小値,最大値}]
変数の最小値,最大値は{変数,最小値,最大値}で指定
たとえば、 y = x 2 (−2 ≤ x ≤ 2)
4
のグラフを描く場合,
Plot[x^2,{x,-2,2}]
と入力して実行する。
グラフを描く範囲は {x,-1,2} のように、{変数,最小値,最大値}と
指定する。
3
2
1
-2
-1
1
[例題1] 次の関数のグラフを描け。
①
y=
sin x
(−π ≤ x ≤ π )
x
②
y = sin x + cos(5 x) (−π ≤ x ≤ π )
[練習問題1] 次の関数のグラフを描け。
③
y = sin x (−π ≤ x ≤ π )
③
y = x 2 + 3x + 4 (−5 ≤ x ≤ 5)
⑤
y = sin x 2 (−π ≤ x ≤ π )
1
(1 ≤ x ≤ 10)
x
②
y = log
④
y = 3x − 4 (−5 ≤ x ≤ 5)
1-1-2 オプションのいろいろ
オプション
書式
座標軸の表示・非表示
軸のラベル表示
フレームをつける
Axes >False
AxesLabel->{"x","y"}
Frame->True
縦横の目盛り比率を1に
AspectRatio->Automatic
色をつける①
色をつける②
線の太さの指定
点線
目盛りの指定
グラフのタイトル
格子の表示
表示範囲(y 軸方向)
表示範囲(縦横両方向)
PlotStyle->Hue[h] (0~1 の色相 h)
PlotStyle->RGBColor[r,g,b]
PlotStyle->AbsoluteThickness[n]
PlotStyle->AbsoluteDashing[{n,m}]
Ticks->{{x 軸上の目盛り},{y 軸上の目盛り}}
PlotLabel->"文字列"
GridLines->Automatic
PlotRange->{y1,y2}
PlotRange->{{x1,x2},{y1,y2}}
- 54 -
初期値
Axes >True
表示なし
Frame->False
AspectRatio->GoldenRatio
(黄金比)
黒
黒
実線
自動
なし
なし
値域全体
値域全体
2
<参考>
・ Hue[]には、0~1 の数値を小数で指定する。
・ RGBColor[r,g,b]の「r,g,b」はそれぞれ 0~1 の数値を小数で指定する。
・ AbsoluteThickness[n]の「n」には線の太さを指定する数値を入れる。
・ AbsoluteDashing[{n,m}]の「m,n」には破線の長さを指定する数値を入れる。
・ 目盛りをつけたくないときは「None」とする。
・ 格子の位置を指定する場合は、(9)目盛りの指定と同様に座標を指定する。
[例題2]
①
②
③
④
⑤
⑥
⑦
⑧
⑨
⑩
⑪
⑫
⑬
y = x 2 (−2 ≤ x ≤ 2) のグラフをもとに,次のようにオプションをつけて描画せよ。
Plot[x^2,{x,-2,2},Axes->False]
Plot[x^2,{x,-2,2},AxesLabel->{"x 軸","y 軸"}]
Plot[x^2,{x,-2,2},Frame->True]
Plot[x^2,{x,-2,2}, AspectRatio->Automatic]
Plot[x^2,{x,-2,2},PlotStyle->Hue[0]] (赤色)
Plot[x^2,{x,-2,2},PlotStyle->RGBColor[0.3,0.7,0]]
Plot[x^2,{x,-2,2},PlotStyle->AbsoluteThickness[3]]
Plot[x^2,{x,-2,2},PlotStyle->AbsoluteDashing[{10,5}]]
Plot[x^2,{x,-2,2},Ticks->{{-1.5,-0.5,0.5,1.5},{0.25,2.25}]
Plot[x^2,{x,-2,2},PlotLabel->"2次関数"]
Plot[x^2,{x,-2,2},GridLines->Automatic]
Plot[x^2,{x,-2,2},PlotRange->{-2,10}]
Plot[x^2,{x,-2,2},PlotRange->{{-3,3},{-0.5,5}}]
[練習問題2] 次のグラフを描け。
①
②
③
④
- 55 -
1-1-3 2本以上のグラフを描く
書式
備考
Plot[{f1(x),f2(x)},{x,a,b}]
g1=Plot[f1(x),{x,a,b}]
g2=Plot[f2(x),{x,a,b}]
Show[g1,g2]
{ }で複数の式を指定する
別々のグラフに g1、g2 のような名前をつけておいて,
「Show」
でまとめて表示する。
[例題3] 次の関数のグラフを描け。
①
y = x, y = x 2 , y = x3 (−2 ≤ x ≤ 2)
②
y = sin x, y = sin 2 x, y = sin 3x (0 ≤ x ≤ 2π )
(3 本のグラフの色 Hue[0.1],Hue[0.2],Hue[0.3])
<参考>
・ 三角関数の範囲指定は弧度法(rad)で行う。
[練習問題3] 次の関数のグラフを描け。
①
y = 3 x + 1, y = x 2 + 2 x − 1 (−3 ≤ x ≤ 3)
②
y = 2 x + 1, y = − x 2 + 3 (−5 ≤ x ≤ 5)
②
y = x 2 − x , y = x 2 − x (−2 ≤ x ≤ 2)
④
y = 3x − 4 (−5 ≤ x ≤ 5)
⑤
y = cos x + sin 3x, y = 2 x sin x (0 ≤ x ≤ 2π )
1-1-4 媒介変数表示のグラフ
書式
備考
ParametricPlot[{x の関数,y の関数},{媒介変数,最小値,最大値}]
⎧ x = f (t )
(α ≤ t ≤ β )
⎨
⎩ y = g (t )
[例題4] 次の関数のグラフを描け。
⎪⎧ x = t
(−3 ≤ t ≤ 3)
① ⎨
⎪⎩ y = 2t − 1
2
(無理関数)
②
t
⎧
10
⎪ x = e cos t
(0 ≤ t ≤ 12π )
⎨
t
⎪
10
⎩ y = e sin t
<参考>
・ 縦横比がおかしい場合は,AspectRatio->Automatic をつけ加える。
[練習問題4] 次の関数のグラフを描け。
⎧ x = cos 3t
(0 ≤ t ≤ 2π )
① ⎨
⎩ y = sin 2t
⎧ x = t − sin t
(0 ≤ t ≤ 4π )
② ⎨
⎩ y = 1 − cos t
(リサージュ曲線)
(サイクロイド)
- 56 -
(対数螺旋)
⎧
⎛ 17 ⎞
⎪ x = 102cos t + 60cos ⎜ 15 t ⎟
⎪
⎝
⎠
(0 ≤ t ≤ 30π )
③ ⎨
⎪ y = 102sin t − 60sin ⎛ 17 t ⎞
⎜
⎟
⎪⎩
⎝ 15 ⎠
(内トロコイド)
1-1-5 陰関数のグラフ
2つの変数 x,y の関係式 F ( x, y ) = 0 から、y が x の関数として定まるとき、関数 y ( x) を F ( x, y ) = 0 から
定まる陰関数という。陰関数 y ( x) )を a ≤ x ≤ b で描くためには、陰関数のグラフの表示用パッケージを先に
読み込んでおく必要がある。
書式
<<Graphics`ImplicitPlot`
ImplicitPlot[F(x,y)==0,{x,a,b}]
備考
ImplicitPlot 関数を使うために先行して実行せねば
ならない。
{x,a,b}は x の範囲。
[例題5] 次の関数のグラフを描け。
①
x2
+ y 2 = 1 (−3 ≤ t ≤ 3)
4
②
2 x 2 − xy + y 2 − 1 = 0 (−1 ≤ t ≤ 1)
[練習問題5] 次の関数のグラフを描け。
①
1-2
x3 − 3xy + y 3 = 0 (−3 ≤ t ≤ 3)
②
x2 y 2
−
= 1 (−10 ≤ t ≤ 10)
9
4
アニメーション
Mathematica では、何枚かの絵を描かせて、いわゆる「パタパタマンガ」式にアニメーションを作ること
ができる。
まず、Do ループ式をつかった処理について学習しよう。
1-2-1
Do ループ
繰り返し作業をさせる場合、Do ループ関数を使うと便利である。
書式
Do[作業,{変数,最小値,最大値}]
備考
作業のところに Plot,Print などをいれる。
[例題6] 次のプログラムを実行せよ。
Do[Print[j!],{j,1,10}]
- 57 -
[練習問題6]
y = ax 2 (−3 ≤ x ≤ 3) のグラフを,パラメータ a の値を −5 ≤ a ≤ 5 の範囲で変化させたグラ
フを描け。
1-2-2 アニメーションの作り方
[例題7] 次のようにして y = sin( x − t ) (0 ≤ x ≤ 2π ) のグラフを描き,アニメーションを作成せよ。ただし,
π
刻みで描画せよ。
6
次のようにして、12 枚の絵を描く。
Do[Plot[Sin[x-t],{x,0,2 Pi}],{t,0,2 Pi,Pi/6}]
12 枚のグラフにかかっているセルブラケットをクリックし、反転表示させる。
CTRL+y を押す。
②③の代わりに、いずれかの絵をダブルクリックしてもよい。
ウインドウの下の方についているボタンで、逆向きにしたりスピードを変えることができる。
t の値は 0 から 2πまで
①
②
③
④
⑤
[練習問題7] 媒介変数表示のグラフ、陰関数表示のグラフをそれぞれ2つずつ適当に考えて創作せよ。
Web ページなどを参考にしてもよい。
2.Mathematica のグラフィックス(2)
2-1
グラフィックス・プリミティブ
図形の表現
2-1-1
グラフィックス・プリミティブとは
前回のグラフィックスの学習では、関数式の変数と値をプロットするのものでしたが、本日は引数に基本
図形の特徴データを与えて図形を描画する「グラフィックス・プリミティブ」について学習します。
たとえば、Point[{x,y}]で、座標(x,y)に点を表示したり、Line[{p1,p2,…}]で、p1,p2,…で指定する点を
結ぶ線分を表示します。そのほか、円や多角形、3 次元の空間図形の描画も可能です。
書式
Show[Graphics[図形関数]]
備考
グラフィックス・プリミティブによる図形の表示には,
「Show 関数」を用いる。
2-1-2 いろいろな図形の描画
オプション
点の作図
直線の作図
円の作図
円盤の作図
長方形の作図
多角形の作図
書式
説明
Show[Graphics[Point[{x,y}]]]
Show[Graphics[Line[{p1,p2,p3}]]]
Show[Graphics[Circle[{x,y},r]]]
Show[Graphics[Disk[{x,y},r]]]
Show[Graphics[Rectangle[{p1,p2}]]]
Show[Graphics[Polygon[{p1,p2,p3,…}]]]
- 58 -
座標 x,y の点の描画
点 p1,p2,p3 の座標を結ぶ
中心(x,y)、半径 r の円
中心(x,y)、半径 r の円盤
p1,p2 を対角点とする長方形
p1,p2,p3,…を頂点とする多角形
[例題8] 次の図形を作図せよ。
① Show[Graphics[{PointSize[0.02],Point[{1,2}]},Axes->True]]
② Show[Graphics[Line[{{0,0},{1,1},{2,0}}]]]
③ Show[Graphics[Circle[{1,2},3],Axes->True,AspectRatio->Automatic]]
④ Show[Graphics[Disk[{1,2},3],Axes->True,,AspectRatio->Automatic]]
⑤ Show[Graphics[Circle[{0,0},{3,4}],AspectRatio->Automatic]] (楕円)
⑥ Show[Graphics[Disk[{0,0},3,{0,2Pi/3}],AspectRatio->Automatic]] (扇形)
⑦ Show[Graphics[Rectangle[{{-1,-1},{3,5}}]]]
⑧ Show[Graphics[{GrayLevel[0.5],Rectangle[{-1,-1},{3,5}]}]]
⑨ Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}]]]
⑩ Show[Graphics[{Hue[0.1],Polygon[{{0,0},{-1,2},{1,3},{2,0}}]}]]
[練習問題8] 次のような図形を作成せよ。
①
②
③
④
2-1-3 いろいろな描画の表現(オプション)
オプション
書式
座標軸を表示する
フレームを表示する
表示範囲(y 軸方向)
表示範囲(縦横両方向)
Axes->True
Frame->True
PlotRange->{y1,y2}
PlotRange->{{x1,x2},{y1,y2}}
縦横比率を 1 にする
AspectRatio->Automatic
色の指定
灰色濃淡の指定
線の太さの指定
点線の形式の指定
テキスト
Hue[h] (0~1 の色相 h)
GrayLevel[h] (0~1 の色相 h)
AbsoluteThickness[h]
AbsoluteDashing[{a,b}]
Show[Graphics[Text["文字列",{x,y}]]]
- 59 -
初期値
Axes->False(None)座標軸なし
Frame->False(None)フレームなし
値域全体
値域全体
AspectRatio->GoldenRatio
黄金
比
Hue[0] 黒
Hue[0] 黒
極細
長さ a,b で区切られた破線
{x,y}を中心として配置する文字列
[例題9] 次のようにオプションをつけて図形を描画せよ。
① Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}],Axes->True]]
② Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}],Frame->True]]
③ Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}],Axes->True,PlotRange->{-2,4}]]
Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}],Axes->True,PlotRange->{{-3,3},{-2,4}}]]
④ Show[Graphics[Polygon[{{0,0},{-1,2},{1,3},{2,0}}],Axes->True,PlotRange->{{-3,3},{-2,4}},
AspectRatio->Automatic]]
⑤ Show[Graphics[{Hue[0.6],Polygon[{{0,0},{-1,2},{1,3},{2,0}}]},Axes->True,PlotRange->{{-3,3}
,{-2,4}},AspectRatio->Automatic]]
⑥ Show[Graphics[{GrayLevel[0.8],Polygon[{{0,0},{-1,2},{1,3},{2,0}}]},Axes->True,PlotRange->{
{-3,3},{-2,4}},AspectRatio->Automatic]]
⑦ Show[Graphics[{AbsoluteThickness[3],Circle[{1,2},3]},Axes->True,AspectRatio->Automatic]]
⑧ Show[Graphics[{AbsoluteDashing[{3,5}],Circle[{1,2},3]},Axes->True,AspectRatio->Automatic]]
⑨ Show[Graphics[Text["コンピュータ数学",{0,0}],Axes->True]]
Show[Graphics[Text["コンピュータ数学",{0,0}]],DefaultFont->{"Helvetica",24}]
Show[Graphics[Text["コンピュータ数学",{0,0},{-1,-1}]],DefaultFont->{"Helvetica",24}]
Show[Graphics[Text["Comp-Math",{0,0},{0,0},{0,1}]],DefaultFont->{"Helvetica",24}]
Show[Graphics[Text["Comp-Math",{0,0},{0,0},{-1,0}]],DefaultFont->{"Helvetica",24}]
<参考>
・ Text["文字列",{x,y},{-1,0}]で、左揃え。{x,y},{-1,-1}で、左下揃え。
・ {x,y},{a,b},{0,1}で、文字列を下から上へ垂直に配置。
・ {x,y},{a,b},{-1,0}で、文字列が上下逆さに配置
[練習問題9] 次のような図形を作成せよ。ただし,縦横比を 1(Automatic)で示すこと。
① 3つの同心円
中心(1,2)を共通とする半径 1,2,3 の円。ただし、線の太さの引数と半径の大きさを同じとし、座標軸を
加えること。
② 傾いた文字
「Comp-Math」の文字列を右下がりで表示せよ。
③ 正多角形
1 辺が 2 の正方形、正三角形、正六角形を表示させよ。ただし、それぞれの重心が原点にくるように頂
点を決めよ。
②
①
- 60 -
③
2-1-4 数学的な作図
[例題10]
① 単位円を描く
Show[Graphics[Circle[{0,0},1]],AspectRatio->Automatic,Axes->True]
② 動径と角度
a=Circle[{0,0},1];
b={Hue[1],Line[{{0,0},{Cos[Pi/3],Sin[Pi/3]}}]};
Show[Graphics[{a,b}],AspectRatio->Automatic,Axes->True ]
a=Circle[{0,0},1] ;
b={Hue[1],Line[{{0,0},{Cos[Pi/3],Sin[Pi/3]}}]};
c=Circle[{0,0},0.2,{0,Pi/3}];
Show[Graphics [{a,b,c}],AspectRatio->Automatic,Axes->True]
③ 点を作って結ぶ(単位円の中に正三角形を描く)
a=Circle[{0,0},1] ;
b={Hue[1],Line[Table[{Cos[t],Sin[t]},{t,0,2Pi,2Pi/3}]]};
Show[Graphics[{a,b}],AspectRatio->Automatic,Axes->True]
[練習問題10]
① 単位円の中にぴったりはまる正五角形を描け。
② 単位円の中に正五角形の頂点を結んだ星形を描け。
①
②
- 61 -
2-2
幾何学模様(プリミティブ図形の組合せ)
2-2-1 点の配置
[例題11]
① 格子状に点を配置する
Show[Graphics[Table[Point[{k,i}],{i,1,10},{k,1,10}]], AspectRatio->1];
② サイズと濃淡の変更
Show[Graphics[{PointSize[0.03], GrayLevel[0.5], Table[Point[{k, i}], {i, 1, 10}, {k, 1, 10}]}],
AspectRatio -> 1];
③ 点の大きさの変更
Show[Graphics[Table[{PointSize[0.001 i k], Point[{k,10-i}]},
{i,1,10},{k,1,10}]],AspectRatio->1];
④ 点の配置の変更
p=Table[Point[{Sqrt[3] i/2.0,j+1/2 Mod[i,2]}], {i,0,10}, {j,0,8}];
Show[Graphics[p],AspectRatio->Automatic]
⑤ 色と大きさの変化
Show[Graphics[Table[{Hue[i*k/100],PointSize[0.002*(1+Abs[i-5])*(1+Abs[k-5])],
Point[{k,10-i}]},{i,1,10},{k,1,10}]],AspectRatio->1]
[練習問題11] 点を配置したオリジナルな図形を作成せよ。
2-2-2 線の組み合わせ
[例題12]
① 碁盤の目
c=Table[Line[{{i,0}, {i,10}}], {i,0,10}];
d=Table[Line[{{0,i}, {10,i}}], {i,0,10}];
Show[Graphics[{Thickness[.01],c,d}], AspectRatio->1];
② フェンス
a=Table[Line[{{k,10-i},{i,10-k}}], {i,0,10}, {k,0,10,10}];
b=Table[Line[{{k,i}, {i,k}}], {i,0,10}, {k,0,10,10}];
Show[Graphics[{Thickness[.01], a, b}], AspectRatio -> 1];
③ 織物
a=Table[{Hue[i/10],Line[{{k,50-i},{i,50-k}}]},{i,0,50},{k,0,50,50}];
b=Table[{Hue[i/10],Line[{{k,i},{i,k}}]},{i,0,50},{k,0,50,50}];
c=Table[{Hue[i/10],Line[{{i,0},{i,50}}]},{i,0,50}];
d=Table[{Hue[i/10],Line[{{0,i},{50,i}}]},{i,0,50}];
Show[Graphics[{Thickness[.005],a,b,c,d}],AspectRatio->1];
[練習問題12] 線を配置したオリジナルな図形を作成せよ。
- 62 -
2-2-3 多角形の配置
[例題13]
① 標準の三角形
a={{0,0},{0.5,1},{1,0}};
Show[Graphics[Polygon[a]], AspectRatio->1];
② 山々のグラデーション
p=Table[{GrayLevel[1/10 Mod[i+j,11]],Polygon[Table[a[[k]]+{i,j}, {k,1,3}]]}, {i,0,5},
{j,0,5}];
Show[Graphics[p], AspectRatio->1]
③ チェック模様のハンカチ
npolygon[n_Integer] := Table[N[{1/2 Sin[i* 2* Pi/n] + .5, 1/2 Cos[i* 2Pi/n] + .5}], {i, 1, n}];
a = npolygon[4];
p = Table[Polygon[Table[a[[k]] + {i, j}, {k, 1, 4}]], {i, 0, 5}, {j, 0, 5}];
Show[Graphics[{GrayLevel[.5], p}], AspectRatio -> 1, Background -> RGBColor[0, 0, 0]];
④ 正多角形の定義と、いろいろな多角形の配置
npolygon[n_Integer]:= Table[N[{Sin[i/n*2*Pi]/2+.5,Cos[i/n*2*Pi]/2+.5}],{i,1,n}];
p=Table[{Hue[(i+j)/10],Polygon[Table[ npolygon[Mod[i*j,7]+2][[k]]+{i,j},{k,1,Mod[i*j,7]+2}]]
},{i,1,6},{j,1,6}];
Show[Graphics[p,PlotRange->{{1,7},{1,7}}],AspectRatio->1]
[練習問題13] 多角形を配置したオリジナルな図形を作成せよ。
2-2-4 円の組み合わせ
[例題14]
① 同心円
Show[Graphics[Table[Circle[{0,0},i], {i,1,10}]], AspectRatio->1];
② 同心円のカラー版
Show[Graphics[{Circle[{0, 0}, 1], Table[Circle[0.5{Cos[t], Sin[t]},
0.5, {t, t + Pi}], {t, 0, 2Pi, 2Pi/4}]}], AspectRatio -> Automatic]
③ 巴(ともえ)模様
Table[Show[Graphics[{
Table[{Hue[t/(2Pi)], Disk[{0, 0},1, {t, t + 2Pi/n}]}, {t, 0, 2Pi, 2Pi/n}],
Table[{Hue[(t - 2Pi/n)/(2Pi)], Disk[0.5{Cos[t], Sin[t]}, 0.5, {t - 0.01, t + Pi}]}, {t, 0, 2Pi,
2Pi/n}]}], AspectRatio -> Automatic], {n, 2, 4}]
④ 巴模様のカラー版
Show[Graphics[Table[Circle[{0, 0}, i], {i, 1, 10}]], AspectRatio -> 1];
Show[Graphics[Evaluate[Table[{ Hue[i/10], Disk[{0, 0}, i]}, {i, 10, 1, -1}]]] , AspectRatio ->
1]
[練習問題14] 様々なプリミティブと Table[ ]をうまく使って,繰り返しのあるオリジナルな図形を作
成せよ。
- 63 -
3.Mathematica のグラフィックス(4)
3-1
3Dグラフィックス(その1)
3次元グラフ
3-1-1 2次元グラフの復習
平面上で f(x)=sin x のグラフを描くには、次のように行った。
① Plot[Sin[x], {x,-Pi,Pi}]
② f[x_]:=Sin[x];
Plot[f[x], {x,-Pi,Pi}]
また、円 x2+y2=1 のグラフは、媒介変数を使って次のように描くことができ
た。
③ ParametricPlot[{Cos[t],Sin[t]},{t,0,2Pi},AspectRatio->Automatic]
さらに、
複数のグラフを描くときは、グラフをいったん文字 a,b に覚えさせて、
Show[ ]を使って複数表示をさせることもできた。
④ a=Plot[Sin[x],{x,-2Pi,2Pi}];
b=Plot[Cos[x],{x,-2Pi,2Pi}];
Show[{a,b}]
これらの記述を思い出しながら、今回は3次元グラフィックに挑戦してみよう。
3-1-2 3Dグラフ z=f(x,y)の関数
書式
備考
Plot3D[z の関数,{x,xmin,xmax},{y,ymin,ymax}]
[例題15]
①
②
y = x 2 (−2 ≤ x ≤ 2) のグラフをもとに,次のようにオプションをつけて描画せよ。
Plot3D[-x+y,{x,-2,2},{y,-2,2}]
Plot3D[Sin[2Pi Sqrt[x^2+y^2]],{x,-1,1},{y,-1,1}]
[練習問題15] 次のグラフを描け。
①
z = ex
2
− y2
②
- 64 -
z = sin( x 2 + y 2 )
3-1-3 オプション
書式
PlotPoints->n
ViewPoint->{x,y,z}
Axes->True (False)
Boxed->True (False)
意味
プロットする点の数を変える(初期設定は 15)
座標(x,y,z)の視点から見る
座標軸の有無
外枠の表示の有無
[例題16] 次の関数のグラフを描け。
① Plot3D[Sin[x]Cos[y],{x,-Pi,Pi},{y,-Pi,Pi},PlotPoints->40]
② Plot3D[Sin[x]Cos[y],{x,-Pi,Pi},{y,-Pi,Pi},ViewPoint->{2,2,1}]
③ Plot3D[Sin[x]Cos[y],{x,-Pi,Pi},{y,-Pi,Pi},Axes->False]
④ Plot3D[Sin[x]Cos[y],{x,-Pi,Pi},{y,-Pi,Pi},Boxed->False]
<参考>
・ PlotPoints はグラフを描くときにとる点(サンプル点)を増減させる。
・ ViewPoint の座標は、グラフの中心を{0,0,0}としたときの視点の相対位置である。
[練習問題16] Plot3D[Sin[x]Cos[y],{x,-Pi,Pi},{y,-Pi,Pi}]をもとに,次のグラフを描け。
①
②
③
④
- 65 -
3-1-4 3Dグラフの媒介変数表示
書式
ParametricPlot3D[{x の関数,y の関数 z の関数}, {媒介変数,最小値,最大値}]
ParametricPlot3D[{x の関数,y の関数 z の関数},{媒介変数 1,最小値,最大値},{媒介変数 2,最小値,最大値}]
[例題17] 次の関数のグラフを描け。
① 3次元曲線(媒介変数1つ)
ParametricPlot3D[{Cos[t],Sin[t],t/10},{t,0,6Pi}]
② 曲面(媒介変数2つ)
ParametricPlot3D[{s Cos[t],s Sin[t],t/5},{t,0,2Pi},{s,-1,1}]
[練習問題17] 次の関数のグラフを描け。
⎧ x = 2sin t cos s
⎪
① ⎨ y = 2sin t sin s (0 ≤ t ≤ 2π , 0 ≤ s ≤ 2π )
⎪ z = 2cos t
⎩
⎧x = s
⎪⎪
② ⎨y = t
(−2 ≤ s ≤ 2, − 2 ≤ t ≤ 2)
⎪
2
2
⎪⎩ z = ( s /1.3) − ( t /1.5 )
⎧ x = (5 + 3cos s ) cos t
⎪
③ ⎨ y = (5 + 3cos s )sin t (0 ≤ s ≤ 2π , 0 ≤ t ≤ 2π )
⎪ z = 2sin s
⎩
⎧ x = cos s + t cos( s / 2) cos s
⎪
④ ⎨ y = sin s + t cos( s / 2)sin s (0 ≤ s ≤ 2π , − 0.3 ≤ t ≤ 0.3)
⎪ z = t sin( s / 2)
⎩
3-2
正多角形と正多面体
3-2-1 正多角形の性質
まずは、多角形や多面体の性質を扱うためのパッケージをロードしておこう。
<<Geometry`PolyTopes`
意味
頂点の数
辺の数
頂点の座標
面積
内接円の半径
外接円の半径
書式
NumberOfVertices[ ]
NumberOfEdges[ ]
Vertices[ ]
Area[ ]
InscribedRadius[ ]
CircumscribedRadius[ ]
- 66 -
[例題18]
① 正三角形(Triangle)の頂点の数、辺の数、面の数
正三角形を t と定義 t=Triangle;
NumberOfVertices[t]
NumberOfEdges[t]
② 正三角形(Triangle)の単位円上での各頂点の位置。ただし、1点は{1,0}とする。
Vertices[t]
③ 正三角形(Triangle)の辺の長さを1としたときの面積
Area[t]
④ 正三角形(Triangle)の辺の長さを1としたときの内接円と外接円の半径。
InscribedRadius[t]
CircumscribedRadius[t]
[練習問題18] 次のそれぞれの図形について、頂点の数、辺の数、辺の長さを1としたときの面積、内
接円の半径、外接円の半径をそれぞれ求めよ。
(各多角形の名前を変数 t に代入しなおして上記のものを使うと便利。)
頂点
辺
面積
内接円
正3角形(Triangle)
正方形(Square)
正5角形(Pentagon)
正6角形(Hexagon)
正7角形(Heptagon)
3-2-2 正多面体の性質
意味
頂点の数
辺の数
面の数
頂点の座標
表面積
体積
内接球の半径
外接球の半径
書式
NumberOfVertices[ ]
NumberOfEdges[ ]
NumberOfFaces[ ]
Vertices[ ]
Area[ ]
Volume[ ]
InscribedRadius[ ]
CircumscribedRadius[ ]
[例題19]
① 正 4 面体の頂点の数、辺の数、面の数
正 4 面体を t と定義
t=Tetrahedron
頂点の数 NumberOfVertices[t]
辺の数
NumberOfEdges[t]
面の数
NumberOfFaces[t]
② 一辺を1とする正4面体の頂点の座標、表面積、体積
- 67 -
外接円
頂点の座標 Vertices[t]
表面積
Area[t]
体積
Volume[t]
③ 正4面体の内接球の半径と外接球の半径
内接球の半径 Inscribed[t]
外接球の半径 Circumscribed[t]
[練習問題19] 上記のそれぞれの図形について、頂点の数、辺の数、面の数、辺の長さを1としたとき
表面積、体積をそれぞれ求めよ。また、頂点と辺と面の数の間にはどんな関係式が成り立つだろう。
(各多面体の名前を変数 t に代入しなおして上記のものを使うと便利。)
頂点
辺
面
表面積
体積
正4面体(Tetrahedron)
正6面体(Cube)
正8面体(Octahedron)
正12面体(Dodecahedron)
正20面体(Icosahedron)
3-3
立体図形のグラフィック表示
3-3-1 正多面体のグラフィック表示
まずは、パッケージをロードしておこう。
<<Graphics`Polyhedra`
書式
Show[Polyhedron[立体]]
備考
正4面体(Tetrahedron)、正6面体(Cube)
、正8面体(Octahedron)
正12面体(Dodecahedron)、正20面体(Icosahedron)}
[例題20] 正4面体を描画せよ。
Show[Polyhedron[Tetrahedron]]
[練習問題20] 正6面体、正8面体,正12面体、正20面体を描画せよ。
3-3-2 その他の立体図形
まずは、次のパッケージをロードします。
<<Graphics`Shapes`
- 68 -
書式
Show[Graphics3D[立体]
備考
球( Sphere[]),らせん(Helix[]),
メビウスの輪(MoebiusStrip[]),円錐(Cone[])
トーラス (Torus[]),円柱(Cylinder[])
[例題21] 球を描画せよ。
Show[Graphics3D[Sphere[]],Boxed->False]
[練習問題21] らせん,メビウスの輪,円錐,トーラス,円柱を描画せよ。
3-3-3 立体の角をとる
書式
備考
Show[Truncate[Polyhedron[多面体], カットする辺の割合]]
[例題22] 正六面体の角をカットして描画せよ。
Show[Truncate[Polyhedron[Cube], 0.1], Boxed -> False]
<参考>
・ Truncate[ ]によって、多面体の頂点を切り取って新しい多面体を作ることができる。なお、切り取る
位置(1辺の長さに対する割合)については 0~0.5 の範囲で指定する。
[練習問題22] 右のような立体を描画せよ。
3-3-4 準正多面体
正多面体はすべての面が同じ正多角形で、角頂点の構成が等しい多面体であるが、準正多面体では「すべ
て同じ」という条件を取り去ることで少し自由度を高くしている。準正多面体は、正多角形を柱状にしたも
のを除いて 14 種類あり、これらの多くは正多面体の頂点を切り取ることで作ることができる。Truncate 関
数を用いて、いろいろな準正多面体を描いてみよう。
- 69 -
[例題23] 以下の準正多面体を表示せよ。
① Show[Truncate[Polyhedron[Tetrahedron,1/3]]]
② Show[Truncate[Polyhedron[Octahedron,1/3]]]
③ Show[Truncate[Polyhedron[Cube,1-1/Sqrt[2]]]]
④ Show[Truncate[Polyhedron[Icosahedron,1/3]]]
⑤ Show[Truncate[Polyhedron[Dodecahedron,1/2]]]
⑥ Show[Truncate[Polyhedron[Octahedron,1/2]]]
⑦ Show[Truncate[Polyhedron[Dodecahedron,(5-Sqrt[5])/10]]]
[練習問題23] 正 20 面体の角を切り取ることを考える。各面の正3角形をうまく正6角形になるように
切り取ったとき、その切り口は、正6角形と等しい辺の長さを持つ正5角形になり、いわゆるサッカーボ
ール型になる。(化学の分野で話題となっているフラーレン(C60)は、この立体の各頂点に炭素を配置し
た物質であり、ナトリウムなどを加えると超伝導を示す性質を持っている。)
さて、この多面体の頂点の数、辺の数、面の数、および切断する前の辺の長さを1としたときの多面体
の体積を求めよ。
(ヒント)
Show[Polyhedron[Icosahedron]]
Show[Truncate[Polyhedron[Icosahedron],1/3]]
Volume[Icosahedron]
Area[Pentagon]
CircumscribedRadius[Pentagon]
- 70 -
課題研究
次の課題を Mathematica を用いて行い,プログラムリスト,出力結果などを印刷して提出しなさい。最初
に番号,氏名を忘れずに入力すること。
[課題1] 方程式 2sin x + x3 − x = 2 x 2 の解を,2 つのグラフを描画したのち FindRoot を用いて求めよ。
[課題2] 次のような図形を作成せよ。
[課題3] 円が直線上を滑らないで転がるとき,その円周上の定点が
描く軌跡を「サイクロイド曲線」といい,媒介変数表示を用いて
⎧ x = t − sin t
⎨
⎩ y = 1 − cos t
で表わされる。
右図のように点の軌跡を作図し,アニメーションにせよ。
- 71 -
[課題4] 関数 z = ( x 2 + 3 y 2 )e1− x
2
− y2
を描画したのち,等高線表示を
与える関数 ContourPlot を用いて描画せよ。
2
2
⎪⎧sin xy ( x + y ≤ 1)
を If 文を用いて描画せよ。
[課題5] 関数 z = ⎨
( x 2 + y 2 > 1)
⎪⎩0
- 72 -
© Copyright 2026 Paperzz