ラベル 3つの円 の投稿を表示しています。 すべての投稿を表示
ラベル 3つの円 の投稿を表示しています。 すべての投稿を表示

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.

この方が楽だなぁ.