数式処理ソフト DERIVE(デライブ) de ドライブ

28.変数変換と座標変換

1.変数変換と座標変換

「今までも、数式処理ソフト DERIVE(デライブ)を使って、いろいろな変換を使ってきたわけじゃが、一度、整理をしておこうかの」

「行列を使ってベクトルを回転したわ」

「そうじゃな。あれは、座標軸はそのままで、ベクトルを回転したのじゃな。変数変換と言えるの。
別の例じゃと、ax^2+bx+c=0を方程式と考えると、x=z-b/2aとするのは、変数をxからzへ変換していることになる。これも変数変換じゃ」

「この場合は、4a^2z^2 + 4ac - b^2=0となって、zについては、すでに平方完成しているので、おなじみの根の公式が出てくるのね」

「一方、y=ax^2+bx+cという関数のグラフととらえたときは、新しい座標軸x1、y1を考えて、x1=x+b/2a、y1= y - (4ac - b^2)/(4a^2)と座標変換をすると、y1=ax1^2という、簡単な2次関数のグラフとなるな。
このとき、方程式の解は、y=0のときじゃから、y1= - (4ac - b^2)/(4a^2)というx軸に平行な直線とy1=ax1^2との交点ということなので、
x1=±(1/2a)√(b^2-4ac)から、x=(-b/2a)±(1/2a)√(b^2-4ac)ということが分るという筋書きじゃな」

「どっちの見方が優れているのかしら?」

「どっちというよりも、とらえ方の違いじゃろうが、xに関する方程式と見ているときは、言わば、1次元の場所で、右往左往して解こうとしているのじゃが、y=・・と置いて、新しい変数yを導入した時は、視野が2次元に広がった感があるのう。
次回取り上げる予定じゃが、方程式の数値解法の一つである「ニュートン法」なども理解しやすくなる」

「なるほどね」

「で、当面、平面上の点やそれらの集まりである図形を考えているのじゃが、さっきのベクトルの回転のように座標軸は、固定して、対象(オブジェクトともいうの)を移動したり回転させると考えるか、あるいは、対象は、そのままで、座標軸を動かすという方法の2通りあるわけじゃな。
コンピュータグラフィックス(CG)については、詳しいことは知らないが、コンピュータの画面は、動かないので、対象を動かすと考えた方が分かりやすいのではないかと思うが。要は、数学的には、(基本的に)、どちらでも等価じゃが、どちらが使いやすいか(考えやすいか)は、条件によって違ってくるじゃろう」

2.並進と回転

「座標軸を移動すると考えるときは、旧座標原点から新座標原点を見たときの位置ベクトルをaとすると、aは、並進した量となる。
旧座標での点の位置ベクトルをrとして、新座標のそれをRとすると、R=r-aとなる。
逆にオブジェクトを移動すると考えると、移動量をaとするとき、元の位置は、r、新しい位置は、Rとして、R=r+aとなる。
座標軸を移動した場合と移動量の符号が逆になる。これは、相対的じゃから当然じゃな」

「回転については、回転行列があったわね」

「平面については、すでに登場したの」

「あれは、x軸からの回転角度を反時計回りに正としたときのものでは、M=[[cos(z),sin(z)],[-sin(z),cos(z)]]というものだったわね」

「うん、オブジェクトを角度θだけ回転させると考えるとR=r×M(θ)、座標軸が回転したと考えるとR=r×M(-θ)。
ここで、位置ベクトルは、横ベクトル(行ベクトル)と考えている」

「楕円や双曲線を座標変換で標準形に直せるけど、x、yの2次曲線は、すべて標準形に変換できるのかしら?」

「そうじゃの。「数学辞典 第3版(岩波書店)」の「円錐曲線」の章によれば、「・・実数係数のax^2+2hxy+by^2+2gx+2fy+c=0、ただし、a、b、hのすべてがゼロではないとする。
このとき、D0=DET([[a,h],[h,b]])、D=DET([[a,h,g],[h,b,f],[g,f,c]])とおくとき、Dをこの曲線の判別式という。このとき、下表の関係が成り立つ・・」そうじゃ」

D0 D 曲線
≠0、 ≠0 空集合または円錐曲線
>0 楕円または空集合
<0 双曲線
=0 放物線
>0 =0 1点
<0 =0 2つの交わる直線
=0 =0 空集合または1直線または2つの平行直線

3.アフィン変換と射影変換

「「変数変換」または「座標変換」どちらと考えても同じじゃが、新x=a旧x+b旧y+cという1次変換をアフィン変換という。ここで、a、b、cは、実数の係数である。これは、狭い意味の並進と回転に加えて、縦横比を変える伸縮も含まれているため、アフィン変換では、楕円と真円は、同一に見なせることになるのじゃ」

「へー」

「アフィン変換よりももっと広い変換には、射影変換があるそうじゃな。
射影変換は、新x=(a旧x+b旧y+c)/(d旧x+e旧y+f)のような分数式による変換じゃな」

「たとえば、x^2+y^2=1という真円を、x=(2u-v)/(u+v)、y=(u-2v)/(u+v)と変換して、整理すると、2u^2 - 5uv + 2v^2 = 0となる。
これに回転π/4を加えると、x1^2 - 9y1^2 = (x1 + 3y1)(x1 - 3y1) = 0となって、x=0で交差する2直線が得られる」

「2u^2 - 5uv + 2v^2 = 0の段階でも、さっきの分類表を使うと、D=0、D0=-9/4<0となるので、確かに2つの交わる直線で、合っているわね」