% JOHNSRND 分布ジョンソンシステムからのランダム配列
%
%   R = JOHNSRND(QUANTILES,M,N) は、QUANTILES で与えられる分位数の仕様を
%   満たすジョンソンシステムの分布から描かれる乱数の M×N 行列を返します。
%   QUANTILES は、標準正規分布の分位数 [-1.5 -0.5 0.5 1.5] に対応する
%   目的の分布に対する分位数の 4 要素のベクトルです。言い換えれば、累積
%   確率 [0.067 0.309 0.691 0.933] に対応する分位数を示すことで、乱数値を
%   描くための分布を指定します。QUANTILES は、1 番目の行が 4 つの標準正規
%   分布の分位数を含み、2 番目の行が目的の分布の対応する分位数を含む 2×4 
%   の行列にもなります。標準正規分布の分位数は、等間隔でなければなりません。
%
%   注意: R は無作為標本のため、一般的に、その標本の分位数は、指定した
%         分布の分位数と多少異なります。
%
%   R = JOHNSRND(QUANTILES) は、スカラ値を返します。
%   R = JOHNSRND(QUANTILES,M,N,...) または R = JOHNSRND(QUANTILES,[M,N,...])
%   は、M×N×... 配列を返します。
%
%   [R,TYPE] = JOHNSRND(...) は、ジョンソンシステム内で指定した分布の
%   タイプを返します。TYPE は 'SN', 'SL', 'SB', 'SU' のいずれかです。
%   任意の乱数値を生成しない分布のタイプを識別するには、M と N を 0 に
%   設定します。
%
%   ジョンソンシステムの 4 つの分布タイプは、つぎの正規乱数の変量の変換に
%   対応します。
%
%      タイプ SN: 変換を識別 (正規分布)
%      タイプ SL: 指数変換 (対数正規分布)
%      タイプ SB: ロジスティック変換 (制限あり)
%      タイプ SU: 双曲正弦変換 (制限なし)
%
%   [R,TYPE,COEFS] = JOHNSRND(...) は、分布を定義する変換の係数を返します。
%   COEFS は [GAMMA, ETA, EPSILON, LAMBDA] です。Z が標準正規乱数の変数で、
%   H が上記で定義される変換のいずれかである場合、
%   R = LAMBDA * H((Z - GAMMA) / ETA) + EPSILON は、H に対応する分布タイプ
%   からの乱数の変量になります。
%
%   例
%      % 標準正規分布よりも長いすそをもつ乱数値を生成します。
%      r = johnsrnd([-1.7 -.5 .5 1.7],1000,1);
%      qqplot(r);
%
%      % 右に歪んだ乱数値を生成します。
%      r = johnsrnd([-1.3 -.5 .5 1.7],1000,1);
%      qqplot(r)
%
%      % 右すそ内のいくつかの標本データによく一致する乱数値を生成します。
%      load carbig;
%      qnorm = [.5 1 1.5 2];
%      q = quantile(Acceleration, normcdf(qnorm));
%      r = johnsrnd([qnorm; q],1000,1);
%      [q; quantile(r, normcdf(qnorm))]
%
%      % 分布のタイプと係数を定義します。
%      [r,type,coefs] = johnsrnd([qnorm; q],0);  % r に [] を返します
%
%   参考 RANDOM, PEARSRND.


%   Copyright 2005-2007 The MathWorks, Inc. 
