[問題] 圓錐體積 蒙地卡羅法

看板Fortran作者 ( 短 維)時間11年前 (2013/12/23 23:32), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串1/1
最近碰到需要使用蒙地卡羅法找出圓錐的體積 示意圖:https://www.dropbox.com/s/gemf3q3yqrmg1lt/cone.jpg
想法: 利用圓柱來抓出1/3的圓錐,但投出機率是錯誤的... 以下是我的程式 nh=0 do i=1, n call random_number (rand) r=rand call random_number (rand) a=2*3.1415926*rand !角度一 0~2*pi call random_number (rand) b=2*3.1415926*rand !角度二 0~2*pi call random_number (rand) z=rand !高度 0~1 x=r*cos(a) y=r*sin(b) if (z>=f1(x,y)) then nh=nh+1 endif enddo pr=(real(nh)/real(n)) !←主要是這裡的機率一直抓不到 area1=(real(nh)/real(n))*3.1415926*1**2 write(*,*) 'con area',area1 !external function real function f1(x,y) f1=sqrt(x**2+y**2) end function 不曉得邊界的界定是錯在哪邊? 懇請大大幫忙~謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.249.76

12/26 15:05, , 1F
可以有analytical 解為什麼不用?
12/26 15:05, 1F

01/18 21:26, , 2F
蒙地卡羅的練習啊 用解析解還用練習嗎
01/18 21:26, 2F

03/19 02:31, , 3F
x=-1~1,y=-1~1,這個程式算出來的是角錐!
03/19 02:31, 3F

03/19 02:32, , 4F
y=r*sin(a) 才會是圓錐
03/19 02:32, 4F
文章代碼(AID): #1Ik5T-9x (Fortran)
文章代碼(AID): #1Ik5T-9x (Fortran)