登录论坛

查看完整版本 : [MATLAB基础] 看看我的matlab程序哪里错了


qqibrow
2009-12-20, 17:20
初学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);

sogeno
2009-12-20, 17:40
专业性的东西,不好理解