2011年8月4日木曜日

3つの円

「とっておきの数学パズル」に, 「3つの円」という問題があった. 5.14



平面上で離れている, 半径の違う2つの円の, 円の間で交わらない(外側の)共通接線の交点を, それらの円の焦点という. 3つの円があると, 焦点は3個出来るわけだが, その3点は一直線上にあることを証明せよというのである.

こういう図で考えてみる.


円O0は中心の座標をx0,y0, 半径をr0, 円O1は座標をx1,y1, 半径をr1とする. また共通接線の1本と, 円との接点をT0, T1, 共通接線の交点P01の座標を, x01, y01とする.

三角形O0P01T0と三角形O1P01T1とは相似で, 大きさの比はr0 : r1である. 従って
(x01-x0) : (x01-x1)=r0 : r1,   (y01-y0) : (y01-y1)=r0 : r1.

これから, x01=(r0x1-r1x0)/(r0-r1),   y01=(r0y1-r1y0)/(r0-r1).

x12, y12, x20, y20についても, 同様な式が得られる.

ここで, 3点(x0,y0), (x1,y1), (x2,y2)が一直線上にあることの検査は, このブログの2008年4月24日の「同一直線上の3点」にあるように, 3点で作る三角形の面積が0かどうかで判定出来る.

今回もP01, P12, P20の三角形の面積を求めれば良い.

まず座標は
x01=(r0x1-r1x0)/(r0-r1)
y01=(r0y1-r1y0)/(r0-r1)
x12=(r1x2-r2x1)/(r1-r2)
y12=(r1y2-r2y1)/(r1-r2)
x20=(r2x0-r0x2)/(r2-r0)
y20=(r2y0-r0y2)/(r2-r0)
だから, 三角形の面積の2倍は
x01y12+x12y20+x20y01-x12y01-x20y12-x01y20

通分して分母を払い, 計算を続けると

  (r0x1-r1x0)(r1y2-r2y1)(r2-r0)+(r1x2-r2x1)(r2y0-r0y2)(r0-r1)
+(r2x0-r0x2)(r0y1-r1y0)(r1-r2)-(r1x2-r2x1)(r0y1-r1y0)(r2-r0)
-(r2x0-r0x2)(r1y2-r2y1)(r0-r1)-(r0x1-r1x0)(r2y0-r0y2)(r1-r2)

展開すると,
 (r0r1x1y2-r0r2x1y1-r1r1x0y2+r1r2x0y1)(r2-r0)
+(r1r2x2y0-r1r0x2y2-r2r2x1y0+r2r0x1y2)(r0-r1)
+(r2r0x0y1-r2r1x0y0-r0r0x2y1+r0r1x2y0)(r1-r2)
-(r1r0x2y1-r1r1x2y0-r2r0x1y1+r2r1x1y0)(r2-r0)
-(r2r1x0y2-r2r2x0y1-r0r1x2y2+r0r2x2y1)(r0-r1)
-(r0r2x1y0-r0r0x1y2-r1r2x0y0+r1r0x0y2)(r1-r2)

さらに展開する.
+r0r1r2x1y2-r0r2r2x1y1-r1r1r2x0y2+r1r2r2x0y1
-r0r0r1x1y2+r0r0r2x1y1+r0r1r1x0y2-r0r1r2x0y1
+r0r1r2x2y0-r0r0r1x2y2-r0r2r2x1y0+r0r0r2x1y2
-r1r1r2x2y0+r0r1r1x2y2+r1r2r2x1y0-r0r1r2x1y2
+r0r1r2x0y1-r1r1r2x0y0-r0r0r1x2y1+r0r1r1x2y0
-r0r2r2x0y1+r1r2r2x0y0+r0r0r2x2y1-r0r1r2x2y0
-r0r1r2x2y1+r1r1r2x2y0+r0r2r2x1y1-r1r2r2x1y0
+r0r0r1x2y1-r0r1r1x2y0-r0r0r2x1y1+r0r1r2x1y0
-r0r1r2x0y2+r0r2r2x0y1+r0r0r1x2y2-r0r0r2x2y1
+r1r1r2x0y2-r1r2r2x0y1-r0r1r1x2y2+r0r1r2x2y1
-r0r1r2x1y0+r0r0r1x1y2+r1r1r2x0y0-r0r1r1x0y2
+r0r2r2x1y0-r0r0r2x1y2-r1r2r2x0y0+r0r1r2x0y2

同じrの項をまとめると,
r0r0r1(-x1y2-x2y2-x2y1+x2y1+x2y2+x1y2)
r0r0r2(+x1y1+x1y2+x2y1-x1y1-x2y1-x1y2)
r0r1r1(+x0y2+x2y2+x2y0-x2y0-x2y2-x0y2)
r0r2r2(-x1y1-x1y0-x0y1+x1y1+x0y1+x1y0)
r1r1r2(-x0y2-x2y0-x0y0+x2y0+x0y2+x0y0)
r1r2r2(+x0y1+x1y0+x0y0-x1y0-x0y1-x0y0)
r0r1r2(+x1y2-x0y1+x2y0-x1y2+x0y1-x2y0
  -x2y1+x1y0-x0y2+x2y1-x1y0+x0y2)

となり, かっこ内はプラスマイナス打ち消し, めでたく0になった.

実際に上のように書いて計算したわけではない. 変数の順を覚えておき, 引数だけを使って計算した. 最後に, ブログ用に変数名を追加するには, utilispのプログラムを書いて実行した.

ところで, 数式処理システムrisa/asirを使ってみたら,

X01=(r0*x1-r1*x0)/(r0-r1);
X12=(r1*x2-r2*x1)/(r1-r2);
X20=(r2*x0-r0*x2)/(r2-r0);

Y01=(r0*y1-r1*y0)/(r0-r1);
Y12=(r1*y2-r2*y1)/(r1-r2);
Y20=(r2*y0-r0*y2)/(r2-r0);

X01*Y12+X12*Y20+X20*Y01-X12*Y01-X20*Y12-X01*Y20;

を入力すると, 瞬時に0が返り, 安堵する.

さて, 例によって, 幾何学的に証明できないかと考える. 幾何の証明で大切なのは, 図をなるべく正確に描くことだ. 幸い, このブログの最初の図を描いたPostScriptのプログラムがあるから, それを多少修正すると以下の図が得られる.

今度は3つの円O0, O1, O2の中心をA, B, Cとしている. また, 焦点をE, F, Gとした. BからEFに平行線を引き, AFとの交点をDとする.

円の中心O0, O1と焦点P01の距離の比は, 半径r0, r1の比であった.

EはA,Bの焦点だから, BE/AE=r1/r0
FはA,Cの焦点だから, CF/AF=r2/r0

BD//EFにしたから, DF/AF=r1/r0
従って, CF/DF==r2/r1

また, GがB,Cの焦点だから, CF/DR=r2/r1=CG/GB
従って, FG//BD//EF

QED.

この方が楽だなぁ.

2 件のコメント:

GB さんのコメント...

双対曲線で 叶うでしょう

GB さんのコメント...

>コメントを保存しました。
>あなたのコメントが 元の投稿 のサイト上に>表示されるまでには、少し時間がかかることがあります