【TOP】 【BACK】 【NEXT】

3次元のグラフを作成するには3つの方法があります。

例題4 z=sin x cos y (0≦x,y≦2π)のグラフを作成せよ。

Plot3D[Sin[x] Sin[y],{x,0,2Pi},{y,0,2Pi}]

Plot3D[Sin[x] Sin[y],{x,0,2Pi},{y,0,2Pi},Mesh->False]

x軸y軸z軸の比を一定にする BoxRatios->{1,1,1}

Plot3D[Sin[x] Sin[y],{x,0,2Pi},{y,0,2Pi},BoxRatios->{1,1,1}]

立体図形を細かくして表現する PlotPoint->30 デフォルト値15

例題5  z=sin X cos Y (0≦x,y≦2π)のグラフを立体図形を細かくして作成せよ

Plot3D[Sin[x] Cos[y],{x,0,2Pi},{y,0,2Pi},PlotPoints->30]

Parameterを含んだ立体の作成 ParametricPlot3D[{x(t),y(t),z(t)},{t,始めの値,終わりの値}]

例題6  x=cos t cos u, y=sin t cos u, z=sin u  (0≦t≦2π, -π/2≦t≦π/2)のグラフを作成せよ。

ParametricPlot3D[{Cos[t] Cos[u],Sin[t] Cos[u],Sin[u]},

{t,0,Pi},{u,-Pi/2,Pi/2},Boxed->False]

回転体の作図 <<Graphics'SurfaceOfRevolution'のパッケ−ジを最初にロ−ドする。

   Mathematicaの最も得意とするグラフィック機能を利用したタイムリ−な問題があったので紹介します。

北海道大学98年度

2.関数のグラフをCとする。
 次の問に答えよ。ただし,対数は自然対数とし,eはその底とする。
(1) C上の点AにおけるCの接線が原点O(0,0)を通るものとする。このとき,点Aのx座標を求めよ
(2) Cとx軸で囲まれた図形を、x軸のまわりに1回転して得られる立体の体積を求めよ。

解答
始めにどんなグラフになるのか作成すると


Plot[Sqrt[1-Log[x]^2],{x,1/E,E},

GridLines->Automatic,AspectRatio->1,

AxesLabel->{X,Y},PlotRange->{{0,3},{0,3}}]

・AxesLabel->{X,Y}:各軸に名前を入れる。

  を微分してx=tにおける接線の方程式を求めると、
…@
この求めた接線を 0.5<t<1の範囲でいろいろ作図してみよう。


Plot[Evaluate[Table[-Log[t]/{t Sqrt[1-Log[t]^2]} 

{x-t}+Sqrt[1-Log[t]^2],

{t,0.5,1,0.05}]],{x,0,E},GridLines->Automatic,

AspectRatio->1,AxesLabel->{X,Y},

PlotRange->{{0,3},{0,3}}]

Show[%,%%]


いろいろな接線を同時に表示するには接線のリストを作成する。   @の接線が原点を通過するのでx=0、y=0を代入しt(接点x座標)を求めると
 
 より
従ってAのx座標はとなる。

 今度は、Mathematicaの微分計算機能を利用して接線を表現してみよう。
Mathematicaを利用して導関数を求める1つ方法は、f[x]を定義しておき、f'[x]と入力して導関数を得る方法を用いる。
とおいて導関数を求めると


f[x_]:=Sqrt[1-Log[x]^2];

f'[x]

           Log[x]

  -(-------------------)

    x Sqrt[ 1 - Log[x] 2 ]

と出力されるのを、利用してのおける接線を作図した。
接線の方程式はy=f'(p)(x-p)+f(p)を利用してみると

f[x_]:=Sqrt[1-Log[x]^2];

p=E^((1-Sqrt[5])/2);

g[x_]:=f'[p] (x-p)+f[p];

Plot[{f[x],g[x]},{x,1/E,E},

GridLines->Automatic,AspectRatio->1,

AxesLabel->{X,Y},PlotRange->{{0,3},{0,3}}]

この接線が問題(1)の解である。

(2)は回転体の問題である。Mathematica の3Dグラフィックス機能を利用する。
x軸を中心として回転した曲面の作成であるので、パッケ−ジGraphicsの中のSurfaceOfRevolutionというパッケ−ジをロ−ドする。


<<Graphics`SurfaceOfRevolution`

SurfaceOfRevolution[Sqrt[1-Log[x]^2],{x,1/E,E},

{t,Pi,2 Pi},RevolutionAxis->{1,0,0},

ViewPoint->{-1.334,-2.381,2.000}]

右の立体図の体積を求めると、となる。
この定積分計算をさせると

Integrate[Pi (1-Log[x]^2),{x,1/E,E}]

4 Pi

----

 E

今度は、極座標を利用した問題に挑戦してみましょう。

京都大学1998年度後期

3.自然数nに対して、とする。
(1)I2の値を求めよ。
(2)xy平面上で原点からP(x,y)への距離をr、x軸の正の方向と半直線OPのなす弧度法による角をθとする。方程式r=sin2θ(0≦θ≦π/2)で表される曲線を、直線y=xの周りに回転して得られる曲面が囲む立体の体積をVとするとき、V=3πI3+2πI2と表せることを示せ。

解答
(1)は置換積分を使って

t=cosθとおくdt=-sinθdθ
 と積分範囲が変わって
 
と計算できる。

Mathematicaの定積分計算機能Integrate[f[x],{x,a,b}]を利用してみると、


Integrate[Cos[2 x]^2 Sin[x]^3,{x,0,Pi/4}]

38    26 Sqrt[2]

--- - -------------

105      105
(2)は極座標で表示されているので、パッケ−ジ"Graphics`Graphics`"をロ−ドする。
これによって、極座標を作図することが可能となる。

Needs["Graphics`Graphics`"]

PolarPlot[Sin[2 t],{t,0,2 Pi},

GridLines->Automatic,AspectRatio->Automatic]

このr=sin2θをx成分y成分ごとにパラメ−タ−表示してみると
x=r cosθ,y=r sinθへr=sin2θを代入して
x=cosθ sin 2θ,y=sinθ sin2θになりθをパラメ−タ-とする関数に置きかえられる。


今度は、パラメ−タ−tを用いてグラフを作成してみる。
パラメ−タ−tの範囲は、0≦t≦π/2とする。


ParametricPlot[{2 Sin[t] Cos[t]^2,2 Sin[t]^2 Cos[t]},

{t,0,Pi/2},GridLines->Automatic,AspectRatio->Automatic]

右図を、直線y=xを回転軸として回転した立体を作成する。任意の軸に関する回転は、RevolutionAxis->{x成分、y成分、z成分}として表示することができる。
パッケ−ジをロ−ドして、180度回転した立体を作成してみる。

<<Graphics`SurfaceOfRevolution`

SurfaceOfRevolution[{2 Sin[t] Cos[t]^2,

2 Sin[t]^2 Cos[t]},

{t,0,Pi/4},{p,0,Pi},RevolutionAxis->{1,0,1}]


全体を45度回転して、曲線は

これはx=cos2θ socθ,y=cos2θ sinθとなり


【TOP】 【BACK】 【NEXT】