Weekend Mathematicsコロキウム室テーマ別/22.置換積分



コロキウム室(置換積分)


NO.482 '99 5/20浜田 明巳置換積分(1)

97年の大阪府立大学入試問題で,
「座標平面上に,原点Oを中心とする半径2の固定された円Cと, それに外側から接しながら回転する半径1の円C'がある. 円C'の中心が(3,0)にあるときのC'側の接点に印Pをつけ, 円C'を円Cに接しながら滑らずに回転させる. 点Pの描く曲線で囲まれた領域の面積を求めよ.」
というのがありました.

解答は,
P(x、y)とし,OAのx軸とのなす角をθとすると,
x=3cosθ−cos3θ,y=3sinθ−sin3θ(0≦θ<2π)



という標準的な置換積分の計算です.
この問題を次のように解いた生徒がいるのです. この解答のどこが違っているのか,というのが質問なのです.
ΔS=Δθ(x2+y2)/2
=Δθ{(3cosθ−cos3θ)2+(3sinθ−sin3θ)2}/2
=Δθ(5−3cos2θ)






NO.483 '99 5/21Junko置換積分(2)


右の図のように、円Cと円C’との接点をAとする。 APの長さが等しいことと、円Cの半径が、円C’の半径の2倍であることを 考慮すると、 x軸とOAとのなす角θに対して、∠AO’Pは2θとなる。
従って、P(x,y)とすると、
x=3cosθ+cos(π+3θ)=3cosθ−cos3θ,
y=3sinθ+sin(π+3θ)=3sinθ−sin3θ
(0≦θ<2π)となります。


点Pの軌跡は右の図のようになります。
円Cと円C’も一緒にかいてあります。
問題はオレンジの部分の面積を求めることになります。




NO.486 '99 5/21水の流れ置換積分(3)

NO.482の後の解答は、 極方定式 r=f(θ)の面積を求める公式に 入れて計算してありますが、 点Pとx軸とのなす角はθではありません。 だから、ここで間違っています。
ちなみに円C’は何回転しますかは、もうお分かりでしょう。
3回転します。 この軌跡をエピ・サイクロイド(外サイクロイド)といいます。
円C’を内側で、円Cに接しながら滑ることなく回転させると、 こちらは1回転しかしません。そして、この場合は円Cの内部で y軸上を動くことになるでしょう。 また、軌跡の名称は忘れましたが、(内サイクロイドと言います)



NO.488 '99 5/22Junko置換積分(4)


極座標系における面積の求め方です。
原点からの距離rが、偏角θの関数として、r=f(θ)として表されているとき、
左図の面積Sは以下の定積分によってもとめるこができます。




どうして上の式で面積を求めることができるのか、 感覚的にではありますがこじつけてみます。







NO.490 '99 5/24Junko置換積分(5)


円C’を内側で、円Cに接しながら滑ることなく回転させたときの 軌跡は、「ハイポサイクロイド」というそうです。 点Pはy軸上を(2,0)から(-2,0)まで行き、また戻ってきます。 (オレンジの部分)


半径の比を1:2とすると、線分になってしまっておもしろくないので、 今度は半径の比を1:3にしてみます。
円Cと円C’との接点をAとします。
APの長さが等しいことと、円Cの半径が、円C’の半径の3倍であることを 考慮すると、x軸とOAとのなす角θに対して、∠AO’Pは3θとなる。
従って、P(x,y)とすると、
x=2cosθ+cos(−2θ)=2cosθ+cos2θ,
y=2sinθ+sin(−2θ)=2sinθ−sin2θ
(0≦θ<2π)となります。


これを図示するとこうなります。
この曲線で囲まれた部分の面積も求めてみてください。




NO.491 '99 5/24浜田 明巳置換積分(6)



これをいつものようにBASICのプログラムで検証しました.昔の話なので,N88日本語BASICで作ってあります.

