« 比良山に冠雪 | トップページ | 夢を見る方法 »

2009年01月24日

射影幾何

射影幾何が結構面白かったので書いておく。

ユークリッド幾何では以下の性質がある。

  • 二つの点は一つの直線で結ばれる。

  • 二つの直線は平行でなければ一つの点で交わる。

「平行でなければ」というのを除けば二つの命題は双対的である。ゆえに「平行でなければ」を取り除きたくなってしまう。

取り除いたのが射影幾何である。

射影幾何では以下の命題が成り立つ。

  • 二つの点は一つの直線で結ばれる。

  • 二つの直線は一つの点で交わる。

つまり平行線も交わらなくてはならない。どこで交わるか。無限遠点である。

射影平面はユークリッド平面に無限遠点の集合を付け加えたものになる。

無限遠点はどこにあるか。無限遠の彼方である。

無限遠点をどう表したらいいか。

ユークリッド平面上の任意の点は(x,y)という直交座標によって表せる。

たとえばy軸の正方向にある無限遠点を(0,∞)で表すというのもひとつの方法かも知れない。しかし∞を普通の数のように扱っていいものかどうか。

∞のかわりに1/0はどうか。つまり(0,1/0)。もちろん、1を0で割るのはダメである。しかし、1:0という比なら大丈夫なのではないか。

実際、射影平面では点を三つの実数の比として表す。y軸上の無限遠点は 0:0:1 で表される。さきほどの(0,1/0)は(0/0,1/0)と書き直すことができ、共通の分母0を一番目の成分と捉えれば、0:0:1 と対応する。

そもそもx,yという二つの変数だけではユークリッド平面上の点しか表せない。無限遠点を含む射影平面を表すには三つの変数が必要である。一般にn次元実射影空間の元はn+1個の実数の比で表される。

--------

射影平面では任意の点は (x_0,x_1,x_2) という三つの実数で表される。これを斉次座標(同次座標)と呼ぶ。ただし (0,0,0) は除いておく。この三つ組は射影平面に含まれない。

射影平面の斉次座標 (x_0,x_1,x_2) は直交座標 (x,y) と以下のように対応する。

x = x_1/x_0
y = x_2/x_0

斉次座標 (x_0,x_1,x_2) を使って直線を表してみる。

たとえばユークリッド平面では直線は以下のように表される。

ax + by + c = 0

これを斉次座標を使って書き直すと、

a(x_1/x_0) + b(x_2/x_0) + c = 0

両辺にx_0をかけて、

ax_1 + bx_2 + cx_0 = 0

これが斉次座標を使った場合の直線の方程式である。定数項がなく、斉次方程式(同次方程式)になっている。

x = x_1/x_0, y = x_2/x_0 という対応を考える場合、斉次座標 (kx_0, kx_1, kx_2) も (x_0, x_1, x_0) と同じ x,y を与えるはずである。

x = kx_1/kx_0 = x_1/x_0
y = kx_2/kx_0 = x_2/x_0

実際、射影幾何では成分の定数倍は意味を持たない。成分の比だけが重要である。すなわち x_0:x_1:x_2 と kx_0:kx_1:kx_2 は同じ点を表している。言い換えると3次元ベクトル (x_0,x_1,x_2) から同値関係 (x_0,x_1,x_2) = (kx_0,kx_1,kx_2) で作られる同値類が射影平面の元である。

x_0 = 0 の場合が無限遠点に対応する。この場合、x = x_1/x_0, y = x_2/x_0 という変換は行えず、対応する x,y は存在しない。すなわち無限遠点はユークリッド平面には含まれない。

--------

射影平面の座標表現 x_0:x_1:x_2 は「ユークリッド平面上の点+無限遠点の集合」を表している。

無限遠点の集合というのはどういう意味か。

y軸方向の無限遠点の例で見たように、無限遠点ではx_0が0になる。ただし無限遠点はひとつではない。方向によって異なる無限遠点がある。これは残る二つの成分 x_1,x_2 によって表される。もちろん、両者の絶対的な大きさではなく、比だけが重要である。

x_1とx_2の比が異なると無限遠点はどう変わるのか。

以下の直線を考える。

ax_1 + bx_2 + cx_0 = 0

この直線上の無限遠点はどのように表されるか。無限遠点なのでx_0 = 0。代入して、

ax_1 + bx_2 = 0

ax_1 = - bx_2

比で表すと、

x_1:x_2 = -b:a

つまりこの直線上の無限遠点は 0:-b:a という比によって表される。

-b:aという比の違いごとに異なる無限遠点がある。この比は直線の傾きと対応する。つまり無限遠点は各方向ごとに一つある。ただし、直線ごとに無限遠点は一つであるので、一つの直線上のいずれの方向に向かっていっても同じ無限遠点に到達する。たとえばy軸の正方向の無限遠点と負方向の無限遠点は同一の点である。

