問題
YouTubeで見かけた数学オリンピック対策の演習問題。
内点Pから各頂点までの距離がそれぞれ$a=5,b=7,c=8$であるとき、正三角形の大きさ$x$を求めよ。
解答例
YouTubeでは技巧的な補助線を引いて求めていたが、そんな発想力はないので、
三角関数を使用して、力ずくで解いてみる。
\begin{align}
\cos\phi&=\frac{b^2+x^2-a^2}{2bx}\\
\cos\psi&=\frac{b^2+x^2-c^2}{2bx}\\
\cos\left(\phi+\psi\right)&=\frac{1}{2}=\cos\phi\cos\psi-\sin\phi\sin\psi\\
\left(\cos\phi\cos\psi-\frac{1}{2}\right)^2&=\sin^2\phi\sin^2\psi
=\left(1-\cos^2\phi\right)\left(1-\cos^2\psi\right)\\
\frac{3}{4}&=(\cos\phi-\cos\psi)^2+\cos\phi\cos\psi\\
\end{align}
$\cos\phi,\cos\psi$に$x,a,b,c$を代入して展開すると、$x^2$に関する二次方程式が得られる。
判別式を$D$とすると、以下のように$x$が求まる。
\begin{align}
3b^2x^2&=(a^2-c^2)^2+(b^2+x^2-a^2)(b^2+x^2-c^2)\\
0&=x^4-(a^2+b^2+c^2)x^2+a^4+b^4+c^4-a^2b^2-b^2c^2-c^2a^2\\
x^2&=\frac{(a^2+b^2+c^2)\pm\sqrt{D}}{2}\\
D&=3(b+c-a)(a+c-b)(a+b-c)(a+b+c)\\
\end{align}
判別式$D$の因数分解には数式処理ライブラリを使用してみた。
import sympy
x = sympy.Symbol('x')
a = sympy.Symbol('a')
b = sympy.Symbol('b')
c = sympy.Symbol('c')
k2 = -(a**2+b**2+c**2)
k0 = a**4+b**4+c**4-a**2*b**2-b**2*c**2-c**2*a**2
D = k2**2-4*k0
print(sympy.factor(D))
-3*(a - b - c)*(a - b + c)*(a + b - c)*(a + b + c)
今回の問題では、$a^2+b^2+c^2=138, D=120^2$となり、$x=\sqrt{129}$、または$x=3$となる。
$x=3$の場合、点Pは正三角形の外部に位置する。