Main Content

lognrnd

説明

r = lognrnd(mu,sigma) は、分布パラメーター mu (対数値の平均) および sigma (対数値の標準偏差) をもつ対数正規分布から乱数を生成します。

r = lognrnd(mu,sigma,sz1,...,szN) は、対数正規乱数の配列を生成します。ここで、sz1,...,szN は各次元のサイズを示します。

r = lognrnd(mu,sigma,sz) は、対数正規乱数の配列を生成します。ここで、ベクトル szsize(r) を指定します。

すべて折りたたむ

対数正規分布の平均と分散から分布パラメーターを求め、この分布から対数正規乱数値を生成します。

平均と分散から分布パラメーター mu および sigma を求めます。

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

上記の 2 行のコードを結合して 1 行にすることができます。

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

入力引数

すべて折りたたむ

対数正規分布の対数値の平均。スカラー値、またはスカラー値の配列を指定します。

複数の分布から乱数を生成するには、配列を使用して musigma を指定します。musigma の両方が配列である場合、サイズが同じでなければなりません。mu または sigma のいずれかがスカラーである場合、lognrnd はもう一方の引数と同じサイズの定数配列にスカラー引数を拡張します。r の各要素は、mu および sigma 内の対応する要素によって指定された分布から生成された乱数です。

例: [0 1 2; 0 1 2]

データ型: single | double

対数正規分布の対数値の標準偏差。非負のスカラー値、または非負のスカラー値の配列を指定します。

sigma がゼロである場合、出力 r は常に exp(mu) と等しくなります。

複数の分布から乱数を生成するには、配列を使用して musigma を指定します。musigma の両方が配列である場合、サイズが同じでなければなりません。mu または sigma のいずれかがスカラーである場合、lognrnd はもう一方の引数と同じサイズの定数配列にスカラー引数を拡張します。r の各要素は、mu および sigma 内の対応する要素によって指定された分布から生成された乱数です。

例: [1 1 1; 2 2 2]

データ型: single | double

各次元のサイズ。整数の引数として個別に指定します。たとえば、5,3,2 を指定すると、対数正規確率分布から 5 x 3 x 2 の乱数の配列が生成されます。

mu または sigma のいずれかが配列である場合は、必要なスカラー拡張後の musigma の共通次元に一致する次元 sz1,...,szN を指定しなければなりません。sz1,...,szN の既定値は共通次元です。

  • 単一の値 sz1 を指定した場合、r はサイズ sz1sz1 列の正方行列になります。

  • いずれかの次元のサイズが 0 または負である場合、r は空の配列になります。

  • 2 次元を超える場合、lognrnd はサイズ 1 の後続次元を無視します。たとえば、lognrnd(mu,sigma,3,1,1,1) は 3 行 1 列の乱数のベクトルを生成します。

例: 5,3,2

データ型: single | double

各次元のサイズ。整数の行ベクトルとして指定します。たとえば、[5 3 2] を指定すると、対数正規確率分布から 5 x 3 x 2 の乱数の配列が生成されます。

mu または sigma のいずれかが配列である場合は、必要なスカラー拡張後の musigma の共通次元に一致する次元 sz を指定しなければなりません。sz の既定値は共通次元です。

  • 単一の値 [sz1] を指定した場合、r はサイズ sz1sz1 列の正方行列になります。

  • いずれかの次元のサイズが 0 または負である場合、r は空の配列になります。

  • 2 次元を超える場合、lognrnd はサイズ 1 の後続次元を無視します。たとえば、lognrnd(mu,sigma,[3,1,1,1]) は 3 行 1 列の乱数のベクトルを生成します。

例: [5 3 2]

データ型: single | double

出力引数

すべて折りたたむ

対数正規乱数。スカラー値、または sz1,...,szNsz のいずれかによって指定された次元数のスカラー値の配列として返されます。r の各要素は、mu および sigma 内の対応する要素によって指定された分布から生成された乱数です。

詳細

すべて折りたたむ

対数正規分布

対数正規分布は、対数が正規分布をもつ確率分布です。

対数正規確率変数の平均 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 より前に導入