matlab中的定积分montecarlo方法近似计算π

2025年05月05日 04:03
有2个网友回答
网友(1):

N=10000;
u=unifrnd(-1,1,2,N);
n=sum(u(1,:).^2+u(2,:).^2<=1);
p=4*n/N;
p
原理就是一个正方形把圆形圈住:x=1,x=-1,y=1,y=-1,圆方程为x^.2+y.^2=1,产生10000个正方形内部的随机点,统计落在圆内点的个数n,利用圆面积比方形面积=n:10000,求出pi值,当然10000也能取越大如100000,越大越精确

网友(2):

N=100000;
a = 0;
b = 1;
x = unifrnd(a,b,N,1);
I=mean(4./(1+x.^2))
I =
3.1406