计算物理编程求解利用蒙特卡洛方法计算三维、四维、五维和六维空间的单位半径球的体积。 运行环境c++6.0或者是matlab7.0
2019-05-23
计算物理编程求解利用蒙特卡洛方法计算三维、四维、五维和六维空间的单位半径球的体积。 运行环境c++6.0或者是matlab7.0
优质解答
function tj=tiji(n) %n是要输入的运行次数 s=0; t=0; for i=1:n x=2*rand()-1; %x的范围是-1到1 y=2*rand()-1; %y的范围是-1到1 z=2*rand()-1; %z的范围是-1到1 %四维的就多加个量r=2*rand()-1。依次加入变量 if sqrt(x^2+y^2+z^2)<1 %点在三维球内。四维:sqrt(x^2+y^2+z^2+r^2<1 s=s+1; %在里面的点的个数 else t=t+1; %不在在里面的点的个数 end end tj=8*s/s+t); %限定空间的总体积是2^3=8,四维是2^4 输入:tiji(1000000)(结果不唯一,但很相近)
function tj=tiji(n) %n是要输入的运行次数 s=0; t=0; for i=1:n x=2*rand()-1; %x的范围是-1到1 y=2*rand()-1; %y的范围是-1到1 z=2*rand()-1; %z的范围是-1到1 %四维的就多加个量r=2*rand()-1。依次加入变量 if sqrt(x^2+y^2+z^2)<1 %点在三维球内。四维:sqrt(x^2+y^2+z^2+r^2<1 s=s+1; %在里面的点的个数 else t=t+1; %不在在里面的点的个数 end end tj=8*s/s+t); %限定空间的总体积是2^3=8,四维是2^4 输入:tiji(1000000)(结果不唯一,但很相近)