Main Content

lognrnd

로그정규분포 난수

설명

예제

r = lognrnd(mu,sigma)는 분포 파라미터 mu(로그 값의 평균) 및 sigma(로그 값의 표준편차)를 갖는 로그정규분포에서 난수를 생성합니다.

r = lognrnd(mu,sigma,sz1,...,szN)는 로그정규분포 난수로 구성된 배열을 생성하며, 여기서 sz1,...,szN은 각 차원의 크기를 나타냅니다.

예제

r = lognrnd(mu,sigma,sz)는 로그정규분포 난수로 구성된 배열을 생성하며, 여기서 벡터 szsize(r)을 지정합니다.

예제

모두 축소

로그정규분포의 평균과 분산에서 분포 파라미터를 알아내고 해당 분포에서 로그정규분포 난수 값을 생성합니다.

다음과 같이 평균과 분산에서 분포 파라미터 musigma를 알아냅니다.

m = 1; % mean
v = 2; % variance
mu = log((m^2)/sqrt(v+m^2))
mu = -0.5493
sigma = sqrt(log(v/(m^2)+1))
sigma = 1.0481

로그정규분포 난수 값을 생성합니다.

rng('default') % For reproducibility
r = lognrnd(mu,sigma)
r = 1.0144

난수 생성기의 현재 상태를 저장합니다. 그런 다음 파라미터 3 및 10을 갖는 로그정규분포에서 로그정규분포 난수의 1×5 벡터를 생성합니다.

s = rng;
r = lognrnd(3,10,[1,5])
r = 1×5
109 ×

    0.0000    1.8507    0.0000    0.0001    0.0000

난수 생성기의 상태를 s로 복원한 다음, 난수로 구성된 1×5 벡터를 새로 생성합니다. 값이 이전과 같습니다.

rng(s);
r1 = lognrnd(3,10,[1,5])
r1 = 1×5
109 ×

    0.0000    1.8507    0.0000    0.0001    0.0000

기존 배열과 동일한 크기의 로그정규분포된 난수로 구성된 행렬을 생성합니다.

A = [3 2; -2 1];
sz = size(A);
R = lognrnd(0,1,sz)
R = 2×2

    1.7120    0.1045
    6.2582    2.3683

위에 나와 있는 두 코드 라인을 하나의 라인으로 결합할 수 있습니다.

R = lognrnd(1,0,size(A));

입력 인수

모두 축소

로그정규분포에 대한 로그 값의 평균으로, 스칼라 값 또는 스칼라 값으로 구성된 배열로 지정됩니다.

여러 분포에서 난수를 생성하려면 배열을 사용하여 musigma를 지정하십시오. musigma 모두 배열인 경우, 배열 크기가 같아야 합니다. mu 또는 sigma가 스칼라인 경우, lognrnd는 스칼라 인수를 다른 인수와 크기가 동일한 상수 배열로 확장합니다. r의 각 요소는 musigma의 대응되는 요소로 지정된 분포에서 생성된 난수입니다.

예: [0 1 2; 0 1 2]

데이터형: single | double

로그정규분포에 대한 로그 값의 표준편차로, 음이 아닌 스칼라 값 또는 음이 아닌 스칼라 값으로 구성된 배열로 지정됩니다.

sigma가 0인 경우, 출력값 r은 항상 exp(mu)와 같습니다.

여러 분포에서 난수를 생성하려면 배열을 사용하여 musigma를 지정하십시오. musigma 모두 배열인 경우, 배열 크기가 같아야 합니다. mu 또는 sigma가 스칼라인 경우, lognrnd는 스칼라 인수를 다른 인수와 크기가 동일한 상수 배열로 확장합니다. r의 각 요소는 musigma의 대응되는 요소로 지정된 분포에서 생성된 난수입니다.

예: [1 1 1; 2 2 2]

데이터형: single | double

