1

下三角行列 (L) と上三角行列 (U) があります。mldivide を使用して の解を求めますL*U*x = b。MATLAB は、後方/前方置換のみが必要であることを発見するのに十分賢いと思います。しかし、前方/後方置換のみを実行する必要があることをmatlabに(どういうわけか)伝えることができれば、さらに速くなると思います。

MATLABに後方/前方置換のみを行うように指示する方法を教えてください。追加の操作は必要ありません。

ありがとう

4

2 に答える 2

1

ドキュメントはかなり明確です:

三角行列の順列

mldivide は、ゼロ要素をテストすることによって三角性をチェックします。行列 A が三角行列の場合、MATLAB ソフトウェアは代入を使用して解ベクトル x を計算します。A が三角行列の置換である場合、MATLAB ソフトウェアは置換置換アルゴリズムを使用します。

それで

x = U \ (L \ b);

問題の後方/前方ソリューションです。

于 2013-01-30T18:39:31.980 に答える
0

ドキュメントを検索すると、Matlab は実際に後方/前方置換を使用しているようです。ただし、mldivide行列L*Uを取得するのではなく個別Lに取得Uするため、内部で分解を実行する必要があります。

L 行列と U 行列が既にある場合は、計算のその部分を保存できる場合があります。

于 2013-01-30T17:33:00.393 に答える