双曲線同士の交点計算

そういえば2次元平面上の二次曲線同士の交点計算ってどうやって解くのだろうと疑問に思った。
高校数学の範囲では
\frac{x^2}{a^2}+\frac{y^2}{b^2}=1といった楕円や\frac{x^2}{a^2}-\frac{y^2}{b^2}=1といった双曲線など「綺麗な」ものしか習わなかったと思う。(いわゆる標準形)
これは楕円であれば長軸短軸がXY軸と一致するものだ。
そうでなければまず座標系に一次変換や平行移動を施して標準形に変形して考えたと思う。

しかし、より一般的な二次曲線の式はこうなる。
Ax^2+By^2+Cxy+Dx+Ey+F=0
従って、一般的な二次曲線同士の交点を解析的に求めようとすれば、
例えばyを消去してルートを削除することにより4次方程式を解かねばならず、非常に厄介だ。


で、調べてみたらこんなPDFを発見した。
http://www.mlab.im.dendai.ac.jp/~saitoh/CADCAM/080421P.pdf

簡単にまとめると以下のようになる。

2つの二次曲線をf(x,y)=0,g(x,y)=0とすると
f(x,y)=0 \wedge g(x,y)=0
f(x,y)=0 \wedge f(x,y) + \alpha g(x,y)=0 \quad (\alpha \neq 0)
である。
ここでf(x,y)+\alpha g(x,y)=0も二次曲線であるが、ゼロでない適当な\alphaを選んでやると
この二次曲線をf(x,y)+\alpha g(x,y) = (ax+by+c)(dx+ey+f) = 0というように
特殊な二次曲線である2直線にすることができる。


つまり二次曲線同士の交点は、1つの二次曲線と2つの直線の交点に帰着できる。
(二次曲線と直線の交点は二次方程式として解析的に解ける)


これは(Pencil)の概念を利用した考え方だ。
高校で線束、円束を習った覚えがある人もいると思う。


うーん、素晴らしい。