平成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最初のページへもどる