このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。
lsqnonneg
非負の線形最小二乗法問題を解く
構文
説明
以下の形式の非負の最小二乗曲線近似問題を解く
メモ
lsqnonneg
は、ソルバーベースのアプローチのみに適用されます。2 つの最適化アプローチの詳細については、はじめに問題ベース アプローチまたはソルバーベース アプローチを選択を参照してください。
例
入力引数
出力引数
ヒント
d
の長さが 20 より大きい問題では、lsqlin
がlsqnonneg
より速くなる可能性があります。d
の長さが 20 以下の場合、lsqnonneg
の方が一般的に効率的です。C
の行が列より多い場合 (すなわち過決定システムの場合) にソルバー間で切り替えるには、以下のようになります。[x,resnorm,residual,exitflag,output,lambda] = lsqnonneg(C,d)
は、以下と等価です。
[m,n] = size(C); [x,resnorm,residual,exitflag,output,lambda_lsqlin] = ... lsqlin(C,d,-eye(n,n),zeros(n,1));
唯一の違いは、対応するラグランジュ乗数の符号
lambda = -lambda_lsqlin.ineqlin
が反転していることです。
アルゴリズム
lsqnonneg
は [1] で示すアルゴリズムを使用します。アルゴリズムは、可能な基底ベクトルの集合から開始して、関連した双対ベクトル lambda
を計算します。そして他の基底ベクトルと交換するためにベクトル lambda
の最大値に対応する基底ベクトルを選んで交換します。この操作は、lambda ≤ 0
になるまで続けられます。
代替機能
アプリ
[最適化] ライブ エディター タスクが lsqnonneg
にビジュアル インターフェイスを提供します。
参照
[1] Lawson, C. L. and R. J. Hanson. Solving Least-Squares Problems. Upper Saddle River, NJ: Prentice Hall. 1974. Chapter 23, p. 161.
拡張機能
バージョン履歴
R2006a より前に導入