a=b=0の場合は直線を表さないので、(0:0:0) はユークリッド平面上の直線の無限遠点という位置づけができない。先に (0:0:0) が射影平面に含まれないとしたのはこの理由による。

係数cが異なっても、直線 ax_1 + bx_2 + cx_0 = 0 は同じ無限遠点を含む。つまり同じ無限遠点の上を通る。

これが「平行線が無限遠点で交わる」ということの意味である。

--------

すべての無限遠点は以下の方程式を満たす。

x_0 = 0

これは一次式である。すなわち直線の方程式である。x_1 = 0 や x_2 = 0 が直線を表すのと同等に扱うべきである。つまり無限遠点は一直線上に並んでいる。

射影平面の果ては円ではなく直線なのだ。

同様に3次元射影空間の果ては球面ではなく平面であることも示せる。これを無限遠平面と呼ぶ。

--------

射影平面における点と線の双対性についてもう少し考える。

射影平面上の直線は以下のように表される。

a_{0}x_{0} + a_{1}x_{1} + a_{2}x_{2} = 0

直線を決めているのは a_0,a_1,a_2 という三つの実数である。両辺を定数倍すると、

ka_{0}x_{0} + ka_{1}x_{1} + ka_{2}x_{2} = 0

つまり ka_0:ka_1:ka_2 も同じ直線を解として持つ。すなわち重要なのは比 a_0:a_1:a_2 である。

射影平面上の点が比 x_0:x_1:x_2 で表されるように、直線は比 a_0:a_1:a_2 によって表される。このように射影平面では点と直線が双対的な関係にある。射影幾何の定理の多くは直線と点を入れ替えても同様に成り立つ。

なお、ベクトルを使って書くと、射影直線の方程式は

a^{T}x = 0

である。

横ベクトル(一次形式)によって張られる空間は双対ベクトル空間になるが、それとも対応している。

n次元では点とn-1次元超平面が双対の関係になる。

--------

射影平面上の点をベクトルとした時、直線はそれを0に写す線形写像(一次形式)に対応する。

二次形式に対応するのが二次曲線である。

実際、x^{T}Ax = 0 は二次曲線を表す。二次曲線上の点aを取り、a^{T}Ax = 0 とすると接線の方程式になる。

より一般的に、aが射影平面上の任意の場所にある時、a^{T}Ax = 0 は点aを極とする極線を表している。接線は極線の特殊例であり、極が二次曲線上にある場合の極線である。

極aをベクトルyで表せば、これは双一次形式 y^{T}Ax = 0 が極と極線に対応することを意味している。ゆえにこれを極形式とも呼ぶ。(複素平面における極形式とは別)

--------

射影平面の座標表現は x_0:x_1:x_2 であるが、これをベクトルと考えると、線形変換したくなってしまう。

これが射影変換である。

射影幾何は遠近法から生まれてきた。その中でも特に透視図法、あるいは中心投影法と呼ばれる技法と関係する。

風景があり、キャンバスがあり、画家の目があるとする。キャンバスが薄い紙であり、風景が透けて見えるとする。この時、風景上の一点Pから出た光が画家の目に達する際、キャンバス上の一点P'を通る。これによって風景上の図形をキャンバス上の図形に対応させることができる。画家の目の位置を投影の中心と呼ぶ。

二次元の射影幾何は二次元から二次元への対応であるため、風景として地面に描かれた図形だけを考えよう。

たとえば地面に広がる正方形のタイルはキャンバス上では歪んだ四辺形になる。どのように歪むかは画家にとって重要であり、そこから射影幾何の理論が生まれてきた。

地面に描かれた平行線を考える。たとえば線路。射影空間では平行線は無限遠点で交わる。一方、キャンバスに描かれた絵の中では、線路は地平線で交わっている。すなわち無限遠点が地平線上の点に写されている。どの方向を向いた平行線であるかによって、地平線上のどの点で交わるかが決まる。すなわち地平線は無限遠点が写される点からなる直線である。

なお、ここでいう地平線はキャンバス内に描かれた直線を指す。無限遠直線は地面上の無限遠点からなる直線であり、地平線はキャンバス内の一直線である。地面上の平行線をキャンバス内に写した直線が交わる地平線上の点を消失点と呼ぶ。地平線は消失点の集まりとも言える。

投影は地面上の無限遠直線をキャンバス内の地平線に写すことができる。投影は配景写像とも呼ばれる。

ユークリッド空間における線形変換は直線を直線に写すが、射影幾何では無限遠直線 a_0:0:0 もまた一般の直線 a'_0:a'_1:a'_2 に写されるのである。

直交座標の成分をX_i、斉次座標の成分をx_iで表した時、対応関係は

