主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

lsqlin

制約付き線形最小二乗問題を解く

説明

範囲制約と線形制約をも線形最小二乗法問題のソルバ。

以下の形式の最小二乗曲線近似問題を解きます。

最小值 x 1 2 C x d 2 2 这样 一个 x b 一个 e x b e l b x u b

メモ

lsqlinは,ソルバ,ベ,スのアプロ,チのみに適用されます。2,はじめに問題ベスアプロチまたはソルバベスアプロチを選択を参照してください。

x= lsqlin (Cd一个bは,* xbの制約の下で線形システムC*x = dを最小二乗法的に解きます。

x= lsqlin (Cd一个bAeq说真的乌兰巴托は,線形等式制約Aeq*x = beqと範囲x乌兰巴托を追加します。Aeq说真的など特定の制約が必要でない場合,これらを[]に設定します。x(我)の下に非有界の場合はlb(i) = -无穷大を設定してください。x(我)の上に非有界の場合はub(i) =无穷大を設定してください。

x= lsqlin (Cd一个bAeq说真的乌兰巴托x0选项は,初期点x0および选项で指定された最適化オプションを使用して最小化を行います。optimoptionsを使用してこれらのオプションを設定してください。初期点を含めない場合は引数x0[]に設定します。

x= lsqlin (问题は,问题で説明されている構造体问题の最小値を求めます。ドット表記または结构体関数を使用して问题構造体を作成します。または,prob2structを使用してOptimizationProblemオブジェクトから構造体问题を作成します。

xresnorm剩余exitflag输出λ= lsqlin(___は,前述のすべての入力引数に対して次を返します。

  • 残差の2乗ノルムresnorm = C x d 2 2

  • 残差残差= C*x - d

  • 終了条件を指定する値exitflag

  • 最適化プロセスに関する情報を含む構造体输出

  • ラグランジュ乗数を含む構造体λ

    問題の定義の因子½は,λ構造体の値に影響します。

wsoutresnorm剩余exitflag输出λ= lsqlin(Cd一个bAeq说真的乌兰巴托wsは,wsのオプションを使用し,ウォ,ムスタ,トオブジェクトwsの中のデ,タからlsqlinを起動します。返された引数wsoutは,wsout。Xの解点を含みます。この後のソルバーの呼び出しで、最初のウォーム スタート オブジェクトとしてwsoutを使用することにより,lsqlinの動作は速くなります。

すべて折りたたむ

線形不等式制約のある過決定問題にいて,C*x - dのノルムを最小化するxを求めます。

問題と制約を指定します。

C = [0.9501 0.7620 0.6153 0.4057 0.2311 0.4564 0.7919 0.9354 0.6068 0.0185 0.9218 0.9169 0.4859 0.8214 0.7382 0.4102 0.8912 0.4447 0.1762 0.8936];D = [0.0578 0.3528 0.8131 0.0098 0.1388];A = [0.2027 0.2721 0.7467 0.4659 0.1987 0.1988 0.4450 0.4186 0.6037 0.0152 0.9318 0.8462];B = [0.5251 0.2026 0.6721];

lsqlinを呼び出してこの問題を解きます。

x = lsqlin(C,d,A,b)
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =4×10.1299 -0.5757 0.4251 0.2438

線形等式制約と線形不等式制約および範囲指定のある過決定問題にいて,C*x - dのノルムを最小化するxを求めます。

問題と制約を指定します。

C = [0.9501 0.7620 0.6153 0.4057 0.2311 0.4564 0.7919 0.9354 0.6068 0.0185 0.9218 0.9169 0.4859 0.8214 0.7382 0.4102 0.8912 0.4447 0.1762 0.8936];D = [0.0578 0.3528 0.8131 0.0098 0.1388];A =[0.2027 0.2721 0.7467 0.4659 0.1987 0.1988 0.4450 0.4186 0.6037 0.0152 0.9318 0.8462];B =[0.5251 0.2026 0.6721];Aeq = [3 5 7 9];Beq = 4;Lb = -0.1*ones(4,1);Ub = 2*ones(4,1);

lsqlinを呼び出してこの問題を解きます。

x = lsqlin(C,d,A,b,Aeq,beq,lb,ub)
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =4×10.1000 -0.1000 0.1599 0.4090

この例では,線形最小二乗法に対して既定ではないオプションを使用する方法を説明します。

“内点”アルゴリズムを使用し,反復表示を提供するようにオプションを設定します。

选项= optimoptions(“lsqlin”“算法”“内点”“显示”“通路”);

線形最小二乗問題を設定します。

C = [0.9501 0.7620 0.6153 0.4057 0.2311 0.4564 0.7919 0.9354 0.6068 0.0185 0.9218 0.9169 0.4859 0.8214 0.7382 0.4102 0.8912 0.4447 0.1762 0.8936];D = [0.0578 0.3528 0.8131 0.0098 0.1388];A = [0.2027 0.2721 0.7467 0.4659 0.1987 0.1988 0.4450 0.4186 0.6037 0.0152 0.9318 0.8462];B = [0.5251 0.2026 0.6721];

問題を実行します。

x = lsqlin(C,d,A,b,[],[],[],[],[],[],[],选项)
Iter Fval primary Infeas Dual Infeas complementas 0 -7.687420e-02 1.600492e+00 6.150431e-01 1.000000e+00 1 -7.687419e-02 8.002458e-04 3.075216e-04 3.430833e -01 4.001229e-07 1.537608e-07 5.945636e-02 3 -3.760545e-01 2.000617e-10 2.036997e-08 1.370933e-02 4 - 3.9121245e -01 9.997558e-14 1.006816e-08 2.548273e-03 5 -3.948062e-01 2.775535e -17 1.237758e-09 4.295807e-04 6 - 3.9535277e -01 1.110223e-16 1.645862e-10 1.138719e-07 8-3.953582e-01 1.387779e-16 2.401829e-13 5.693290e-11满足约束的最小值。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =4×10.1299 -0.5757 0.4251 0.2438

lsqlinのすべての出力を取得して解釈します。

線形不等式制約と範囲指定のある問題を定義します。行列Cは4 5。これは,問題に線形制約と範囲指定を含める以前に,4つの未知数と5つの条件があることを意味します。

C = [0.9501 0.7620 0.6153 0.4057 0.2311 0.4564 0.7919 0.9354 0.6068 0.0185 0.9218 0.9169 0.4859 0.8214 0.7382 0.4102 0.8912 0.4447 0.1762 0.8936];D = [0.0578 0.3528 0.8131 0.0098 0.1388];A = [0.2027 0.2721 0.7467 0.4659 0.1987 0.1988 0.4450 0.4186 0.6037 0.0152 0.9318 0.8462];B = [0.5251 0.2026 0.6721];Lb = -0.1*ones(4,1);Ub = 2*ones(4,1);

“内点”アルゴリズムを使用するためのオプションを設定します。

选项= optimoptions(“lsqlin”“算法”“内点”);

“内点”アルゴリズムは初期点を使用しないので,x0[]に設定します。

X0 = [];

すべての出力をもlsqlinを呼び出します。

[x, resnorm残留,exitflag,输出,λ)=...lsqlin (C, d, A, b,[],[],磅,乌兰巴托,x0,选项)
最小值满足约束条件。优化完成是因为目标函数在可行方向上不递减,在最优性容差值范围内,约束条件满足在约束容差值范围内。
x =4×1-0.1000 -0.1000 0.2152 0.3502
Resnorm = 0.1672
剩余=5×10.0455 0.0764 -0.3562 0.1620 0.0784
Exitflag = 1
输出=带字段的结构:消息:“……'算法:'内部点' firstorderopt: 4.3374e-11 constrviolation: 0迭代:6线性求解器:'密集' cgiterations: []
λ=带字段的结构:Ineqlin: [3x1 double] eqlin: [0x1 double] lower: [4x1 double] upper: [4x1 double]

ゼロでないラグランジュ乗数フィ,ルドを詳しく検査します。まず,線形不等式制約のラグランジュ乗数を確認します。

lambda.ineqlin
ans =3×10.000 0.2392 0.0000

ラグランジュ乗数は,解が対応する制約の境界上にある場合のみ,ゼロ以外の値を取ります。言い換えれば,対応する制約がアクティブなときはラグランジュ乗数が非ゼロとなります。lambda.ineqlin (2)は非ゼロです。したがって,制約がアクティブであるため,* xの第2要素がbの第2要素に等しいことを意味します。

[(2) * x, b (2))
ans =1×20.2026 - 0.2026

次に,範囲制約の下限と上限のラグランジュ乗数を確認します。

lambda.lower
ans =4×10.0409 0.2784 0.0000 0.0000
lambda.upper
ans =4×10 0 0 0

lambda.lowerの最初の2の要素は非ゼロです。x (1)x (2)の値はその下限-0.1になっているのがわかります。基本的にlambda.upperの全要素がゼロであり,xの要素はすべてその上限である2より低いことがわかります。

変更した問題を迅速に解くためのウォ,ムスタ,トオブジェクトを作成します。ウォ,ムスタ,トをサポトするために、反復表示をオフにするオプションを設定します。

rng默认的%用于再现性选项= optimoptions(“lsqlin”“算法”“激活集”“显示”“关闭”);N = 15;X0 = 5*rand(n,1);Ws = optimwarmstart(x0,options);

最初の問題を作成し,解きます。求解時間を確認します。

R = 1:n-1;用于生成向量的索引V (n) = (-1)^(n+1)/n;分配向量vV (r) =(-1).^(r+1)./r;C =画廊(“线性”, v);C = [C;C];R = 1:2*n;D (r) = n-r;Lb = -5*ones(1,n);Ub = 5*ones(1,n);抽搐(ws、fval ~、exitflag、输出]= lsqlin (C, d ,[],[],[],[], 磅,乌兰巴托,ws) toc
运行时间为0.005117秒。

線形制約を追加してもう一度問題を解きます。

A = ones(1,n);B = -10;抽搐(ws、fval ~、exitflag、输出]= lsqlin (C, d, A, b,[],[],磅,乌兰巴托,ws) toc
运行时间为0.001491秒。

入力引数

すべて折りたたむ

乗数行列は双の行列として指定されます。Cは,式C*x - dにおける解xの乗数を表します。CN列で,は方程式の数,Nxの要素数です。

例:C = [1,4;2,5;7,8]

デ,タ型:

定数ベクトルは双のベクトルとして指定されます。dは,式C*x - d内の加法定数項を表します。d1列で,は方程式の数です。

例:D = [5;0;-12]

デ,タ型:

実数行列として指定される線形不等式制約です。一个N列の行列で,は不等式の数,Nは変数の数(x0の要素数)です。大規模な問題の場合は,一个をスパ,ス行列として渡します。

一个個の線形不等式を符号化します。

A*x <= b

ここで,xN個の変数x (:)の列ベクトル,b個の要素をも列ベクトルです。

たとえば,次を指定します。

x1+ 2倍2≤10
3 x1+ 4 x2≤20
5倍1+ 6 x2≤30日

次の制約を入力します。

A = [1,2;3,4;5,6];B = [10;20;30];

例:Xの成分の和が1以下であることを指定するには,A = ones(1,N)B = 1を使用します。

デ,タ型:

実数ベクトルで指定される線形不等式制約です。bは,行列一个に関連する要素ベクトルです。bを行ベクトルとして渡す場合,ソルバ,はbを列ベクトルb (:)に内部的に変換します。大規模な問題の場合は,bをスパ,スベクトルとして渡します。

b個の線形不等式を符号化します。

A*x <= b

ここで,xN個の変数x (:)の列ベクトル,一个N列の行列です。

たとえば,次の不等式を考えてみましょう。

x1+ 2倍2≤10
3 x1+ 4 x2≤20
5倍1+ 6 x2≤30。

次の制約を入力することによって,不等式を指定します。

A = [1,2;3,4;5,6];B = [10;20;30];

例:Xの成分の和が1以下であることを指定するには,A = ones(1,N)B = 1を使用します。

デ,タ型:

実数行列として指定される線形等式制約です。AeqN列の行列で,は等式の数,Nは変数の数(x0の要素数)です。大規模な問題の場合は,Aeqをスパ,ス行列として渡します。

Aeq個の線形等式を符号化します。

Aeq*x = beq

ここで,xN個の変数x (:)の列ベクトル,说真的個の要素をも列ベクトルです。

たとえば,次を指定します。

x1+ 2倍2+ 3 x3.= 10
2 x1+ 4 x2+ x3.= 20,

次の制約を入力します。

Aeq = [1,2,3;2,4,1];Beq = [10;20];

例:Xの成分の和が1であることを指定するには,Aeq = ones(1,N)Beq = 1を使用します。

デ,タ型:

実数ベクトルで指定される線形等式制約です。说真的は,行列Aeqに関連する要素ベクトルです。说真的を行ベクトルとして渡す場合,ソルバ,は说真的を列ベクトル说真的(:)に内部的に変換します。大規模な問題の場合は,说真的をスパ,スベクトルとして渡します。

说真的個の線形等式を符号化します。

Aeq*x = beq

ここで,xN個の変数x (:)の列ベクトル,AeqN列の行列です。

たとえば,次の等式を考えてみましょう。

x1+ 2倍2+ 3 x3.= 10
2 x1+ 4 x2+ x3.= 20。

次の制約を入力することによって,等式を指定します。

Aeq = [1,2,3;2,4,1];Beq = [10;20];

例:Xの成分の和が1であることを指定するには,Aeq = ones(1,N)Beq = 1を使用します。

デ,タ型:

下限。double 型のベクトルまたは配列として指定します。x乌兰巴托の要素ごとの下限を表します。

lsqlinは配列をベクトル磅(:)に内部的に変換します。

例:lb = [0;-Inf;4]X(1)≥0X(3)≥4を意味します。

デ,タ型:

上限。double 型のベクトルまたは配列として指定します。乌兰巴托x乌兰巴托の要素ごとの上限を表します。

lsqlinは配列乌兰巴托をベクトル乌兰巴托(:)に内部的に変換します。

例:ub = [Inf;4;10]X(2)≤4X(3)≤10を意味します。

デ,タ型:

解法プロセスの初期点。実数ベクトルまたは配列として指定します。“trust-region-reflective”アルゴリズムおよび“激活集”アルゴリズムはx0を使用します(オプション)。

“trust-region-reflective”アルゴリズムまたは“激活集”アルゴリズムにx0を指定しない場合,lsqlinx0をゼロベクトルに設定します。このゼロベクトルx0のいずれかの要素が範囲に違反すると,lsqlinx0を,その範囲で定義されるボックス内の点に設定します。

例:X0 = [4;-3]

デ,タ型:

optimoptions関数の出力としてまたはoptimsetなどによって作成された構造体として指定されたlsqlin用のオプション。

一部のオプションは,optimoptionsに表示されません。このようなオプションは,次の表では。詳細は,表示オプションを参照してください。

すべてのアルゴリズム

算法

アルゴリズムを選択します。

  • “内点”(既定の設定)

  • “trust-region-reflective”

  • “激活集”

“trust-region-reflective”アルゴリズムは上限と下限のみを許可します。線形不等式や線形等式は必要ありません。“trust-region-reflective”アルゴリズムと線形制約の両方を指定した場合,lsqlin“内点”アルゴリズムを使用します。

“trust-region-reflective”アルゴリズムは上限と下限を同じ値に設定できません。

問題に制約がない場合,lsqlinは内部的にmldivideを呼び出します。

多数の線形制約があるものの変数の数は多くない場合は,“激活集”アルゴリズムを試してください。

アルゴリズムの選択にいての詳細は,アルゴリズムの選択を参照してください。

诊断

最小化または計算する関数に関する情報を表示します。選択肢は“上”または“关闭”(既定の設定)です。

显示

コマンドラ@ @ンに返される表示のレベル。

  • “关闭”または“没有”-出力を表示しない。

  • “最后一次”(既定の設定)-最終出力のみを表示する。

“内点”アルゴリズムでは,次の値も指定できます。

  • “通路”-各反復の出力を表示する。

  • “iter-detailed”-各反復の出力を表示し,詳細な終了メッセ,ジを与える。

  • 最后详细的-最終出力のみを表示し,詳細な終了メッセ,ジを与える。

MaxIterations

可能な反復の最大数(正の整数)。既定の値は“激活集”アルゴリズムでは2000,他のアルゴリズムでは200です。

optimsetの場合,オプションの名前は麦克斯特です。詳細は、新旧のオプション名を参照してください。

trust-region-reflectiveアルゴリズムのオプション

FunctionTolerance

関数値に関する終了許容誤差(正のスカラ)。既定値は100 *每股收益、約2.2204 e-14です。

optimsetの場合,オプションの名前はTolFunです。詳細は、新旧のオプション名を参照してください。

JacobianMultiplyFcn

ヤコビ乗算関数。関数ハンドルとして指定されます。大規模構造化問題に対して、この関数は実際にCを計算しないで,ヤコビ行列乗算C * YC ' * YC”* (C * Y)のいずれかを計算します。以下の形式で関数を記述します。

W = jmfun(Jinfo,Y,flag)

ここで,动力系统C * Y(または)C ' * YC”* (C * Y))の計算に使用される行列を含んでいます。

jmfunは,lsqlinが渡す国旗の値によって,3種類の乗算のう,1を計算しなければなりません。

  • 标志== 0の場合,W = c '*(c * y)です。

  • 标志> 0の場合,W = c * yです。

  • 标志< 0の場合,W = c '* yです。

どの場合でもjmfunCの形式を陽的に必要としません。lsqlin动力系统を使用して前提条件子を計算します。必要に応じて余分なパラメタを与える方法にいては追加パラメ,タ,の受け渡しを参照してください。

例にいては,線形最小二乗付きヤコビ乗算関数を参照してください。

optimsetの場合,オプションの名前はJacobMultです。詳細は、新旧のオプション名を参照してください。

MaxPCGIter

PCG(前処理付き共役勾配)法の反復の最大回数です(正のスカラ)。既定値は马克斯(1楼(numberOfVariables / 2))です。詳細は、信頼領域反思法アルゴリズムを参照してください。

OptimalityTolerance

1次の最適性に関する終了許容誤差(正のスカラ)。既定値は100 *每股收益、約2.2204 e-14です。詳細は、1次の最適性の尺度を参照してください。

optimsetの場合,オプションの名前はTolFunです。詳細は、新旧のオプション名を参照してください。

PrecondBandWidth

PCG(前処理付き共役勾配法)における前提条件子の帯域幅の上限。既定では,対角型の前提条件を使用します(帯域幅の上限0)。一部の問題では,帯域幅を上げることで,pcg法の反復回数を減らします。PrecondBandWidthに設定すると,共役勾配(cg)ではなく,直接因子分解(コレスキ,因子)が使用されます。直接因子分解ではCGより計算量が増加しますが,解を求めるためのステップの質が向上します。詳細は,信頼領域反思法アルゴリズムを参照してください。

SubproblemAlgorithm

反復ステップの計算方法を定義します。既定の設定である“重心”のステップは“分解”より高速ですが,精度の点で劣ります。詳細は,信頼領域反思法の最小二乗を参照してください。

TolPCG

PCG(前処理付き共役勾配法)反復に関する終了許容誤差(正のスカラ)。既定値は0.1です。

TypicalX

典型的なxの値です。TypicalXの要素数は,変数の数と等しくなります。既定値は的(numberofvariables, 1)です。lsqlinはスケ,リング用にTypicalXを内部的に使用します。TypicalXは,xが非有界の成分をも場合や,非有界の成分TypicalX値が1より大きい場合にのみ有効です。

内点アルゴリズムのオプション

ConstraintTolerance

制約違反に関する許容誤差(正のスカラ)。既定値は1 e-8です。

optimsetの場合,オプションの名前はTolConです。詳細は、新旧のオプション名を参照してください。

LinearSolver

アルゴリズムの内部的な線形ソルバのタプ

  • “汽车”(既定)-行列Cがスパ,スである場合は“稀疏”,そうでない場合は“密集”を使用。

  • “稀疏”—スパスな線形代数を使用。詳細は,スパ,ス行列を参照してください。

  • “密集”-密な線形代数を使用。

OptimalityTolerance

1次の最適性に関する終了許容誤差(正のスカラ)。既定値は1 e-8です。詳細は、1次の最適性の尺度を参照してください。

optimsetの場合,オプションの名前はTolFunです。詳細は、新旧のオプション名を参照してください。

StepTolerance

xに関する許容誤差(正のスカラ)。既定値は1 e-12です。

optimsetの場合,オプションの名前はTolXです。詳細は、新旧のオプション名を参照してください。

“激活集”アルゴリズムのオプション

ConstraintTolerance

制約違反に関する許容誤差(正のスカラ)。既定値は1 e-8です。

optimsetの場合,オプションの名前はTolConです。詳細は、新旧のオプション名を参照してください。

ObjectiveLimit

スカラ,の許容誤差(停止条件)です。目的関数値がObjectiveLimitを下回り,現在の点が実行可能な場合,問題が非有界であると推定されるため,その反復は中止されます既定値は1 e20です。

OptimalityTolerance

1次の最適性に関する終了許容誤差(正のスカラ)。既定値は1 e-8です。詳細は、1次の最適性の尺度を参照してください。

optimsetの場合,名前はTolFunです。詳細は、新旧のオプション名を参照してください。

StepTolerance

xに関する許容誤差(正のスカラ)。既定値は1 e-8です。

optimsetの場合,オプションの名前はTolXです。詳細は、新旧のオプション名を参照してください。

最適化問題は,次のフィ,ルドを含む構造体として指定されます。

C

行列乗数 (項C*x - d

d

加法定数 (項C*x - d

Aineq

線形不等式制約の行列

bineq

線形不等式制約のベクトル

Aeq

線形等式制約の行列

说真的

線形等式制約のベクトル
下限のベクトル
乌兰巴托 上限のベクトル

x0

xの初期点

解算器

“lsqlin”

选项

optimoptionsで作成されたオプション

メモ

引数问题とウォ,ムスタ,トを一緒に使用することはできません。

デ,タ型:结构体

ウォ,ムスタ,トオブジェクト。optimwarmstartで作成したオブジェクトとして指定します。ウォ,ムスタ,トオブジェクトには、開始点とオプションに加え、コード生成におけるメモリ サイズ用のオプション データが含まれます。詳細は、ウォ,ムスタ,トのベストプラクティスを参照してください。

例:Ws = optimwarmstart(x0,options)

出力引数

すべて折りたたむ

解は,すべての範囲制約および線形制約に従ってC * x dのノルムを最小化するベクトルとして返されます。

解ウォ,ムスタ,トオブジェクト。LsqlinWarmStartオブジェクトとして返されます。解点はwsout。Xです。

この後のlsqlinの呼び出しでは,wsoutを入力ウォ,ムスタ,トオブジェクトとして使用できます。

目的値はスカラ,値规范(C * x d) ^ 2として返されます。

解の残差はベクトルC * x dとして返されます。

アルゴリズムの停止条件。アルゴリズムの停止理由を識別する整数として返されます。exitflagの値とlsqlinが停止した対応する理由を以下に示します。

3.

残差の変化が,指定された許容誤差选项。FunctionToleranceより小さい値でした(trust-region-reflectiveアルゴリズム)。

2

ステップサ@ @ズが选项。StepToleranceより小さく、制約は満たされました(内点アルゴリズム)。

1

関数が解xに収束したことを示します。

0

反復数が选项。麦克斯特ationsを超過しています。

-2

問題が実行不可能。また,内点アルゴリズムの場合,ステップサ选项。StepToleranceより小さいが,制約は満たされません。

3 問題が非有界です。

4

悪条件のため,さらに最適化を行うことができないことを示します。

8

ステップ方向を計算できません。

内点アルゴリズムの終了メッセ,ジは,許容誤差の超過など,lsqlinが停止した理由に関する情報をより詳細に提供します。詳細は,終了フラグと終了メッセ,ジを参照してください。

最適化プロセスに関する情報を含む構造体として返された解法プロセスの概要。

迭代

ソルバ,が実行した反復の回数。

算法

次のいずれかのアルゴリズム。

  • “内点”

  • “trust-region-reflective”

  • “mldivide”(制約のない問題の場合)

制約のない問題の場合は迭代= 0となり,输出構造体の残りのエントリは空になります。

constrviolation

違反された制約にいて明らかな制約違反(“trust-region-reflective”アルゴリズムにいては返されない)。

constrviolation = max([0;规范(Aeq * x-beq,正无穷);(lb-x); (x-ub);(*取向)))

消息

終了メッセ,ジ。

firstorderopt

解における1次の最適性。詳細は,1次の最適性の尺度を参照してください。

linearsolver

内部的な線形ソルバのタプ,“密集”または“稀疏”“内点”アルゴリズムのみ)

cgiterations

ソルバ,が実行した共役勾配反復の回数。値が空でないのは“trust-region-reflective”アルゴリズムの場合のみです。

詳細は,出力構造体を参照してください。

ラグランジュ乗数は以下のフィ,ルドを含む構造体として返されます。

较低的

下限

上限乌兰巴托

ineqlin

線形不等式

eqlin

線形等式

詳細は,ラグランジュ乗数構造体を参照してください。

ヒント

  • 制約のない問題ではmldivide(行列の左除算)を使用できます。制約がない場合,lsqlinx = C\dを返します。

  • 解かれる問題が常に凸型なので,lsqlinは必ずしも一意ではないがグロバルな解を見けます。

  • 問題に多数の線形制約があるものの変数の数は少ない場合は,“激活集”アルゴリズムを試してください。詳細は,多数の線形制約がある場合の二次計画法を参照してください。

  • および乌兰巴托を陰的に使用する代わりに,Aeqおよび说真的を陽的に使用することで等式を指定する場合,より良い数値結果が出力されます。

  • trust-region-reflectiveアルゴリズムは上限と下限を同じ値に設定できません。そのような場合は別のアルゴリズムを使用してください。

  • 問題の指定された入力範囲が矛盾する場合,出力xx0、出力resnorm剩余[]です。

  • 行列Cが大きすぎてメモリが不足する場合など,一部の大規模な構造の問題は,trust-region-reflectiveアルゴリズムでヤコビ乗算関数を使用して解くことができます。詳細は,信任区域反射アルゴリズムのオプションを参照してください。

アルゴリズム

すべて折りたたむ

信頼領域反思法アルゴリズム

この方法は,部分空間信頼領域法であり,[1]で説明する内反射ニュ,トン法に基づいています。各反復は,前処理付き共役勾配(pcg)法を使用する大型線形システムの近似解を伴います。信頼領域反思法の最小二乗と,特に大規模な線形最小二乗法を参照してください。

内点法アルゴリズム

“内点”アルゴリズムはquadprog“interior-point-convex”アルゴリズムに基づいています。詳細は,線形最小二乗法:内点法または有効制約法を参照してください。

有効制約法アルゴリズム

“激活集”アルゴリズムはquadprog“激活集”アルゴリズムに基づいています。詳細は線形最小二乗法:内点法または有効制約法Active-set quadprogアルゴリズムを参照してください。

参照

[1] Coleman, t.f., Li Y.。“一个反射牛顿方法最小化二次函数服从某些变量的边界,”SIAM期刊优化,第6卷,第4号,第1040-1058页,1996。

[2]吉尔,p.e., W.默里和M. H.赖特。实用优化,学术出版社,伦敦,英国,1981。

ウォ,ムスタ,ト

ウォ,ムスタ,トオブジェクトは,前回解いた問題のアクティブな制約のリストを維持します。ソルバ,は,アクティブな制約情報を可能な限り多く引き継いで,現在の問題を解きます。前回の問題と現在の問題が違いすぎる場合,アクティブセットの情報は再利用されません。この場合,ソルバ,は効率的にコ,ルドスタ,トを実行して,アクティブな制約のリストを再構築します。

代替機能

アプリ

最適化ラ▪▪ブエディタ▪▪タスクがlsqlinにビジュアル▪▪ンタ▪▪フェ▪▪スを提供します。

拡張機能

R2006aより前に導入