indepverify.m

来自「该程序用来检验monte carlo随机数的分布是否满足随机性要求。包括独立性检」· M 代码 · 共 46 行

M
46
字号
function okay=indepVerify(varargin)
if nargin==1
    r=varargin{1,1};
    alpha=0.05;k=1;     %默认为0.05显著性检验,间距为1。
end
if nargin==2
    r=varargin{1,1};
    alpha=varargin{1,2};
    k=1;
end
if nargin==3
    r=varargin{1,1};
    alpha=varargin{1,2};
    k=varargin{1,3};
end

% %程序测试代码
% r=myunirnd(30,1);
% alpha=0.01;
% k=2;

r=reshape(r,1,[]);
n=prod(size(r));

%确定临界点z值
critical.alpha=[0.05 0.01];
critical.pvalue=[1.96 2.58];  
z_value=critical.pvalue(critical.alpha==alpha);
theory_critical=z_value/sqrt(n-k);

%求间隔为k的r序列间的相关系数
real_exp=mean(r);
real_std=std(r,1);
temp=0;
for i=1:n-k
    temp=temp+r(i)*r(i+k);
end
real_corrcoef=(1/(n-k)*temp-real_exp^2)/(real_std^2);

if abs(real_corrcoef)>theory_critical
    okay=0;
    fprintf('不满足独立性检验!\n')
else
    okay=1;
    fprintf('满足独立性检验!\n')
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?