X_i = x_i/x_0

であり、x_iがn+1次元の線形変換に従うとした時、X_iは一次分数式(分母と分子が一次式である分数式)で表される変換に従うことになる。

x'_i = Σ_{j}a_{ij}x_j

X'_k = Σ_{j}a_{kj}x_j / Σ_{j}a_{0j}x_j = (Σ_{h}a_{kh}X_h + a_{k0})/ (Σ_{h}a_{kh}X_h + a_{00}) (k≠0, h≠0)

特に1次元複素射影空間の時、射影変換は一次分数変換またはメビウス変換と呼ばれる。直交座標(非斉次座標)で書くと、f(z) = (az+b)/(cz+d) という形である。

このようにn次元の射影変換はn+1次元の線形変換によって表され、より広いクラスの変換である。

たとえばn次元の線形変換では平行線は平行に保たれるが、n次元の射影変換では平行線を無限遠点以外の点(消失点)で交わる二直線に変換できる。

なお、射影演算子などで使われる射影という言葉、すなわち正射影は無限遠点に中心を置いた投影であると位置づけられる。ひとつの無限遠点を通る直線の集合、すなわち平行線によってn次元上の点をn-1次元に写すのである。無限遠点もユークリッド空間内の点と同等に扱うことにより、このような投影が可能になるのである。

--------

透視図法、すなわち投影による変換について考える。ここで使う座標は直交座標(非斉次座標)であり、斉次座標ではない。

地面に対してキャンバスが垂直に置かれている状況を考え、座標系を以下のように定義する。

キャンバスと垂直な方向をx、キャンバスの横方向をy、上方向をzとする。投影の中心(目の位置)を原点O=(0,0,0)とする。キャンバスは点P'=(k,0,0)を通るとする。

地面上の点(x,y,c)からキャンバス上の点(k,Y,Z)への投影を考える。地面もキャンバスも平面全体であるとする。つまり無限に広がっていると考える。

投影が行われる時、x軸上の無限遠点Pは(k,0,0)、すなわちP'に写される。これは目からキャンバスに下ろした垂線の足であり、地平線上の一点である。

x軸と平行な地面上の直線Lを考える。すなわちキャンバスに垂直な直線である。平行線は同一の無限遠点で交わるので、L上の無限遠点Pはx軸の場合と同じでP'=(k,0,0)に写される。

一方、直線Lとキャンバスの交点Q=(k,y,c)はすでにキャンバス上にあるので、投影によって同じ点に写される。これをQ'で表す。Q'=Qである。

直線L上の任意の点R=(x,y,c)は、無限遠点Pとキャンバス上の点Qの間に位置するため、P'=(k,0,0)とQ'=(k,y,c)の間の点R'に写される。これは投影が直線を直線に写すことから来ている。

また、Oを中心とした投影であるので、R'はOとRの間になくてはならない。

すなわちR'はORとP'Q'の交点である。

ORを表す方程式は、X,Y,Zを変数として、

X/x = Y/y = Z/c

P'Q'を表す方程式は、

X = k
Y/y = Z/c

これを解いて、

X = k
Y = ky/x
Z = kc/x

これが地面上の点(x,y,c)からキャンバス上の点(k,Y,Z)への投影の式となる。xとyは任意であり、地面全体を覆っている。

この式は一次分数式(分母と分子が一次式である分数式)である。ゆえにx,yを斉次座標 x_0,x_1,x_2、Y,Z を斉次座標 X_0,X_1,X_2 で表せば、3次元の線形変換である射影変換に置き換えることができる。

x=0 の時、すなわち投影の中心(目の位置)の真下の地面はキャンバスに投影することができないことは、Z = kc/x が定義できないことから分かる。

x<0 の時、すなわち投影の中心より後ろの地面は c<0 より Z = kc/x > 0 となり、キャンバスでは地平線より上の範囲に投影される。

つまり現実の絵画ではそのようなことは行われないが、射影幾何を用いた投影では投影の中心より背後の地面にある図形が地平線よりも上に逆さに描かれることになる。

そして後ろ方向の無限遠点はまた地平線に写される。

ここでは地面とキャンバスが垂直であるとしたが、一般の射影変換では任意の平面同士の間で投影が行われる。

--------

円錐曲線、すなわち楕円、放物線、双曲線について考える。

これらは円錐を平面で切った時に現れる。

三角錐の頂点に投影の中心を置いた時、任意の円錐曲線は底面、すなわち円に投影できる。

結果として任意の円錐曲線は射影変換によって相互に変換することができる。

これは射影幾何においては円錐曲線はすべて同一の対象であるということを意味する。

--------
楕円・放物線・双曲線の同一性を斉次座標を使って考えてみる。

楕円の方程式は直交座標ではa,bを正として以下のように書ける。

ax^2 + by^2 = 1

