Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-12-20
帖子: 1
声望力: 0 ![]() |
![]()
初学matlab,写了一个计算y = sinx 和y = 2/pi*x 在第一象限所围面积的程序,但结果总是和理论上的正确答案出入较大。希望高手指点一下。
这是一个蒙特卡洛实验,实验原理就是像撒点,看有多少点落到目标区域内,根据比例从而算出目标区域的面积。 程序如下: clear num = input('请输入试验次数'); frequency = input('请输入样本容量'); sum = 0; for j = 1:num x = rand(1,frequency)*pi/2; low = x*2/pi; y = low + rand()*(1 - low ); high = sin(x); count = 0; for i = 1:frequency if diag(y(1,i))>diag(low(1,i))&&diag(y(1,i))<diag(high(1,i)) count = count + 1; end end fre = count/frequency; result = fre*pi/4; sum = sum + result; end fprintf('得到面积是 %8.5f\n',sum/num); |
![]() |
![]() |