각 차원의 크기로, 정수로 구성된 개별 인수로 지정됩니다. 예를 들어, 5,3,2를 지정하면 로그정규 확률 분포에서 난수로 구성된 5×3×2 배열이 생성됩니다.

mu 또는 sigma가 배열이면 지정된 차원 sz1,...,szN은 필요한 스칼라 확장 후 musigma의 공통 차원과 일치해야 합니다. sz1,...,szN의 디폴트 값은 공통 차원입니다.

  • 단일 값 sz1을 지정하는 경우 r은 크기가 sz1×sz1인 정사각 행렬입니다.

  • 차원 중 하나라도 크기가 0이거나 음수인 경우 r은 빈 배열입니다.

  • lognrnd 함수는 세 번째 차원부터는 크기가 1인 차원을 무시합니다. 예를 들어, lognrnd(mu,sigma,3,1,1,1)은 난수로 구성된 3×1 벡터를 생성합니다.

예: 5,3,2

데이터형: single | double

각 차원의 크기로, 정수로 구성된 행 벡터로 지정됩니다. 예를 들어, [5 3 2]를 지정하면 로그정규 확률 분포에서 난수로 구성된 5×3×2 배열이 생성됩니다.

mu 또는 sigma가 배열이면 지정된 차원 sz는 필요한 스칼라 확장 후 musigma의 공통 차원과 일치해야 합니다. sz의 디폴트 값은 공통 차원입니다.

  • 단일 값 [sz1]을 지정하는 경우 r은 크기가 sz1×sz1인 정사각 행렬입니다.

  • 차원 중 하나라도 크기가 0이거나 음수인 경우 r은 빈 배열입니다.

  • lognrnd 함수는 세 번째 차원부터는 크기가 1인 차원을 무시합니다. 예를 들어, lognrnd(mu,sigma,[3,1,1,1])은 난수로 구성된 3×1 벡터를 생성합니다.

예: [5 3 2]

데이터형: single | double

출력 인수

모두 축소

로그정규분포 난수로, 스칼라 값 또는 스칼라 값으로 구성된 배열(sz1,...,szN 또는 sz로 지정된 차원을 가짐)로 반환됩니다. r의 각 요소는 musigma의 대응되는 요소로 지정된 분포에서 생성된 난수입니다.

세부 정보

모두 축소

로그정규분포

로그정규분포는 로그가 정규분포를 갖는 확률 분포입니다.

로그정규 확률 변수의 평균 m과 분산 v는 다음과 같이 로그정규분포 모수 µ 및 σ의 함수입니다.

m=exp(μ+σ2/2)v=exp(2μ+σ2)(exp(σ2)1)

또한, 다음과 같이 평균 m과 분산 v로부터 로그정규분포 모수 µ와 σ를 계산할 수 있습니다.

μ=log(m2/v+m2)σ=log(v/m2+1)

대체 기능

  • lognrnd는 로그정규분포 전용 함수입니다. Statistics and Machine Learning Toolbox™는 다양한 확률 분포를 지원하는 일반 함수 random도 제공합니다. random을 사용하려면 LognormalDistribution 확률 분포 객체를 생성하고 이 객체를 입력 인수로 전달하거나 확률 분포 이름과 해당 파라미터를 지정하십시오. 참고로, 분포 전용 함수 lognrnd가 일반 함수 random보다 더 빠릅니다.

  • 난수를 대화형 방식으로 생성하려면 난수 생성용 사용자 인터페이스 randtool을 사용하십시오.

참고 문헌

[1] Marsaglia, G., and W. W. Tsang. “A Fast, Easily Implemented Method for Sampling from Decreasing or Symmetric Unimodal Density Functions.” SIAM Journal on Scientific and Statistical Computing. Vol. 5, Number 2, 1984, pp. 349–359.

[2] Evans, M., N. Hastings, and B. Peacock. Statistical Distributions. 2nd ed., Hoboken, NJ: John Wiley & Sons, Inc., 1993.

확장 기능

버전 내역

R2006a 이전에 개발됨