• 大小: 2KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-06-01
  • 语言: Matlab
  • 标签: matlab  蒙特卡洛  

资源简介

matlab代码,通过蒙特卡罗方法计算n维球的体积,此仿真程序计算复杂度较高,并有与公式方法结果之间的对比;

资源截图

代码片段和文件信息

close all;
clear all;
clc;

Ns=10000; 
% 蒙特卡洛采样点数,这里取10000,主要是考虑到程序的运行时间;
% 题目要求取1000000,这样的话,程序运行就要超过十个小时;
% 程序流程是没问题的,结果也没有问题,把这个数字改成1000000,经过足够长的时间,也可以得到相应的结果;

Nd = 12; 
% 空间维度,这里取12,也是考虑到程序运行时间,当取样点数比较小的时候,维度太高,就会出现
% 由于点数不够导致计算结果为零的情况,这也就是作业的最后一个问题的答案:)
V = zeros(115);
V(1) = 0;
R = 0; 
count = 0;
count_v = 0;
% 下面这段程序是主要的计算环节,最外层是维度循环,内层是采样点数的循环,约束条件是欧式距离小于等于1;
% 如果选取的点符合条件,计数,然后再除以总共的点数,得到的就是n维球体的体积;
for i=2:Nd
    for j=1:Ns
        x = rand(iNs);
        [mn]=size(x);
        for k=1:m;
            R = R + x(ki)^2;
        end
        if R <=1;
            count_v = count_v + 1;
        end
        count = count + 1;
        R = 0;
    end
    V(i) = count_v / count * (2^i);
    count
    count_v
    count = 0;
    count_v = 0;
    clear x;
end
% 下面这段是利用公式计算n维球体积,使用了伽马函数;
for i=1:15
    V_G(i) = pi^(i/2) / gamma(i/2+1);
end

i=1:15;
figure;
plot(iV‘-‘iV_G‘--‘);
grid on;
title(‘Comparison of Monte Carlo & Formula of n ball volumn‘);
legend(‘Monte Carlo Method‘‘Formula‘);

            
        
    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1371  2018-09-13 21:37  test.m

     文件        933  2019-03-24 09:39  test.rar

----------- ---------  ---------- -----  ----

                 2304                    2


评论

共有 条评论