この記事では、私が最近導出した二次曲線の焦点の座標を係数から計算する公式と、その導出方法の解説を行います。
なぜそんな公式を作ろうかと思ったかというと、前回の記事「 4点を通る2次曲線群の中心の軌跡を「自由度」から導く 」でグラフ表示アプリのDesmosを使って任意の二次曲線の焦点を可視化しようとしたときに、係数から焦点の座標を求める必要性に迫られたことがありました。そのときは複数の自作関数を組み合わせていたのですが、「うまくやれば $1$ 本の式にまとめて公式化できるんじゃね?」と思いついたのがきっかけです。
……出し惜しみしてもしょうがありません。
さっそく、出来上がった公式をご覧ください。
二次曲線
$Ax^2+Bxy+Cy^2+Dx+Ey+F=0$
が楕円又は双曲線になるとき、その焦点の座標 $\pmatrix{x_F \\ y_F}$ は次の式で求められる。
${
\begin{align}
\pmatrix{x_F \\ y_F}
&=\pmatrix{
\dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}+A-C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}\\
\dfrac{2AE-BD}{{B}^2-4AC}\pm 2\left(1-\mathrm{sgn}(B)^2+\mathrm{sgn}(B)\right)\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}-A+C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}
}\\
\end{align}
}$
(複号同順)
自分でいうのもなんですが、なかなかいかつい形をしていますね!なお、途中にでてくる $\mathrm{sgn}(x)$ という関数は、符号を決定するためのものですので、ここを $\pm$ に書き換えるともう少し見た目をシンプルにできます。
${ \begin{align} \pmatrix{x_F \\ y_F} &=\pmatrix{ \dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\pm\sqrt{(A-C)^2+B^2}+A-C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}\\ \dfrac{2AE-BD}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\pm\sqrt{(A-C)^2+B^2}-A+C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)} }\\ \end{align} }$
この形にすると、式の対称性はわかりやすくりますね!ただし、複号の組合せによっては焦点ではない座標がでてきてしまいますので、実用性はほとんどないと思いますが……。
解説に入る前に、この記事での前提や、記事中で出てくる関数の説明を行います。
二次曲線の概形は楕円(真円を含む)・双曲線・放物線・$2$ 直線($1$ 直線に重なる場合を含む)となりますが、これらのうち焦点を持つのは楕円(真円を除く)と双曲線のみです。
この記事では、二次曲線を表す方程式の係数から座標を求める公式の導出を目標としますので、その方程式のグラフが楕円(真円を除く)又は双曲線となることを前提として計算を進めます。
符号関数というのは次のように引数の正負を返す関数です。
${\displaystyle \mathrm{sgn} \,x = \begin{cases} 1 && :x>0\\ 0 && :x=0\\ -1 && :x<0 \end{cases} }$
この記事では、場合分けを減らすためにこの符号関数を積極的に利用します。
数学ではあまり使わない関数だと思いますが、プログラミングの世界ではよく見る関数でもあります。
そして何より、Desmosの組み込み関数として使えます!
楕円や双曲線の方程式は、元となる曲線に平行移動や回転を行うことで、次の式のようにシンプルな形に変換することができます。
$Ax^2+Cy^2=1$
この記事ではこの形の式を「標準形」と呼びます。
標準形の楕円・双曲線の焦点の座標は、方程式の係数から求めることができます。
次の方程式のグラフが楕円又は双曲線であるとする。
$Ax^2+Cy^2=1$
このとき、その楕円又は双曲線の焦点の座標は
(i) $0< A< C$ (楕円) 又は $C<0< A$ (双曲線)のとき
$\left( \pm\sqrt{\dfrac{1}{A}-\dfrac{1}{C}},0 \right)$
(ii) $0< C< A$ (楕円) 又は $A<0< C$ (双曲線)のとき
$\left(0, \pm\sqrt{\dfrac{1}{C}-\dfrac{1}{A}} \right)$
である。
定義から明らかだと思いますので証明は省略します。
今回はゴリ押し計算で求める方針でいきます。
つまり、与えられた二次曲線について、
① 中心が原点になるように平行移動する
② 標準形になるように回転する
③ 標準形の式から焦点を求める
④ 焦点を逆回転・逆平行移動すると元の二次曲線の焦点の座標が得られる
の順に計算を進めます。
「なあんだ、それだけか」と思われるかもしれませんが、②のところでちょっと工夫していますので、そこだけでもご覧いただければ楽しんでもらえるのではないかと思います。
二次曲線
$A\textcolor{red}{x^2}+B\textcolor{red}{xy}+C\textcolor{red}{y^2}+D\textcolor{red}{x}+E\textcolor{red}{y}+F=0$
の中心の座標が $(p,q)$ であるとします。
中心の座標が原点になるように$2$ 次曲線を平行移動すれば、グラフは点対称になるはずです。
点対称になるということは、$2$ 次曲線を表す方程式の $x$ と $y$ の係数がゼロになるということです。
これを使って、$p$ と $q$ の連立方程式を作り、それを解くことで $p,q$ を $A,\ldots,F$で表すことができそうです。
さっそくやってみましょう!
まずは中心が原点になるように平行移動して
$A (x+p)^2 + B (x+p)(y+q) + C (y+q)^2 + D (x+p) + E (y+q) + F = 0$
展開して二次曲線の式の形に整理すると
$A \textcolor{red}{x^2} + B \textcolor{red}{xy} + C \textcolor{red}{y^2} + (2A p + B q + D)\textcolor{red}{x} + (2Cq+ Bp +E)\textcolor{red}{y} + (Ap^2+Bpq+Cq^2+Dp+Eq+F)=0$
この式の $x$ の係数は $2A p + B q + D$ で、 $y$ の係数は $2Cq+ Bp +E$ なので、次の連立方程式が得られます。
$ {\begin{cases} 2A p + B q + D= 0\\ 2C q + B p + E= 0 \end{cases}}$
$p,q$ について解いて
${ \begin{cases} p= \dfrac{2CD-BE}{{B}^2-4AC}\\ q= \dfrac{2AE-BD}{{B}^2-4AC} \end{cases}}$
これを元の式に代入して、中心が原点に来るように平行移動した二次曲線の式が得られます。
(中心が原点に来るように平行移動した二次曲線の式)
$A\textcolor{red}{x^2}+B\textcolor{red}{xy}+C\textcolor{red}{y^2}
+\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)=0$
計算を簡単にするため
$F'=\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F$
とおいて書き換えます。
$A\textcolor{red}{x^2}+B\textcolor{red}{xy}+C\textcolor{red}{y^2} +F'=0$
さらに、両辺を $F'$ で割って、
$A'=-\dfrac{A}{F'}$
$B'=-\dfrac{B}{F'}$
$C'=-\dfrac{C}{F'}$
とおいて次のように書き換えます。
(中心が原点に来るように平行移動した二次曲線の式)(書き換え)
$A'\textcolor{red}{x^2}+B'\textcolor{red}{xy}+C'\textcolor{red}{y^2}=1$
$F'=0$ のときは分母がゼロになるため割り算ができません。
しかし考えてみると、$F'=0$ の場合は二次曲線の中心が原点を通るということですので、これは二次曲線が $2$ 直線になる場合です。つまり、楕円でも双曲線でもありません。
そこでここからは $F' \ne 0$ として計算を進めます。
得られた式を回転して標準形にすることを目指します。
標準形にするための回転角を $\theta$ とします。
標準形の二次曲線は $n\in\mathbb{Z}$ として $\pm\dfrac{n\pi}{2}$ だけ回転しても標準形になりますから、$-\pi\le \theta \lt +\pi$ の範囲に条件を満たすものは $4$ つあることに注意します。
回転後の二次曲線は、$x,y$ を次のように置換すれば得られます。
${\displaystyle \begin{cases} x \to x \cos (-\theta)- y \sin (-\theta) \\ y \to x \sin (-\theta)+ y \cos (-\theta) \\ \end{cases} }$
先の式に代入して
$A'\left(x \cos (-\theta)- y \sin (-\theta)\right)^2+B'\left(x \cos (-\theta)- y \sin (-\theta)\right)\left(x \sin (-\theta)+ y \cos (-\theta)\right)+C'\left(x \sin (-\theta)+ y \cos (-\theta)\right)^2=1$
式が長くて見にくいので、
$c=\cos\theta$
$s=\sin\theta$
と置いて書き換えます。
$A'\left(cx+sy\right)^2+B'\left(cx+sy\right)\left(-sx+cy\right)+C'\left(-sx+cy\right)^2=1$
見やすくなりましたね!
二次曲線の式の形に整理して
$\left(A'c^2-B'cs+C's^2\right)\textcolor{red}{x^2} +\left(2A'cs+B'(c^2-s^2)-2C'cs\right)\textcolor{red}{xy} +\left(A's^2+B'cs+C'c^2\right)\textcolor{red}{y^2}=1$
$xy$ の項の係数が $0$ になればよいので
$2A'cs+B'(c^2-s^2)-2C'cs=0$
という式が得られます。次のように変形して
$B'(c^2-s^2)=2(C'-A')cs$
両辺を $2$ 乗して
$B'^2(c^2-s^2)^2=4(C'-A')^2c^2s^2$
$\sin^2\theta+\cos^2\theta=1$ より $s^2=1-c^2$ なのでこれを代入して
$B'^2(2c^2-1)^2=4(C'-A')^2c^2(1-c^2)$
$c$ の降べきの順の整理して
$\left(4(A'-C')^2+4B'^2\right)\textcolor{red}{c^4} -\left(4(A'-C')^2+4B'^2\right)\textcolor{red}{c^2} +B'^2=0$
ちょっとトリッキーですが、ここでこの式を $\textcolor{red}{c^2}$ の二次方程式と見て解の公式を使って解くと
$\textcolor{red}{c^2}=\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
と計算できます。
$B'^2+(C'-A')^2=0$ のときは $c^4$ の係数がゼロになるため解の公式が使えません。
なお、$B'^2+(C'-A')^2=0 \Leftrightarrow B'=0 \land A'=C'$ ですから、少し考えればこれは二次曲線が真円になるときであることがわかります。真円になる場合は焦点を持ちませんので、ここからは $B'^2+(C'-A')^2 \ne 0$ として計算を進めます。
$s^2=1-c^2$ に代入すると $s^2$ が得られます。(復号同順)
$s^2=\dfrac{1}{2}\mp\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
$B'(c^2-s^2)=2(C'-A')cs$ に $c^2,s^2$ を代入すると $cs$ が得られます。
$cs=\dfrac{\pm B'\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}}{2(C'-A')}$
$C'-A'=0$ のときは分母がゼロになってしまうため、この $cs$ についての式は成り立ちません。$C'-A'=0$ になる場合については例外として後で考えることにします。ここからしばらくは $C'-A'\ne0$ として考えます。
符号関数 $\mathrm{sgn}$ を使って書き換えます。
$x = \mathrm{sgn}\, x\cdot \sqrt{x^2}$ であるから
$cs=\pm \dfrac{B'\mathrm{sgn}(C'-A')}{2\sqrt{(A'-C')^2+B'^2}}$
得られた式をまとめると
$c^2=\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
$s^2=\dfrac{1}{2}\mp\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
$cs=\pm \dfrac{B'\mathrm{sgn}(C'-A')}{2\sqrt{(A'-C')^2+B'^2}}$
(複号同順)
$c^2,s^2$ の平方根から $c,s$ の候補を(重複を許して)それぞれ $4$ つ求めることができます。
$c=\pm\sqrt{\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} $ (複号任意)
$s=\pm\sqrt{\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} $ (複号任意)
あとは、$c$ と $s$ の組を適切に選べばよいですね。
適切な組み合わせを判定するには、$cs$ の符号を使えばよいです。
$cs$ の符号は $B'\mathrm{sgn}(C'-A')$ の符号により決まることを使って、$B'\mathrm{sgn}(C'-A') > 0$ の場合と$B'\mathrm{sgn}(C'-A') < 0$ の場合に場合分けすると次のようになります。
($B'\mathrm{sgn}(C'-A') > 0$ の場合)
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\pm\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right)\\ &,\left(\pm\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\mp\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
($B'\mathrm{sgn}(C'-A') < 0$ の場合)
$\begin{align}
(c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\mp\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right)\\
&,\left(\pm\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\pm\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right)
\end{align} $
なお、$B'\mathrm{sgn}(C'-A') = 0$ の場合、すなわち$B'=0$ の場合(今は $C'-A'\ne0$ の場合のみ考えていることに注意)について考えると、これは $A'\textcolor{red}{x^2}+C'\textcolor{red}{y^2}=1$ の二次曲線の場合ですから、
$(c,s)=(\pm 1,0),(0,\pm1)$ (複号任意)
とわかります。
これらの式は $\mathrm{sgn}$ をうまく使うと次のように $1$ つにまとめることができます。
($C'-A'\ne0$ の場合)
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\pm\mathrm{sgn}(B')\mathrm{sgn}(C'-A')\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right)\\ &,\left(\pm\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\mp\mathrm{sgn}(C'-A')\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
$c,s$ が求められたところで、さっそく原点中心の二次曲線を回転させて標準形にしましょう。
$\left(A'c^2-B'cs+C's^2\right)\textcolor{red}{x^2} +\left(2A'cs+B'(c^2-s^2)-2C'cs\right)\textcolor{red}{xy} +\left(A's^2+B'cs+C'c^2\right)\textcolor{red}{y^2}=1$ に先ほど求めた $c^2,s^2,cs$ を代入すると
$\begin{align} &\left(A'\left(\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}\right)-B'\left(\pm \dfrac{B'\mathrm{sgn}(C'-A')}{2\sqrt{(A'-C')^2+B'^2}}\right)+C'\left(\dfrac{1}{2}\mp\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}\right)\right)\textcolor{red}{x^2}\\ &+\left(A'\left(\dfrac{1}{2}\mp\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}\right)+B'\left(\pm \dfrac{B'\mathrm{sgn}(C'-A')}{2\sqrt{(A'-C')^2+B'^2}}\right)+C'\left(\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}\right)\right)\textcolor{red}{y^2}\\ &=1 \end{align}$
整理して
$\begin{align} &\left(\dfrac{A'+C'}{2}\pm\dfrac{(A'-C')\sqrt{(A'-C')^2}+B'^2\mathrm{sgn}(A'-C')}{2\sqrt{(A'-C')^2+B'^2}}\right)\textcolor{red}{x^2}\\ &+\left(\dfrac{A'+C'}{2}\mp\dfrac{(A'-C')\sqrt{(A'-C')^2}+B'^2\mathrm{sgn}(A'-C')}{2\sqrt{(A'-C')^2+B'^2}}\right)\textcolor{red}{y^2}\\ &=1 \end{align}$
$\sqrt{(A'-C')^2}=\mathrm{sgn}(A'-C')\cdot(A'-C')$ を使ってさらに整理すると
$\begin{align} &\left(\dfrac{A'+C'}{2}\pm\dfrac{\mathrm{sgn}(A'-C')\cdot\left((A'-C')^2+B'^2\right)}{2\sqrt{(A'-C')^2+B'^2}}\right)\textcolor{red}{x^2}\\ &+\left(\dfrac{A'+C'}{2}\mp\dfrac{\mathrm{sgn}(A'-C')\cdot\left((A'-C')^2+B'^2\right)}{2\sqrt{(A'-C')^2+B'^2}}\right)\textcolor{red}{y^2}\\ &=1 \end{align}$
もう少し整理できます
$\begin{align} &\left(\dfrac{A'+C'\pm\mathrm{sgn}(A'-C')\cdot\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{x^2}\\ &+\left(\dfrac{A'+C'\mp\mathrm{sgn}(A'-C')\cdot\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{y^2}\\ &=1 \end{align}$
これで標準形の式にできました。
$
\left(\dfrac{A'+C'\pm\mathrm{sgn}(A'-C')\cdot\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{x^2}
+\left(\dfrac{A'+C'\mp\mathrm{sgn}(A'-C')\cdot\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{y^2}
=1
$
……(★)
なるべく場合分けを減らしたいのですが、ここではやむを得ず場合分けすることにします。
ここまでの式変形は平行移動と回転なので、曲線の形状は変わっていないことに注意します。
二次曲線が楕円の場合、判別式 $\Delta=4A'C'-B'^2>0$ であることに注意します。
(★)の複号で $x^2$ の係数よりも $y^2$ の係数の方が大きいと焦点が $x$ 軸上、小さいと焦点が $y$ 軸上になります。ここでは焦点が $x$ 軸上になる方(いいかえると、$A'< C'$ のときは上の複号、$A'>C'$ のときは下の複号)を選択することにしましょう。
$ \left(\dfrac{A'+C'-\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{x^2} +\left(\dfrac{A'+C'+\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{y^2} =1 $
の焦点は
$\left( \pm\sqrt{\dfrac{2}{A'+C'-\sqrt{(A'-C')^2+B'^2}}-\dfrac{2}{A'+C'+\sqrt{(A'-C')^2+B'^2}}} \,\,\, ,0 \right)$
整理して
$\left( \pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{4A'C'-B'^2}} \,\,\, ,0 \right)$
二次曲線が双曲線の場合、判別式 $\Delta=4A'C'-B'^2<0$ であることに注意します。
(★)の複号で $x^2$ の係数が正、$y^2$ の係数が負のときは焦点が $x$ 軸上、$x^2$ の係数が負、$y^2$ の係数が正のときは焦点が $y$ 軸上になります。ここでは焦点が $y$ 軸上になる方(いいかえると、$A'< C'$ のときは上の複号、$A'>C'$ のときは下の複号)を選択することにしましょう。
$ \left(\dfrac{A'+C'-\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{x^2} +\left(\dfrac{A'+C'+\sqrt{(A'-C')^2+B'^2}}{2}\right)\textcolor{red}{y^2} =1 $
の焦点は
$\left( 0, \pm\sqrt{\dfrac{2}{A'+C'+\sqrt{(A'-C')^2+B'^2}}-\dfrac{2}{A'+C'-\sqrt{(A'-C')^2+B'^2}}} \right)$
整理して
$\left( 0, \pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-(4A'C'-B'^2)}} \right)$
後は求めた焦点の座標を、逆回転・逆平行移動して元の二次曲線の焦点の座標を求めましょう。
まずは逆回転から。
楕円の場合は、「$A'< C'$ のときは上の複号(言い換えると $s^2< c^2$ )、$A'>C'$ のときは下の複号(言い換えると $c^2< s^2$ )」というふうに決めたので、
$A'< C'$ のときは
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\pm\mathrm{sgn}(B')\mathrm{sgn}(C'-A')\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
$A'>C'$ のときは
$\begin{align} (c,s)=&\left(\pm\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}-\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}},\mp\mathrm{sgn}(C'-A')\sqrt{\dfrac{1}{2}+\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
これらの式は $\mathrm{sgn}$ をうまく使うと $1$ つにまとめることができます。
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} ,\pm\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{1}{2}-\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
$\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)$ の部分は、「$B'<0$ のときは $-1$ 、$B'\ge 0$ のときは $1$」になります。もっと短い表現があればいいのですが、思いつかなかったので今回はこの表現で行くことにしました。
$1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')= \begin{cases} -1 && B'<0\\ 1 && B'\ge 0 \end{cases}$
逆回転後の座標を $\pmatrix{x_1 \\ y_1}$ とおくと
${ \begin{align} \pmatrix{x_1 \\ y_1} &= \pmatrix{c&s \\ -s&c} \pmatrix{\pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{4A'C'-B'^2}} \\ 0}\\ &=\pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{4A'C'-B'^2}}\cdot\pmatrix{c\\ -s} \end{align} }$
となります。
$c,s$ に代入して整理すると(複号の扱いが複雑ですが、あえて場合分けせずに書きますので「適切な方」を選択すると考えてください。)
${ \begin{align} \pmatrix{x_1 \\ y_1} &=\pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{4A'C'-B'^2}}\cdot \pmatrix{ \pm\sqrt{\dfrac{1}{2}+\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}}\\ \mp\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{1}{2}-\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} }\\ &= \pmatrix{ \pm 2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{2(4A'C'-B'^2)}+\dfrac{\mathrm{sgn}(C'-A')\sqrt{(A'-C')^2}}{2(4A'C'-B'^2)}}\\ \mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{2(4A'C'-B'^2)}-\dfrac{\mathrm{sgn}(C'-A')\sqrt{(A'-C')^2}}{2(4A'C'-B'^2)}} }\\ &= \pmatrix{ \pm 2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\ \mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}} }\\ \end{align} }$
まずは逆回転から。
双曲線の場合も、「$A'< C'$ のときは上の複号(言い換えると $s^2< c^2$ )、$A'>C'$ のときは下の複号(言い換えると $c^2< s^2$ )」というふうに決めたので、
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}+\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} ,\pm\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{1}{2}-\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} \right) \end{align} $
逆回転後の座標を $\pmatrix{x_1 \\ y_1}$ とおくと
${ \begin{align} \pmatrix{x_1 \\ y_1} &= \pmatrix{c&s \\ -s&c} \pmatrix{0 \\ \pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-(4A'C'-B'^2)}}}\\ &=\pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-(4A'C'-B'^2)}}\cdot\pmatrix{s\\ c} \end{align} }$
となります。
$c,s$ に代入して整理すると(複号の扱いが複雑ですが、あえて場合分けせずに書きますので「適切な方」を選択すると考えてください。)
${ \begin{align} \pmatrix{x_1 \\ y_1} &=\pm2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-(4A'C'-B'^2)}}\cdot \pmatrix{ \pm\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{1}{2}-\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}}\\ \pm\sqrt{\dfrac{1}{2}+\dfrac{\mathrm{sgn}(C'-A')}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}}} }\\ &= \pmatrix{ \pm 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-2(4A'C'-B'^2)}-\dfrac{\mathrm{sgn}(C'-A')\sqrt{(A'-C')^2}}{-2(4A'C'-B'^2)}}\\ \pm 2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}}{-2(4A'C'-B'^2)}+\dfrac{\mathrm{sgn}(C'-A')\sqrt{(A'-C')^2}}{-2(4A'C'-B'^2)}} }\\ &= \pmatrix{ \pm 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{-\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\ \pm 2\sqrt{\dfrac{-\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}} }\\ \end{align} }$
得られた式をまとめます。
(楕円の場合)
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=
\pmatrix{
\pm 2\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\
\mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}}
}\\
\end{align}
}$
(双曲線の場合)
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=
\pmatrix{
\pm 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\sqrt{\dfrac{-\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\
\pm 2\sqrt{\dfrac{-\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}}
}\\
\end{align}
}$
楕円のときは $\mathrm{sgn}(4AC-B^2)=1$ 、双曲線のときは $\mathrm{sgn}(4AC-B^2)=-1$ であることを使って、場合分けせずに書くことができます。
${ \begin{align} \pmatrix{x_1 \\ y_1} &= \pmatrix{ \pm 2\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\ \mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}} }\\ \end{align} }$
最後に逆平行移動します。
求める座標を $\pmatrix{x_F \\ y_F}$ とおくと
${ \begin{align} \pmatrix{x_F \\ y_F}&=\pmatrix{p \\ q}+\pmatrix{x_1 \\ y_1}\\ &=\pmatrix{ \dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\ \dfrac{2AE-BD}{{B}^2-4AC}\mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}} }\\ &=\pmatrix{ \dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(-A/F'+C/F')^2+B^2/F'^2}+A/F'-C/F'}{2(4AC/F'^2-B^2/F'^2)}}\\ \dfrac{2AE-BD}{{B}^2-4AC}\mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(-A/F'+C/F')^2+B^2//F'^2}-A/F'+C/F'}{2(4AC/F'^2-B^2/F^2)}} }\\ &=\pmatrix{ \dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}(F')\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}+A-C}{2(4AC-B^2)}\cdot F'}\\ \dfrac{2AE-BD}{{B}^2-4AC}\pm 2\left(1-\mathrm{sgn}(B)^2+\mathrm{sgn}(B)\right)\mathrm{sgn}(F')\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}(F')\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}-A+C}{2(4AC-B^2)}\cdot F'} }\\ &=\pmatrix{ \dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}+A-C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}\\ \dfrac{2AE-BD}{{B}^2-4AC}\pm 2\left(1-\mathrm{sgn}(B)^2+\mathrm{sgn}(B)\right)\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}-A+C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)} }\\ \end{align} }$
次に、「後で考える」としていた $C'-A'=0$ の場合について考えます。
このケースでは、$B'=0$ の場合は真円になってしまうため、$B' \ne 0$ としてよいことに注意します。
まず、$c^2,s^2$ の式を再掲します。この式は $C'-A'=0$ でも成り立ちます。
$c^2=\dfrac{1}{2}\pm\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
$s^2=\dfrac{1}{2}\mp\dfrac{1}{2}\sqrt{\dfrac{(A'-C')^2}{(A'-C')^2+B'^2}} $
(複号同順)
$C'-A'=0$ の場合は、$c^2=s^2=\dfrac{1}{2}$ となります。これは $\dfrac{\pi}{4}$ の整数倍の回転を表していますから、$cs=\pm\dfrac{1}{2}$ となります。
これらを使って原点中心の二次曲線を回転させて標準形にしましょう。
$\left(A'c^2-B'cs+C's^2\right)\textcolor{red}{x^2} +\left(2A'cs+B'(c^2-s^2)-2C'cs\right)\textcolor{red}{xy} +\left(A's^2+B'cs+C'c^2\right)\textcolor{red}{y^2}=1$ に先ほど求めた $c^2,s^2,cs$ を代入すると
$\left(\dfrac{A'}{2}-\dfrac{\pm B'}{2}+\dfrac{C'}{2}\right)\textcolor{red}{x^2} +\left(\dfrac{A'}{2}+\dfrac{\pm B'}{2}+\dfrac{C'}{2}\right)\textcolor{red}{y^2}=1$
$A'=C'$ も使って整理して
$\left(\dfrac{2A'\mp B'}{2}\right)\textcolor{red}{x^2}
+\left(\dfrac{2A'\pm B'}{2}\right)\textcolor{red}{y^2}=1$
……(❤)
二次曲線が楕円の場合、$x^2$ の係数と $y^2$ の係数はどちらも正になります。
(❤)の複号で $x^2$ の係数よりも $y^2$ の係数の方が大きいと焦点が $x$ 軸上、小さいと焦点が $y$ 軸上になります。ここでは焦点が $x$ 軸上になる方(いいかえると、$B'>0$ のときは上の複号、$B'<0$ のときは下の複号)を選択することにしましょう。
$ \left(\dfrac{2A'-|B'|}{2}\right)\textcolor{red}{x^2} +\left(\dfrac{2A'+|B'|}{2}\right)\textcolor{red}{y^2} =1 $
の焦点は
$\left( \pm\sqrt{\dfrac{2}{2A'-|B'|}-\dfrac{2}{2A'+|B'|}} \,\,\, ,0 \right)$
整理して
$\left( \pm2\sqrt{\dfrac{|B'|}{4A'^2-B'^2}} \,\,\, ,0 \right)$
二次曲線が双曲線の場合、$x^2$ の係数と $y^2$ の係数は符号が逆になります。
(❤)の複号で $x^2$ の係数が正、$y^2$ の係数が負のときは焦点が $x$ 軸上、$x^2$ の係数が負、$y^2$ の係数が正のときは焦点が $y$ 軸上になります。ここでは焦点が $y$ 軸上になる方(いいかえると、$B'>0$ のときは上の複号、$B'<0$ のときは下の複号)を選択することにしましょう。
$ \left(\dfrac{2A'-|B'|}{2}\right)\textcolor{red}{x^2} +\left(\dfrac{2A'+|B'|}{2}\right)\textcolor{red}{y^2} =1 $
の焦点は
$\left( 0, \pm\sqrt{\dfrac{2}{2A'+|B'|}-\dfrac{2}{2A'-|B'|}} \right)$
整理して
$\left( 0, \pm2\sqrt{\dfrac{-|B'|}{4A'^2-B'^2}} \right)$
後は求めた焦点の座標を、逆回転・逆平行移動して元の二次曲線の焦点の座標を求めましょう。
まずは逆回転から。
楕円の場合は、「$B'>0$ のときは上の複号(言い換えると $cs=\dfrac{1}{2}$ )、$B'<0$ のときは下の複号(言い換えると $cs=-\dfrac{1}{2}$ )」というふうに決めたので、
$B'>0$ のときは
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}},\pm\sqrt{\dfrac{1}{2}} \right) \end{align} $
$B'<0$ のときは のときは
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}},\mp\sqrt{\dfrac{1}{2}} \right) \end{align} $
これらの式は $\mathrm{sgn}$ をうまく使うと $1$ つにまとめることができます。
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}},\pm\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}} \right) \end{align} $
逆回転後の座標を $\pmatrix{x_1 \\ y_1}$ とおくと
${ \begin{align} \pmatrix{x_1 \\ y_1} &= \pmatrix{c&s \\ -s&c} \pmatrix{\pm2\sqrt{\dfrac{|B'|}{4A'^2-B'^2}}\\ 0}\\ &=\pm2\sqrt{\dfrac{|B'|}{4A'^2-B'^2}}\cdot\pmatrix{c\\ -s}\\ &=\pm2\sqrt{\dfrac{|B'|}{4A'^2-B'^2}}\cdot\pmatrix{\pm\sqrt{\dfrac{1}{2}} \\ \mp\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}}}\\ &=\pmatrix{\pm\sqrt{\dfrac{2|B'|}{4A'^2-B'^2}} \\ \mp\mathrm{sgn}(B')\sqrt{\dfrac{2|B'|}{4A'^2-B'^2}}}\\ \end{align} }$
となります。
まずは逆回転から。
双曲線の場合も、「$B'>0$ のときは上の複号(言い換えると $cs=\dfrac{1}{2}$ )、$B'<0$ のときは下の複号(言い換えると $cs=-\dfrac{1}{2}$ )」というふうに決めたので、
$\begin{align} (c,s)=&\left(\pm\sqrt{\dfrac{1}{2}},\pm\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}} \right) \end{align} $
逆回転後の座標を $\pmatrix{x_1 \\ y_1}$ とおくと
${ \begin{align} \pmatrix{x_1 \\ y_1} &= \pmatrix{c&s \\ -s&c} \pmatrix{0 \\ \pm2\sqrt{\dfrac{-|B'|}{4A'^2-B'^2}}}\\ &=\pm2\sqrt{\dfrac{-|B'|}{4A'^2-B'^2}}\cdot\pmatrix{s\\ c}\\ &=\pm2\sqrt{\dfrac{-|B'|}{4A'^2-B'^2}}\cdot\pmatrix{\pm\mathrm{sgn}(B')\sqrt{\dfrac{1}{2}} \\ \pm\sqrt{\dfrac{1}{2}}}\\ &=\pmatrix{\pm\mathrm{sgn}(B')\sqrt{\dfrac{-2|B'|}{4A'^2-B'^2}} \\ \pm\sqrt{\dfrac{-2|B'|}{4A'^2-B'^2}}}\\ \end{align} }$
となります。
得られた式をまとめます。
(楕円の場合)
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=\pmatrix{\pm\sqrt{\dfrac{2|B'|}{4A'^2-B'^2}} \\ \mp\mathrm{sgn}(B')\sqrt{\dfrac{2|B'|}{4A'^2-B'^2}}}\\
\end{align}
}$
(双曲線の場合)
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=\pmatrix{\pm\mathrm{sgn}(B')\sqrt{\dfrac{-2|B'|}{4A'^2-B'^2}} \\ \pm\sqrt{\dfrac{-2|B'|}{4A'^2-B'^2}}}\\
\end{align}
}$
楕円のときは $\mathrm{sgn}(4AC-B^2)=1$ 、双曲線のときは $\mathrm{sgn}(4AC-B^2)=-1$ であることを使って、場合分けせずに書くことができます。
($A'-C' = 0$ の場合)
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=\pmatrix{\pm\sqrt{\dfrac{2\mathrm{sgn}(4AC-B^2)|B'|}{4A'^2-B'^2}} \\ \mp\mathrm{sgn}(B')\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{2\mathrm{sgn}(4AC-B^2)|B'|}{4A'^2-B'^2}}}\\
\end{align}
}$
ここで、$A'-C' \ne 0$ の場合の式と見比べてみると、$A'-C' \ne 0$ の場合の式に $A'=C'$ を代入した式が$A'-C' \ne 0$ の場合の式と全く同じになることが分かります。
($A'-C' \ne 0$ の場合)【再掲】
${
\begin{align}
\pmatrix{x_1 \\ y_1}
&=
\pmatrix{
\pm 2\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}-A'+C'}{2(4A'C'-B'^2)}}\\
\mp 2\left(1-\mathrm{sgn}(B')^2+\mathrm{sgn}(B')\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}(4AC-B^2)\sqrt{(A'-C')^2+B'^2}+A'-C'}{2(4A'C'-B'^2)}}
}\\
\end{align}
}$
したがって、ここから先の変形は $A'-C' \ne 0$ と同じになり、最終的な公式も同じになります。
長い道のりでしたが、これで公式の完成です!!
二次曲線
$Ax^2+Bxy+Cy^2+Dx+Ey+F=0$
が楕円又は双曲線になるとき、その焦点の座標 $\pmatrix{x_F \\ y_F}$ は次の式で求められる。
${
\begin{align}
\pmatrix{x_F \\ y_F}
&=\pmatrix{
\dfrac{2CD-BE}{{B}^2-4AC}\pm 2\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}+A-C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}\\
\dfrac{2AE-BD}{{B}^2-4AC}\pm 2\left(1-\mathrm{sgn}(B)^2+\mathrm{sgn}(B)\right)\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{\dfrac{\mathrm{sgn}\left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)\mathrm{sgn}(4AC-B^2)\sqrt{(A-C)^2+B^2}-A+C}{2(4AC-B^2)}\cdot \left(\dfrac{AE^2+CD^2-BDE}{B^2-4AC}+F\right)}
}\\
\end{align}
}$
(複号同順)
エレガントさのかけらもない、ゴリゴリの式変形だけでしたが、それなりに対称性のある形になったのでとりあえず満足しています。
しかしながら、絶対値を使うなどの方法により、もっとシンプルな書き方があるんじゃないか、という気もしています。
もし、「こういうシンプルな表示ができるよ!」といった情報があれば教えていただければ幸いです。
また、検証用のDesmosファイルを作成しましたので、係数をいろいろ変化させて公式が成り立っていることを確かめてみてください!