斉次座標になおすと、

a(x_1/x_0)^2 + b(x_2/x_0)^2 = 1

両辺に (x_0)^2 をかけて移項すれば、

a(x_1)^2 + b(x_2)^2 - (x_0)^2 = 0

双曲線の方程式は直交座標ではa,bを正として以下のように書ける。

ax^2 - by^2 = 1

斉次座標になおし、移項すれば、

a(x_1/x_0)^2 - b(x_2/x_0)^2 = 1

a(x_1)^2 - b(x_2)^2 - (x_0)^2 = 0

放物線の方程式は直交座標では以下のように書ける。

ax^2 = y

斉次座標になおし、移項すれば

a(x_1/x_0)^2 - (x_2/x_0) = 0

a(x_1)^2 - (x_2)(x_0) = 0

ここで以下の線形変換を行う。

x_1 = x'_1
x_0 = x'_2 - x'_0
x_2 = x'_2 + x'_0

すると以下の式を得る。

a(x'_1)^2 - (x'_2)^2 + (x'_0)^2 = 0

斉次座標を3次元ユークリッド空間として考えれば、これらの方程式はいずれも二つの円錐を頂点で合わせた面(錐面)を表す。

錐面同士は線形変換で互いに写すことができる。つまり楕円・放物線・双曲線は3次元における線形変換、すなわち射影変換で互いに写せる。

--------

射影幾何では図形を射影変換しても変わらない性質を調べる。たとえば点が直線上にあるといった性質は射影変換しても変わらない。

ユークリッド幾何では図形を自由に平行移動・回転・鏡映させて定理を導く。これは合同変換のもとで不変な性質を調べていることになる。

原点の移動と回転・鏡映からなる合同変換に対して不変な性質を調べるのがユークリッド幾何学。

原点の移動と線形変換からなるアフィン変換に対して不変な性質を調べるのがアフィン幾何学。

射影変換に対して不変な性質を調べるのが射影幾何学。

射影変換は一次式からなる分数式による変換で表されたが、より一般的に、多項式からなる分数式、すなわち有理式による変換で不変な性質を扱うのが代数幾何。たとえば一次式は二次の変数変換で二次式に直せるため、直線と二次曲線(円錐曲線)は同一の対象となる。

--------

一次元複素射影空間を考える。斉次座標は x_0:x_1 という比であり、無限遠点は 0:1 である。比だけが重要なので、zを任意の複素数として、0:z は同一の点を表す。すなわち一次元複素射影空間には無限遠点は一つしかない。

一次元複素空間をガウス平面として考えると、どの方向に向かっていっても同一の点に到達することになる。これはリーマン球面である。ゆえにリーマン球面は複素射影直線とも呼ばれる。無限遠点以外では比 x_0:x_1 から代表元 1:z を取ることができ、ガウス平面と正則写像で対応づけられる。

リーマン球面を比ではなく直交座標を使って表すにはどうしたらいいか。単に商を取っただけだと無限遠点は1/0になってしまい、定義できない。そこで二つの座標系を導入する。

一次元局所座標系を二つ使うことでリーマン球面の全体を覆うのである。つまり多様体を使う。

u = x_0/x_1 (x_1≠0)
v = x_1/x_0 (x_0≠0)

これなら点0:1は座標系uで、点1:0は座標系vで表せるので、全体を覆うことができる。0:0はどちらの座標系でも表せないが、幸い0:0は射影空間の元でもない。

--------

いろいろな意味で射影空間はユークリッド空間より美しい。

ひょっとして我々は射影空間に住んでいるのではないかとさえ思えてくる。

Posted by taro at 2009年01月24日 18:53

« 比良山に冠雪 | トップページ | 夢を見る方法 »

コメント

射影幾何の分かりやすい解説を探していて、Googleで見つけました。
大変分かりやすく、感激しました。

質問が一つあります。文中の
 射影幾何では無限遠直線 0:a_1:a_2 もまた
 一般の直線 a'_0:a'_1:a'_2 に写されるのである。
のところで、
 0:a_1:a_2

 a_0:0:0
でしょうか?

Posted by: プリッツ at 2009年05月11日 20:05

書き込みありがとうございます。励みになります。

ご指摘の通り a_0:0:0 です。失礼致しました。修正させていただきました。

Posted by: taro at 2009年05月11日 20:38

Posted by: pol at 2010年05月12日 13:38

実際に図に描いて直線上に並ぶと印象的なものですね。ありがとうございます。

Posted by: taro at 2010年05月12日 22:00

コメントを書き込む



(←スパム対策です。アルファベット小文字(半角)でyesと記入していただけますでしょうか)


(コメントには表示されません。管理者(taro)にのみ伝わります)


プロフィールを記憶させますか?

(HTMLタグが使用可能です)