[问题] 圆锥体积 蒙地卡罗法

楼主: ttvic ( 短 维)   2013-12-23 23:32:10
最近碰到需要使用蒙地卡罗法找出圆锥的体积
示意图: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
不晓得边界的界定是错在哪边? 恳请大大帮忙~谢谢!
作者: KAOKAOKAO (鬼斗)   2012-01-18 21:26:00
蒙地卡罗的练习啊 用解析解还用练习吗
作者: iinon (秋意浓 )   2013-02-26 15:05:00
可以有analytical 解为什么不用?
作者: bonbbon (邦邦)   2013-03-19 02:31:00
x=-1~1,y=-1~1,这个程式算出来的是角锥!y=r*sin(a) 才会是圆锥

Links booklink

Contact Us: admin [ a t ] ucptt.com