■媒介変数と陰関数の描画(その1)

 陽関数(従属変数型関数)では,y=f(x)がどんなに複雑であってもきちんと式に書き表わすことさえできればグラフを描くことができます.また,媒介変数型関数(x,y)=(f(t),g(t))の関数描画も容易ですが,陰関数f(x,y)=0のグラフは簡単には描けません.もし,陰関数をyについて解いてy=g(x)と陽関数に変形できる場合は一価関数となるので,簡単にグラフを描くことができます.また,パラメトライズ(媒介変数表示の形に書くこと)ができればこれも容易に描画可能です.

[1]3次曲線のパラメータ表示例

 デカルトの正葉線x^3−3axy+y^3=0(a>0)では,y/x=t,すなわちy=txとおくことによってパラメータ表示の形に書くことができます.

  x=3at/(1+t^3),y=3at^2/(1+t^3)

この3次曲線は重根をもち,原点(0,0)が特異点になります.

 しかし,このままではtとの対応が悪く

  x=3a(1−t)(1−t^2)/2(1+3t^3),

  x=3a(1+t)(1−t^2)/2(1+3t^3),

の方がきれいに描くことができます.

 同様に,特異点をもつy^2=x^3やy^2=x^2(x+1)は楕円曲線ではありません.前者は(t^3,t^2),後者は(t^2−1,t(t^2−1))とパラメトライズできます.

[2]4次曲線のパラメータ表示例

 レムニスケートは

  x=t(t^2+1)/(1+t^4)

  y=−t(t^2−1)/(1+t^4)

のようにパラメトライズすることができます.

===================================

[3]陰関数

 陽関数y=g(x)はf(x,y)=y−g(x)と同じことになるので,陽関数は必ず陰関数に書き直すことができます.陰関数のグラフをコンピュータで描く方法はいろいろと工夫されています.

 まず考えられるのは,グラフの全領域内を微小な長方形で埋めつくし,格子点上に離散的に関数値を計算して与えておき,各々の長方形の4辺とf(x,y)=0との交点を1次補間法で求める方法です.しかし,この方法によるグラフ表示はかなり面倒で,x値,y値の探索に時間がかかるため描画時間も長くなりますし,特異点に対しては正しく描画できないという欠点もあります.そこで,もっと一般的な陰関数の描画原理について考えてみることにしましょう.

 陽関数の場合に媒介変数tを導入してx=t,y=g(t)とすれば,これはy=g(x)と同じことになるので,陽関数は必ずパラメータ表示に書き直すことができます.これと同様に陰関数f(x,y)=0において,一意に定まるパラメータtを導入してx=x(t),y=y(t)と表わされるものとすると,座標(x,y)の代わりに(t,x(t)),(t,y(t))を用いることができるため,陽関数と同様の取り扱いが可能になります.

 すなわち,陽関数,陰関数いずれの場合であってもx−y平面上の点(x,y)を第3の変数tをパラメータとする点(x(t),y(t))ととらえると,tの変化とともに描かれる点の軌跡がグラフになります.このように陰関数でなしに,陽な形あるいは媒介変数表示の形にして書くことができれば,多価関数が自然に定義できる利点があり申しぶんありません.

 したがって,陰関数表示された曲線f(x,y)=0のグラフを描くことはf(x(t),y(t))=0を満たす2つの関数x(t),y(t)を見つけだすことと同等の問題になります.なんとかして媒介変数表示したいものですが,そのためには微分方程式の差分解法の知識が必須なものになってきます.

 そこでまず,f(x0,y0)=0を満たす2つの数x0,y0が求まっているとします.x(0)=x0,y(0)=y0とすると点(x0,y0)の近傍の点(x,y)=(x(Δt),y(Δt))で,小さなΔtに対して

  f(x,y)=f(x0,y0)+Δxfx(x0,y0)+Δyfy(x0,y0)+高次の項

が成立します.

x=x0+Δx,y=y0+Δy,f(x0,y0)=0,f(x,y)=0より

  Δxfx(x0,y0)+Δyfy(x0,y0)≒0

したがって,一般性を失なうことなく,全微分型方程式

  df/dt=fx(x,y)dx/dt+fy(x,y)dy/dt=0

が得られます.

 このとき1階の連立微分方程式があって

  dx/dt=−fy(x,y),

  dy/dt= fx(x,y)

を満たすものとします(ハミルトン型方程式).ハミルトン型の方程式では

  df/dt=fx(x,y)dx/dt+fy(x,y)dy/dt=0

が成り立ちますから,tについて積分するとf(x,y)=c,初期条件f(x0,y0)=0よりc=0,すなわちf(x,y)=0となります.この式の場合,fはtに関係なく一定で,点(x,y)は等高線上を進むと考えられますから,軌道に沿ってエネルギーが変化しない系(保存系)を表わすものと解釈されます.このような関数fをハミルトン関数といい,物理の世界では運動の全エネルギーを表わすものとして有名です.

 以上により,グラフを描くことはハミルトン型の2元連立常微分方程式

  dx/dt= fy(x,y),

  dx/dt=−fy(x,y)

および

  dy/dt=−fx(x,y),

 dy/dt= fx(x,y)

を初期条件x(0)=x0,y(0)=y0のもとで解くことに帰着されます.たとえば,ルンゲ・クッタ法による差分解法を用いて,この解となる軌道を求めることができます.

 最後に,f(x0,y0)=0を満たす2つの数x0,y0を求めてみます.この解はx0を適当にとりf(x0,y)をyの関数と考えて,ニュートン・ラプソン法を用いて解y=y0を求めることができます.2元連立方程式

  f(x,y)=0,y=y0

においては,更新公式Δx=−f(x,y)/fx(x,y),Δy=0が得られます.この式は1変数関数におけるニュートン法の公式

  Δx=−f(x)/f’(x)

において微分を偏微分に変えただけで全く同じ形式をとっています.

===================================