dajiama.m

来自「雷达系统建模与仿真的matlab程序」· M 代码 · 共 45 行

M
45
字号
function y=dajiama(a,b,n)
%产生伽马随机分布的数据,a、b为随机分布的参数,数据量为n
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
k=1;
if(a<1)
  while(k<=n)
    x1=junyun(1);
    x2=junyun(1);
    y2=(exp(1)+a)/exp(1)*x2;
    if(y2>1)
        p=-log(((exp(1)+a)/exp(1)-y2)/a);
        if(x1<p^(a-1))
            y(k)=p;
            k=k+1;
        else
            continue;
        end
    else
        p=y2^(1/a);
        if(x1<exp(-p))
            y(k)=p;
            k=k+1;
        else
            continue;
        end
    end
  end
elseif(a>=1)
    while(k<=n)
     x1=junyun(1);
     x2=junyun(1); 
     v=(2*a-1)^(-0.5)*log(x1/(1-x2));
     x=a*exp(v);
     z=x1^2*x2;
     w=a-log(4)+(a+sqrt(2*a-1))*v-x;
     if(w>=log(z))
         y(k)=x;
         k=k+1;
     else
         continue;
     end
    end
end
y=b*y;

⌨️ 快捷键说明

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