% NLINFIT 非線形の最小二乗回帰
% 
%   BETA = NLINFIT(X,Y,MODELFUN,BETA0) は、最小二乗推定を用いた非線形
%   回帰の係数を推定します。Y は、応答値 (従属変数) のベクトルです。
%   通常は、X は、Y の各値に対する 1 つの行をもつ予測子 (独立変数) の
%   計画行列です。しかし、X は、MODELFUN に受け入れられるために準備された
%   任意の配列です。MODELFUN は、@ を使って指定され、係数ベクトルと配列 
%   X の 2 つの引数を受け入れてフィットした Y の値のベクトルを出力する
%   関数です。BETA0 は、係数に対する初期値を含むベクトルです。
%
%   [BETA,R,J,SIGMA,MSE] = NLINFIT(X,Y,MODELFUN,BETA0) は、フィットした
%   係数 BETA、残差 R、MODELFUN のヤコビアン J、フィットした係数に対して
%   推定された共分散行列 SIGMA、誤差項の分散の推定 MSE を返します。
%   これらの出力を NLPREDCI と共に使用して、予測子に対する信頼区間の生成、
%   および NLPARCI と共に使用して推定係数に対する信頼区間を生成することが
%   できます。ロバストなオプションを使用する場合、信頼区間にロバスト近似を
%   正しく取り入れるには、SIGMAを使用しなければならず、NLPREDCI または 
%   NLPARCI への入力として、MSE が必要となる場合もあります。
%
%   [...] = NLINFIT(X,Y,MODELFUN,BETA0,OPTIONS) は、NLINFIT を使った
%   アルゴリズムに対する制御パラメータを指定します。この引数は、STATSET 
%   を呼び出すことで作成できます。利用可能な STATSET パラメータは、つぎの
%   とおりです。
%
%      'MaxIter'     - 繰り返しの最大数を許可します。デフォルトは 100 です。
%      'TolFun'      - 残差の二乗和の終了の許容範囲です。
%                      デフォルトは 1e-8 です。
%      'TolX'        - 推定された係数 BETA の終了の許容範囲です。
%                      デフォルトは 1e-8 です。
%      'Display'     - 推定中の出力の表示レベルです。つぎから選択します。
%                      'off' (デフォルト), 'iter', 'final'.
%      'DerivStep'   - 有限差分の勾配の計算に使われる相対微分です。
%                      スカラか、パラメータベクトル BETA と同じサイズになります。
%                      デフォルトは EPS^(1/3) です。
%      'FunValCheck' - 目的関数から NaN または Inf のような無効な値を
%                      チェックします [ 'off' | 'on' (デフォルト) ]。
%      'Robust'      - ロバスト近似オプションを呼び出します 
%                      [ 'off' (default) | 'on' ]。
%      'WgtFun'      - ロバスト近似に対する重み関数を指定します。つぎの
%                      いずれかになります。'bisquare', 'andrews', 'cauchy', 
%                      'fair', 'huber', 'logistic', 'talwar', 'welsch' 
%                      この WgtFun は、Robust が 'on' に設定され、デフォルトで
%                      'bisquare' の場合のみ使用されます。入力として正規化
%                      された残差を受け入れる関数ハンドルにすることも可能で、
%                      出力としてロバストな重みを返します。
%      'Tune'        - 重み関数を適用する前に残差を正規化するために使用
%                      される調整定数です。正でなければなりません。デフォルト
%                      値は重み関数に依存します。このパラメータは、重み関数が
%                      関数ハンドルで指定される場合に必要です。
%
%   NLINFIT は、Y または MODELFUN(BETA0,X) 内の NaN を欠損値として扱い、
%   対応する観測を無視します。
% 
%   例:
%
%      MODELFUN を指定するために @ を使います。
%         load reaction;
%         beta = nlinfit(reactants,rate,@mymodel,beta);
%
%      ここで、MYMODEL は、つぎのような MATLAB 関数です。
%         function yhat = mymodel(beta, x)
%         yhat = (beta(1)*x(:,2) - x(:,3)/beta(5)) ./ ...
%                        (1+beta(2)*x(:,1)+beta(3)*x(:,2)+beta(4)*x(:,3));
%
%      重み付けフィッティングの例については、Statistics Toolbox のデモ
%      "Weighted Nonlinear Regression" を参照してください。
%
%   参考 NLPARCI, NLPREDCI, NLINTOOL, STATSET.


%   Copyright 1993-2007 The MathWorks, Inc.