100 'SAVE"97OOSAK3.BAS",A
110 *INIT:SCREEN 3,0,1:CLS 3:SCREEN ,,0,1:CLS 3:CONSOLE 0,25,0,1:WIDTH 80,25
120 ON STOP GOSUB *STP:STOP ON:ON ERROR GOTO *ER
130 DIM X(180),Y(180):LOCATE 44,12:PRINT"97年大阪府立大"
140 R=2:RR=1 '大円,小円の半径
150 X0=0:Y0=0:X1=X0+R+RR:Y1=Y0:S1=0:S2=0:S3=0:S4=0:S5=0
160 T=0:X(0)=X1-RR:Y(0)=Y1:KK=49:XC=320+2*KK:YC=200:ACT=0:PI=3.14159:W=PI/180
170 '
180 *ST:GOSUB *SAKUZU
190 LOCATE 0,0:PRINT"何かキーを押して下さい.始めます."
200 WHILE INKEY$="":WEND:WHILE INKEY$<>"":WEND:LOCATE 0,0:PRINT SPC(34)
210 FOR T=0 TO 180:TT=2*T
220  X1=X0+(R+RR)*COS(TT*W):Y1=Y0+(R+RR)*SIN(TT*W)
230  X(T)=X1-RR*COS((RR+R)*TT*W):Y(T)=Y1-RR*SIN((RR+R)*TT*W)
240  ON -(T=0) GOTO 320
250  S1=S1+.5*ABS((Y(T)-Y(T-1))*(X(T)+X(T-1)))
260  S2=S2+.5*ABS(X(T-1)*Y(T)-X(T)*Y(T-1))
270  A=SQR(X(T)*X(T)+Y(T)*Y(T)):B=SQR(X(T-1)*X(T-1)+Y(T-1)*Y(T-1))
280  C=SQR((X(T)-X(T-1))*(X(T)-X(T-1))+(Y(T)-Y(T-1))*(Y(T)-Y(T-1)))
290  S=.5*(A+B+C):S3=S3+SQR(S*(S-A)*(S-B)*(S-C))
300  S4=S4+.5*A*B*SIN(2*W)
310  S5=S5+.25*(A*A+B*B)*2*W
320  ACT=1-ACT:DISP=ACT*16+1:SCREEN ,,ACT:CLS 2
330  GOSUB *SAKUZU:LOCATE 0,4:PRINT"t=";TT;"°":PRINT
340  COLOR 2:PRINT"面積=4∫(0,4)xdy":PRINT USING"    =##.####*π";S1/PI:PRINT
350  PRINT"面積=.5*abs(x1*y2-x2*y1)":PRINT USING"    =##.####*π";S2/PI:PRINT
360  PRINT"面積=(ヘロンの公式)":PRINT USING"    =##.####*π";S3/PI:PRINT
370  PRINT"面積=.5*OP1*OP2*sin(冲)":PRINT USING"    =##.####*π";S4/PI:PRINT
380  PRINT"面積=.5*OP^2*冲":PRINT USING"    =##.####*π";S5/PI:COLOR 7
390  SCREEN ,,,DISP
400  ON -(INKEY$="S") GOSUB *SS
410 NEXT:WHILE INKEY$<>"":WEND
420 LOCATE 0,0:PRINT"繰り返しますか?(Y/N)":A$=""
430 WHILE A$<>"Y" AND A$<>"y" AND A$<>"N" AND A$<>"n"
440  A$=INKEY$:WHILE INKEY$<>"":WEND
450 WEND
460 IF A$="Y" OR A$="y" THEN RUN
470 LOCATE 0,0:PRINT"終わりました.            "
480 '
490 *STP:END
500 '
510 *ER:RESUME NEXT
520 '
530 *SAKUZU:CIRCLE(XC+KK*X0,YC-KK*Y0),KK*R,7
540 CIRCLE(XC+KK*X1,YC-KK*Y1),KK*RR,6
550 FOR J=0 TO T:CIRCLE(XC+KK*X(J),YC-KK*Y(J)),2-(J=T),2-3*(J=T),,,,F:NEXT
560 RETURN
570 '
580 *SS:WHILE INKEY$="":WEND:WHILE INKEY$<>"":WEND:RETURN
このプログラムによると,



となります.
1.は通常の積分計算,2〜4は原点を1つの頂点とし, その頂点の角を2度(=π/90)とする微小の三角形に分割して 面積の和を求めた計算,5は原点を中心, 中心角2度の微小の扇形に分割して面積の和を求めた計算です.
これでどうやら刄ニ(=2度)がからんだ計算だと10πになり, そうでないと12πになることが分かりました.
しかしどれも同じ部分の面積を求める式のはずです. ここら辺で頭がこんがらがってしまったのです. どうか皆さん,助けて下さい.
他にモンテカルロ法でもプログラムを作ってみたのですが, 面積は12πになりました.
正解は絶対に12πという事は分かっているのですが・・・.



 
NO.494 '99 5/25水の流れ置換積分(7)

NO.490にあるハイポサイクロイドで囲まれた図形の 面積を求めてみました。





NO.495 '99 5/25Junko置換積分(8)

NO.491にある、モンテカルロ法について コメントします。

ある図形Aの面積を求めるのに、それを含む正方形Bを考えます。 この正方形の中から任意の点P(x,y)を抽出して、その点P(x,y)が 図形Aの中にあるかどうかを判断します。
これを1,000回繰り返してAの中にあった回数がたとえば521回とすると、
(Aの面積)/(Bの面積)≒521/1,000と考えられるわけです。
こうしてAの面積の近似値を求められるわけですが、 試行回数を10,000、100,000とふやす(コンピュ−タ−があればこそ・・・)ことで、 ある程度の精度を得ることができるわけです。

浜田 明巳のNO.448などは その例だと思います。

このモンテカルロ法というのは「大数の法則」の基づいています。
「大数の法則」というのは、試行回数Nを十分大きくすると、事象Aの起こる相対度数 r/NはほぼP(A)に等しい、というものです。

それにしてもなぜ、「モンテカルロ」なのでしょう?



