平成11年8月18日

[流れ星]

    第25回数学的な応募問題

 <解答募集期間:8月6日〜8月21日>

    [アルハゼンの定理]

 太郎さんには、中学校へ通っている子供がいます。この夏休みの宿題に、次のような円に

関する問題です

が出ていました。

<浜田 明巳>さんからの解答8月16日受信

第25回数学的な応募問題[アルハゼンの定理]

 アルハゼンの定理について,今まで何も知りませんので,いつもの通りにパソコンのプログラムで解いて見ました。

この方法ですと,たとえ幾何に関する知識が皆無でも,何となくでも解けてしまうのです.

問題1:とりあえず円の半径を1(=r)とし,中心を原点とします.OAのx軸とのなす角度を180°≦tA<270°として,tAを0.5°きざみ(kizami)で増加させます.Cを,ACがx軸と平行になるようにとり,OCのx軸とのなす角度をtCとします.またBを弧AC上にとり,OBとx軸とのなす角度をtA<tB<tCとして,tBを0.5°きざみで増加させます.それぞれの場合のDの位置を求め,弧CD/弧ABの比が一番3/2に近くなる場合を求めます.後は弧ABの長さが2πになるように相似比で計算して,実際の円の半径rと面積Sを求めます.

 QBasicのプログラムm25_1.basにより,面積は100πになることが分かりました.

問題2:原点中心の単位円で考えます.Aの位置を90°<tA<270°として,ADとx軸が平行になるようにDをとります.そして∠ADBを0.5°きざみでとり,弧AB:弧CD=1:3になるようにCをとります.そして∠CPDが一番48°に近い場合を求めます.

 プログラムm25_2.basにより,角度は12°になることが分かりました.

問題3:原点中心の単位円で考えます.Aの位置を90°<tA<270°として,tAを0.1°きざみで増加させます.AEとx軸が平行になるようにEをとります.そして∠EAC=40°からCを求め,弧ECの長さからBを求め,次に∠ACBを求めます.ACとBDの交点をFとするとき,

∠PFC=∠FBC+∠FCB=∠PAF+∠APF=40°+30°から,∠CBD=70°−∠ACBを求めます.プログラムM25_3.basにより,角度は20°になることが分かりました.

 

PS.最近は,私と小島先生くらいしか解答を寄せていないようです.私のような亜流ではなく,もっと正統派の多くの人の解答を期待したいですね.

<水の流れのコメント>:確かにそうですね。中高生の諸君の解答を心より待っています。学校の夏休みの宿題に忙しいのも分かりますが、心にゆとりを持って過ごしましょう。

'm25_1.bas

CLS : DEFDBL A-Z

pi = 3.14159: w = pi / 180: r = 1: min = 100: hi = 2 / 3: kizami = .5

FOR tA = 180 TO 270 - kizami STEP kizami: tC = 180 - tA

FOR tB = tA + kizami TO 360 + tC STEP kizami

LOCATE 1, 1: PRINT USING "tA=####.# , tB=####.# check chuu"; tA; tB

xB = r * COS(tB * w): yB = r * SIN(tB * w)

a = 2: bd = yB - xB: c = (yB - xB) * (yB - xB) - r * r

xD = (-bd + SQR(bd * bd - a * c)) / a: yD = xD - xB + yB

tD = ATN(yD / xD) / w

IF tD > tC THEN

ratio = (tB - tA) / (tD - tC)

IF ABS(ratio - hi) < min THEN

min = ABS(ratio - hi): AB = r * (tB - tA) * w

LOCATE 3, 1: PRINT "kouho (r="; r; ") : ";

PRINT USING "tA=####.# , tB=####.# , AB=###.######"; tA; tB; AB

END IF

END IF

NEXT: NEXT

r = 2 * pi / AB

LOCATE 5, 1: PRINT USING "r=###.###### , S=####.###### * pi"; r; r * r: END

 

'm25_2.bas

CLS : DEFDBL A-Z: kizami = .5: pi = 3.14159: w = pi / 180: r = 1: min = 100

FOR tA = kizami + 90 TO 180 - kizami STEP kizami

xA = r * COS(tA * w): yA = r * SIN(tA * w)

tD = 180 - tA + 360: xD = r * COS(tD * w): yD = r * SIN(tD * w)

kakuADB = kizami

DO

LOCATE 1, 1: PRINT USING "tA=###.#do, kakuADB=##.#do check chuu"; tA; kakuADB

a = 1 + TAN(kakuADB * w) * TAN(kakuADB * w)

bd = TAN(kakuADB * w) * (yD - xD * TAN(kakuADB * w))

c = (yD - xD * TAN(kakuADB * w)) * (yD - xD * TAN(kakuADB * w)) - r * r

xB = (-bd - SQR(bd * bd - a * c)) / a

yB = xB * TAN(kakuADB * w) + yD - xD * TAN(kakuADB * w)

tB = 180 + ATN(yB / xB) / w

tC = tD - 3 * (tB - tA): xC = r * COS(tC * w): yC = r * SIN(tC * w)

kakuCAD = -ATN((yC - yA) / (xC - xA)) / w

kakuCPD = kakuCAD + kakuADB

sa = ABS(kakuCPD - 48)

IF sa < min THEN

min = sa: tAmin = tA: tBmin = tB: tCmin = tC: tDmin = tD: kotae = kakuADB

LOCATE 2, 1: PRINT USING "kouho=##.#do"; kotae

END IF

kakuADB = kakuADB + kizami

LOOP WHILE tB < tC

NEXT

LOCATE 4, 1: PRINT USING "kotae=##.#do"; kotae

LOCATE 5, 1: PRINT USING "tA=###.#do, tB=###.#do, tC=###.#do, tD=###.#do"; tAmin; tBmin; tCmin; tDmin + (tDmin > 360) * 360

END

 

'm25_3.bas

CLS : DEFDBL A-Z: kizami = .01: pi = 3.14159: w = pi / 180: r = 1

tA = 90 + kizami

DO

tE = 180 - tA

xA = r * COS(tA * w): yA = r * SIN(tA * w)

a = 1 + TAN(-40 * w) * TAN(-40 * w)

bd = TAN(-40 * w) * (yA - xA * TAN(-40 * w))

c = (yA - xA * TAN(-40 * w)) * (yA - xA * TAN(-40 * w)) - r * r

xC = (-bd + SQR(bd * bd - a * c)) / a

yC = xC * TAN(-40 * w) + yA - xA * TAN(-40 * w)

tC = ATN(yC / xC) / w: tC = tC - (tC < 0) * 360

tCE = tC - tE: tCE = tCE - (tCE < 0) * 360

tB = tA + (180 - tCE): xB = r * COS(tB * w): yB = r * SIN(tB * w)

AB = SQR((xB - xA) * (xB - xA) + (yB - yA) * (yB - yA))

BC = SQR((xC - xB) * (xC - xB) + (yC - yB) * (yC - yB))

CA = SQR((xA - xC) * (xA - xC) + (yA - yC) * (yA - yC))

cosACB = (BC * BC + CA * CA - AB * AB) / BC / CA * .5

kakuACB = ATN(SQR(1 / cosACB / cosACB - 1)) / w

kakuCBD = 40 + 30 - kakuACB

PRINT USING "tA=###.##do, kakuCBD=##.##do"; tA; kakuCBD

tA = tA + kizami

LOOP WHILE tB < tC AND tA < 270

END

皆さん、答えがわかったら、その答えになる考え方とペンネームを添えて、

  メールで送ってください。待っています。

         

    <自宅>  mizuryu@aqua.ocn.ne.jp

 最初のページへもどる