主要内容

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

説明

lU陆]= (一个は非スパース行列またはスパース行列一个を,上三角行列Uと,置換された下三角行列lに因数分解します。このとき一个= L * Uが成立します。

lUP陆]= (一个はさらに,L = P ' * *を満たす,置換行列Pを返します。この構文では,lは単位下三角行列で,Uは上三角行列です。

lUP陆]= (一个outputFormは,outputFormで指定した形式でPを返します。outputForm“向量”として指定すると,P:一个(P) = L * Uを満たす置換ベクトルとして返されます。

lUP陆]= (年代は,スパース行列年代を,単位下三角行列l、上三角行列U、行置換行列P、列置換行列に因数分解します。このとき,P * * Q = L * Uが成立します。

lUPD陆]= (年代はさらに,P * (D \ S) * Q = L * Uを満たす対角スケーリング行列Dも返します。一般的に,行のスケーリングは,よりスパースで安定した因数分解が得られます。

___陆]= (年代は,前述の出力引数の任意の組み合わせを使用して,により適用されるピボットの手法のしきい値を指定します。指定した出力引数の数によって,入力の既定値と要件は異なります。詳細については,引数の説明を参照してください。

___陆]= (___outputFormは,outputFormで指定した形式でPを返します。Pを置換ベクトルとして返すには,outputForm“向量”として指定します。前述の構文にある任意の入力引数の組み合わせが使用できます。

すべて折りたたむ

行列の陆分解を計算し,生成される因子を確認します。陆分解は,行列 一个 を,上三角行列 U 、下三角行列 l 、置換行列 P に分解する手法です。このとき, 巴勒斯坦权力机构 が成立します。これらの行列は,行列が行簡約階段形になるまでガウスの消去法を実行するために必要なステップを表します。行列 l にはすべての乗算器が含まれます。また,置換行列 P では行交換が考慮されます。

3行3列の行列を作成し,卢因子を計算します。

A = [10 -7 0 -3 2 6 5 -1 5];
陆[L U] = (A)
L =3×3-0.3000 -0.0400 1.0000 0.5000 1.0000 0
U =3×310.0000 -7.0000 00 2.5000 5.0000 00 6.2000

これらの因子を乗算して,一个を再作成します。は2入力の構文を使用して,置換行列Pを直接l因子に組み込みます。このとき,返されるlは実際にはP ' * Lとなり,そのため一个= L * Uとなります。

L * U
ans =3×310.0000 -7.0000 0 -3.0000 2.000 6.0000 5.0000 -1.0000 5.0000

3つの出力を指定して,置換行列をlの乗算器から分離することができます。

陆(L U P) = (A)
L =3×31.0000 00 0.5000 1.0000 0 -0.3000 -0.0400 1.0000
U =3×310.0000 -7.0000 00 2.5000 5.0000 00 6.2000
P =3×31 0 0 0 0 1 0 1 0 0
P ' * L * U
ans =3×310.0000 -7.0000 0 -3.0000 2.000 6.0000 5.0000 -1.0000 5.0000

陆分解を実行し,因子を使用して問題を単純化することにより,線形システムを解きます。その結果を,バックスラッシュ演算子や分解オブジェクトを使用した他の方法と比較します。

5行5列の魔方陣行列を作成し,線形システム 斧头 b を解きます。ここで,bのすべての要素が65(魔方陣の和)と等しくなります。65年はこの行列の魔方陣の和である(すべての行および列ではその和が65になる)ため,xについて予期される解は1から成るベクトルです。

一个=魔法(5);b = 65 * 1(5、1);x = A \ b
x =5×11.0000 1.0000 1.0000 1.0000 1.0000 1.0000

一般的な正方行列では,バックスラッシュ演算子は陆分解を使用して線形システムの解を計算します。陆分解により,一个は三角行列の積として表され,三角行列を含む線形システムは代入式により簡単に解けます。

バックスラッシュにより計算された解を再作成するには,一个陆の分解を計算します。その後,因子を使用して次の2つの三角線形システムを解きます。

y = L \ (P * b);x = U \ y;

線形システムを解く前に行列因子を事前計算するこの方法は,多数の線形システムを解く場合のパフォーマンスを向上させることができます。これは,因数分解の発生が1回のみで,繰り返しが不要なためです。

陆(L U P) = (A)
L =5×51.0000 0000 0.7391 1.0000 000 0.4783 0.7687 1.0000 00 0.1739 0.2527 0.5164 1.0000 0 0.4348 0.4839 0.7231 0.9231 1.0000
U =5×524.8608 -2.8908 -1.0921 000 19.6512 18.9793 0000 -22.2222
P =5×50 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0
y = L \ (P * b);x = U \ y
x =5×11.0000 1.0000 1.0000 1.0000 1.0000 1.0000

分解オブジェクトも,特殊化された因数分解により線形システムを解く場合に便利です。この方法では,因子の使用方法の知識を求められることなく,行列因子の事前計算によるパフォーマンス上のメリットを数多く得られます。同じ結果を再作成するには,タイプが“陆”の分解オブジェクトを使用します。

dA =分解(,“陆”);x = dA \ b
x =5×11.0000 1.0000 1.0000 1.0000 1.0000 1.0000

陆スパース行列の分解を計算して,恒等式L * U = P * *を検証します。

巴克明斯特·富勒幾何ドームの結合グラフの60行60列のスパース隣接行列を作成します。

S =巴基;

4つの出力をもつスパース行列構文を使用して年代陆の分解を計算し,行と列の置換行列を返します。

(L U P, Q) = lu (S);

年代の行と列をP * *と置換した結果を,三角因子L * Uを乗算した場合と比較します。1ノルムの違いは,丸め誤差の範囲に入り,L * U = P * *を示します。

e = P*S*Q - L*U;规范(e, 1)
ans = 5.7732 e15汽油

行列の陆分解を計算します。行置換を行列ではなくベクトルとして返すことで,メモリを節約します。

1000行1000列のランダム行列を作成します。

一个=兰德(1000);

行列Pとして保存されている置換情報を使用して陆分解を計算します。結果を,ベクトルpとして保存されている置換情報と比較します。行列が大きいほど、置換ベクトルを使用した場合にメモリ効率がより高くなります。

陆(L1, U1, P) = ();陆(L2, U2, p) = (,“向量”);谁Pp
Name Size Bytes Class Attributes P 1000x1000 8000000 double P 1x1000 8000 double

また,置換ベクトルを使用すると,以降の操作の実行時間が短縮されます。陆たとえば,前述の分解を使用して,線形システム 斧头 b を解くことができます。置換ベクトルから得られる解と置換行列から得られる解は等価(丸めを除く)ですが,通常は,置換ベクトルを使用して解を求める方が時間がやや短縮されます。

陆スパース行列の分解の計算結果を,列置換がある場合と列置換がない場合で比較します。

行列west0479を読み込みます。これは479行479列の実数値のスパース行列です。

负载west0479一个= west0479;

3つの出力を指定してを呼び出し,一个陆の分解を計算します。l因子と U 因子の spy プロットを生成します。

陆(L U P) = ();次要情节(1、2、1)间谍(L)标题(“L因素”)子情节(1,2,2)间谍(U)标题(“U因子”

图中包含2个轴。标题为L因子的轴1包含一个类型为line的对象。标题为U因子的轴2包含一个类型为line的对象。

次に4つの出力を指定してを使用し,一个陆の分解を計算します。これにより,一个の列が置換され,各因子について非ゼロの数が少なくなります。この結果生成される因子は,列置換を使用しない場合と比べて,スパースの傾向が強くなっています。

(L U P, Q) = lu (A);次要情节(1、2、1)间谍(L)标题(“L因素”)子情节(1,2,2)间谍(U)标题(“U因子”

图中包含2个轴。标题为L因子的轴1包含一个类型为line的对象。标题为U因子的轴2包含一个类型为line的对象。

入力引数

すべて折りたたむ

入力行列。一个は非スパースまたはスパースで,正方形または長方形のサイズにすることができます。

データ型:|
複素数のサポート:あり

スパース入力行列。年代は正方形または長方形のサイズにすることができます。

データ型:
複素数のサポート:あり

スパース行列に対するピボットしきい値。スカラーまたは2要素ベクトルとして指定します。有効な値は、[0 1]間の値です。を指定する方法は,の呼び出しで指定される出力の数によって異なります。

  • 出力の数が3つ以下の場合,はスカラーでなければならず,既定値は1.0です。

  • 出力の数が4つ以上の場合,はスカラーまたは2要素ベクトルにできます。既定値は(0.1 - 0.001)です。をスカラーとして指定した場合,ベクトルの最初の値のみが置き換えられます。

上位レベルでは,この入力により精度と合計実行時間がトレードオフされます。の値を小さくするほど,スパース陆分解を導く傾向がありますが,解は非対称になる可能性があります。より大きな値は,より正確な解を導くことができ(常にではありませんが),通常,作業とメモリ使用量の合計が増加します。

は,ピボットの手法を,まず出力引数の数,次に因数分解する行列のプロパティに基づいて選択します。いずれの場合でも,しきい値を1.0に設定すると部分ピボットが行われ,0に設定すると,生成される行列のスパース性のみに基づいてピボットが選択されます。lのすべての値は,絶対値が1 /分钟(打)以下です。

  • 出力引数が3つ以下——アルゴリズムは以下の方程式を満たす場合に対角ピボットを選択します。

    A(j,j) >= max(abs(A(j:m,j)))
    それ以外の場合,絶対値が最大である要素を含む行を選択します。

  • 対称なピボットの手法- - - - - -年代が,ほぼ対称構造で対角の大半が非ゼロの正方スパース行列である場合,は対称なピボットの手法を使用します。この手法では,アルゴリズムは以下の不等式を満たす場合に対角ピボットjを選択します。

    A(i,j) >= thresh(2) * max(abs(A(j:m,j)))
    対角要素がこのテストに失敗した場合,は以下の不等式を満たす最もスパースな行を選択します。
    A(i,j) >= thresh(1) * max(abs(A(j:m,j)))

  • 非対称なピボットの手法- - - - - -年代が対称なピボットの手法の要件を満たさない場合,は非対称な手法を使用します。この場合,は以下の不等式を満たす最もスパースな行を選択します。

    A(i,j) >= thresh(1) * max(abs(A(j:m,j)))
    打(1)の値が1.0の場合,通常の部分ピボットを行います。lこの要素は,1 /打(1)の絶対値またはそれより小さい値をもちます。非対称の手法では,入力ベクトルの2番目の要素は使用されません。

メモ

非常にまれではありますが,誤った因数分解によりP * *L * Uとなることがあります。このような場合は,を最大1.0(通常の部分ピボット)まで大きくして,再度試みてください。

置換出力の形状。“矩阵”または“向量”として指定します。このフラグは,が行置換Pと列置換を置換行列として返すか置換ベクトルとして返すかを制御します。

行列の場合,Pは以下の恒等式を満たします。

  • 出力が3つ-PP * = L * Uを満たします。

  • 出力が4つ-PP * * Q = L * Uを満たします。

  • 出力が5つ-PDP * (D \ S) * Q = L * Uを満たします。

ベクトルの場合,出的力Pは以下の恒等式を満たします。

  • 出力が3つ-P:一个(P) = L * Uを満たします。

  • 出力が4つ-PS (P, Q) = L * Uを満たします。

  • 出力が5つ-PDD (: P) \ S (:, Q = L * Uを満たします。

例:陆(L U P) =(向量),

出力引数

すべて折りたたむ

下三角因子。行列として返されます。lの形式は,行置換Pが個別の出力で返されるかどうかによって異なります。

  • 3番目の出力Pを指定した場合,lは単位下三角行列(つまり,主対角が1の下三角行列)として返されます。

  • 3番目の出力Pを指定しない場合,lは単位下三角行列の行置換として返されます。具体的には,これは出力が3つの場合に返される出力Plの積P ' * Lです。

上三角因子。上三角行列として返されます。

行置換。置換行列,または置換ベクトル(“向量”オプションが指定されている場合)として返されます。この出力を使用すると,計算の数値安定性が向上します。

この出力が満たす恒等式の詳細については,outputFormを参照してください。

列置換。置換行列,または置換ベクトル(“向量”オプションが指定されている場合)として返されます。この出力を使用すると,スパース行列の因子の非スパース要素(非ゼロの数)が減ります。

この出力が満たす恒等式の詳細については,outputFormを参照してください。

行のスケーリング。対角行列として返されます。Dは,P * (D \ S) * Q = L * Uを満たすように年代をスケーリングするために使用されます。常にではありませんが,一般的に,行のスケーリングを使用すると,よりスパースで安定した因数分解が得られます。

アルゴリズム

陆分解は,ガウスの消去法の変形を使用して計算されます。正確な解を計算できるかどうかは,元の行列の条件数の値气孔导度(A)によって異なります。行列の条件数が大きい (ほぼ特異である) 場合、計算された因数分解は正確でないことがあります。

陆分解は,发票を使用して逆行列を求めたり,依据を使用して行列式の値を求めるための重要な部分です。線形方程式の求解や,演算子/を使用した行列の除算に対しても基本的な役割を果たします。そのため,必然的に,これらの依存関数にもの数値制限が存在することになります。

拡張機能

R2006aより前に導入