NO.499 '99 5/26水の流れ置換積分(9)

モンテ・カルロ法について、大阪書籍発行の「新数学辞典」から引用します。
十分滑らかな境界Γで囲まれた領域Ωにおいて、 Γ上に境界値を与えてΔu=0を解くディリクレ問題の解uの定点x∈Ω における値u(x)は、xから出発してランダムに動く点 (以下これを「よっぱらい」と呼ぶ) が境界yにおいてつかまる確率密度をpx(y)とすると、
積分∫ψ(y)dpx(y) で与えられる。
これは本質的に1920年代にウィーナー (父から天才教育を受け、18歳でハーバード大学卒業、ブラウン運動で有名) によって研究された結果であり、不正則点やウィーナーの条件など、 この立場から明快に説明される。 1950年代以降確率論的ポテンシャル論のもっとも簡単な一例として 知られるようになった。
いわばよっぱらいがyでつかまるとψ(y)の罰金をとられるとき、 xから出発したよっぱらいがとられる罰金の期待値がu(x)ということである。 これをランダムに動く点をシュミュレートしょうというのが モンテ・カルロ法による境界値問題の解法である。
提案された当時(1940年末)には奇抜な解法と評判であったが、 詳しい値を求めるにはきわめて多数回の反復を要した。
そこで、私の見解ですが、当時、イタリヤのモナコの近くにあった モンテカルロという町を巡って行われる自動車のラリーがこのような、 ランダム運動をしたことから、このいわれを取るようになったと考えられる。 全くの推測ですが?



NO.502 '99 5/27数楽者置換積分(10)

モンテカルロ法は、乱数を用いた手法一般に付けられた名前です。 乱数を用いるとは、ある意味でサイコロを振ることに対応します。 そこで、賭博で有名な場所「モンテカルロ」(F1でも有名です)をとって、 モンテカルロ法と名づけました。(車のレースではないです。)
コロキウムでも紹介されていますが

などがあります。
ほかにも、繁華街における人の動きなどを模擬実験(シミュレーション) で観察して、それから知見を得る方法として、 モンテカルロシミュレーションが知られています。



NO.503 '99 5/28浜田 明巳置換積分(11)

モンテカルロ法についてですが, πを求めるプログラムはいろいろな言語の解説書に載っています.
今回の大阪府立大学の問題の答を求めるプログラムは次の通りです. これはQBASICで作ってあります. QBASICはWINDOWS98や95のシステムCDROMの中の OLDMSDOSというフォルダの中にあります. このフォルダの中のファイルをすべてハードディスクにコピーし, DOSプロンプトを立ち上げ,USモードにして, QBASICを立ち上げればOKです. 具体的に私の場合だとこうしています. DOSプロンプトを立ち上げ,

  >cd \qbasic (+enter) (QBASICというフォルダの中に収納してあります)
  >us (+enter)     (USモードにします)
  >qbasic (+enter)   (QBASICを立ち上げます)
という風にします.終わったら,
  >jp (+enter)     (日本語モードに戻します)
  >exit (+enter)    (DOSプロンプトから戻ります)
です.こんな役立つプログラム言語が98や95に標準装備されている (つまりただで)とは,すばらしい限りです. これは一昔前のQUICK BASICと同じと考えていいでしょう.
'97oosaka.qb
SCREEN 12: CLS : RANDOMIZE TIMER
kk = 49: xc = 320 + 2 * kk: yc = 200: pi = 3.14159: w = pi / 180
iro0 = 7: iro1 = 2: max = 1000000
DEF fnx (x) = xc + kk * x: DEF fny (y) = yc - kk * y
n = 0: k = 0: t1$ = "Press any key to start": t2$ = "Press any key to quit"
LINE (fnx(2 * SQR(2)), fny(4))-(fnx(-2 * SQR(2)), fny(-4)), iro0, B
PSET (fnx(2), fny(0)), iro1
FOR t = 1 TO 360
 LINE -(fnx(3 * COS(t * w) - COS(3 * t * w)), fny(3 * SIN(t * w) - SIN(3 * t * w))), iro1
NEXT: PAINT (fnx(0), fny(0)), iro1
LOCATE 1, 1: PRINT t1$
WHILE INKEY$ = "": WEND: WHILE INKEY$ <> "": WEND
LOCATE 1, 1: PRINT SPC(LEN(t1$));
LOCATE 28, 1: PRINT t2$
WHILE n <= max AND INKEY$ = "": n = n + 1
 k = k - (POINT(fnx(2 * SQR(2) * (2 * RND - 1)), fny(4 * (2 * RND - 1))) = iro1)
 s = k / n * 2 * SQR(2) * 2 * 4 * 2
 LOCATE 1, 1: PRINT n; "kai shikou"
 PRINT USING "S=###.###### * pi"; s / pi
WEND
LOCATE 28, 1: PRINT SPC(LEN(t2$)); : END
               



NO.527 '99 6/9水の流れ置換積分(12)




戻る