この記事では、私が最近導出した二次曲線の焦点の座標を係数から計算する公式と、その導出方法の解説を行います。
なぜそんな公式を作ろうかと思ったかというと、前回の記事「
4点を通る2次曲線群の中心の軌跡を「自由度」から導く
」でグラフ表示アプリのDesmosを使って任意の二次曲線の焦点を可視化しようとしたときに、係数から焦点の座標を求める必要性に迫られたことがありました。そのときは複数の自作関数を組み合わせていたのですが、「うまくやれば
……出し惜しみしてもしょうがありません。
さっそく、出来上がった公式をご覧ください。
二次曲線
が楕円又は双曲線になるとき、その焦点の座標
(複号同順)
自分でいうのもなんですが、なかなかいかつい形をしていますね!なお、途中にでてくる
この形にすると、式の対称性はわかりやすくりますね!ただし、複号の組合せによっては焦点ではない座標がでてきてしまいますので、実用性はほとんどないと思いますが……。
解説に入る前に、この記事での前提や、記事中で出てくる関数の説明を行います。
二次曲線の概形は楕円(真円を含む)・双曲線・放物線・
この記事では、二次曲線を表す方程式の係数から座標を求める公式の導出を目標としますので、その方程式のグラフが楕円(真円を除く)又は双曲線となることを前提として計算を進めます。
符号関数というのは次のように引数の正負を返す関数です。
この記事では、場合分けを減らすためにこの符号関数を積極的に利用します。
数学ではあまり使わない関数だと思いますが、プログラミングの世界ではよく見る関数でもあります。
そして何より、Desmosの組み込み関数として使えます!
楕円や双曲線の方程式は、元となる曲線に平行移動や回転を行うことで、次の式のようにシンプルな形に変換することができます。
この記事ではこの形の式を「標準形」と呼びます。
標準形の楕円・双曲線の焦点の座標は、方程式の係数から求めることができます。
次の方程式のグラフが楕円又は双曲線であるとする。
このとき、その楕円又は双曲線の焦点の座標は
(i)
(ii)
である。
定義から明らかだと思いますので証明は省略します。
今回はゴリ押し計算で求める方針でいきます。
つまり、与えられた二次曲線について、
① 中心が原点になるように平行移動する
② 標準形になるように回転する
③ 標準形の式から焦点を求める
④ 焦点を逆回転・逆平行移動すると元の二次曲線の焦点の座標が得られる
の順に計算を進めます。
「なあんだ、それだけか」と思われるかもしれませんが、②のところでちょっと工夫していますので、そこだけでもご覧いただければ楽しんでもらえるのではないかと思います。
二次曲線
の中心の座標が
中心の座標が原点になるように
点対称になるということは、
これを使って、
さっそくやってみましょう!
まずは中心が原点になるように平行移動して
展開して二次曲線の式の形に整理すると
この式の
これを元の式に代入して、中心が原点に来るように平行移動した二次曲線の式が得られます。
(中心が原点に来るように平行移動した二次曲線の式)
計算を簡単にするため
とおいて書き換えます。
さらに、両辺を
とおいて次のように書き換えます。
(中心が原点に来るように平行移動した二次曲線の式)(書き換え)
しかし考えてみると、
そこでここからは
得られた式を回転して標準形にすることを目指します。
標準形にするための回転角を
標準形の二次曲線は
回転後の二次曲線は、
先の式に代入して
式が長くて見にくいので、
と置いて書き換えます。
見やすくなりましたね!
二次曲線の式の形に整理して
という式が得られます。次のように変形して
両辺を
ちょっとトリッキーですが、ここでこの式を
と計算できます。
なお、
符号関数
得られた式をまとめると
(複号同順)
あとは、
適切な組み合わせを判定するには、
(
(
なお、
とわかります。
これらの式は
(
整理して
もう少し整理できます
これで標準形の式にできました。
……(★)
なるべく場合分けを減らしたいのですが、ここではやむを得ず場合分けすることにします。
ここまでの式変形は平行移動と回転なので、曲線の形状は変わっていないことに注意します。
二次曲線が楕円の場合、判別式
(★)の複号で
の焦点は
整理して
二次曲線が双曲線の場合、判別式
(★)の複号で
の焦点は
整理して
後は求めた焦点の座標を、逆回転・逆平行移動して元の二次曲線の焦点の座標を求めましょう。
まずは逆回転から。
楕円の場合は、「
これらの式は
逆回転後の座標を
となります。
まずは逆回転から。
双曲線の場合も、「
逆回転後の座標を
となります。
得られた式をまとめます。
(楕円の場合)
(双曲線の場合)
楕円のときは
最後に逆平行移動します。
求める座標を
次に、「後で考える」としていた
このケースでは、
まず、
(複号同順)
これらを使って原点中心の二次曲線を回転させて標準形にしましょう。
……(❤)
二次曲線が楕円の場合、
(❤)の複号で
の焦点は
整理して
二次曲線が双曲線の場合、
(❤)の複号で
の焦点は
整理して
後は求めた焦点の座標を、逆回転・逆平行移動して元の二次曲線の焦点の座標を求めましょう。
まずは逆回転から。
楕円の場合は、「
これらの式は
逆回転後の座標を
となります。
まずは逆回転から。
双曲線の場合も、「
逆回転後の座標を
となります。
得られた式をまとめます。
(楕円の場合)
(双曲線の場合)
楕円のときは
(
ここで、
(
したがって、ここから先の変形は
長い道のりでしたが、これで公式の完成です!!
二次曲線
が楕円又は双曲線になるとき、その焦点の座標
(複号同順)
エレガントさのかけらもない、ゴリゴリの式変形だけでしたが、それなりに対称性のある形になったのでとりあえず満足しています。
しかしながら、絶対値を使うなどの方法により、もっとシンプルな書き方があるんじゃないか、という気もしています。
もし、「こういうシンプルな表示ができるよ!」といった情報があれば教えていただければ幸いです。
また、検証用のDesmosファイルを作成しましたので、係数をいろいろ変化させて公式が成り立っていることを確かめてみてください!