Matlab的Monte carlo法求定积分 区域(-π/2,π/2),y=cosx所围面积
网友回答
function y = MonteCarlo(fun,a,b,N)
A=unifrnd(a,b,N);
B=fun(A);
y=(b-a)/N^2*sum(sum(B));
自己编了个MonteCarlo求一维定积分的函数.在mand里如下调用
[email protected](x) cos(x);
MonteCarlo(fun,-pi/2,pi/2,500) % N越大,结果可信度越高,速度也越慢.
用quad(fun,-pi/2,pi/2) 验证结果准确度.