線形システムAX = Yを解きます。入力行列既知のベクトル入力に配線するデータタイプによって、使用する多態性のインスタンスが決まります。


icon

Aは入力行列を表すm x n行列、Yは既知ベクトルm個の係数のセット、Xは式を解く解ベクトルn個の要素のセットとします。

AX = Y

m > nの場合、システムには未知数よりも多くの式が含まれるため、システムは過剰決定系となります。AX=Yを満たす解は存在しない可能性があるため、VIは||AX – Y||を最小化する最小二乗解Xを求めます。

m < nの場合、システムに式よりも多くの未知数が含まれるため、システムは劣決定系となります。AX = Y を満たす無限の解を持つことができる。VIはこれらの解決策のいずれかを見つける。

m = nの場合、Aが正則行列であれば、つまり行または列がそれぞれ他の行または列の線形結合でなければ、入力行列Aをその下三角行列Lと上三角行列Uに分解することによって、この連立1次方程式をXについて解くことができます。そして、

AX = LZ = Y

および

Z = UX

が元のシステムの別の表現として使用できることを仮定します。また、Zもn個の要素のベクトルであることに注目してください。

三角形系は、再帰的手法を使用して簡単に解くことができます。その結果、AからL行列とU行列を取得する場合、Zは連立1次方程式LZ = Y、Xは連立1次方程式UX = Zから求めることができます。

mnの場合、Aは直交行列Qと上三角行列Rに分解でき、A=QRとなる。すると、線形システムはQRX=Yで表すことができる。すると、RX=QTYと解くことができます。

この三角形系は、再帰的手法を使用してこの三角形系を解き、xを簡単に求めることができます。

メモ 行列が特異行列かどうかは、特に大規模なシステムでは、必ずしも決定できるとは限りません。「線形方程式を解く」VIは、このVIを使用する前に有効なシステムであるかを確認しなくてもよいように、特異行列を検出して、エラーを返します。

行列反転の数値的実装は単に計算のコストが高いだけでなく、再帰的な性質を持つために浮動小数点演算プロセッサによって生じる丸め誤差に影響されやすくなります。計算には可能な限り最高の確度が使用されますが、VIは必ずしもシステムの問題を解くことができると限りません。

複素線形方程式を解く

Aはm x n入力行列、Yは既知ベクトルm個の要素のセット、Xは式を解く解ベクトルn個の要素のセットを表します。

AX = Y

m > nの場合、システムには未知数よりも多くの式が含まれるため、システムは過剰決定系となります。AX=Yを満たす解は存在しないため、VIは||AX – Y||を最小化する最小二乗解Xを求めます。

m < nの場合、システムに式よりも多くの未知数が含まれるため、システムは劣決定系となります。AX=Yを満たす無限の解を持つかもしれない。そして、VIはこれらのソリューションの中から1つを選択する。

m = nの場合、Aが正則行列であれば、つまり行または列がそれぞれ他の行または列の線形結合でなければ、入力行列Aをその下三角行列Lと上三角行列Uに分解することによって、この連立1次方程式をXについて解くことができます。そして、

AX = LZ = Y

および

Z = UX

が元のシステムの別の表現として使用できることを仮定します。また、Zもn個の要素のベクトルであることに注目してください。

三角形系は、再帰的手法を使用して簡単に解くことができます。その結果、AからL行列とU行列を取得する場合、Zは連立1次方程式LZ = Y、Xは連立1次方程式UX = Zから求めることができます。

mnのとき、Aは直交行列Qと上三角行列Rに分解できるので、A=QRとなり、線形系はQRX=Yで表すことができる。すると、RX=QHYを解くことができます。この三角形系は、再帰的手法を使用してこの三角形系を解き、Xを簡単に求めることができます。

メモ 行列反転の数値的実装は単に計算のコストが高いだけでなく、再帰的な性質を持つために浮動小数点演算プロセッサによって生じる丸め誤差に影響されやすくなります。計算には可能な限り最高の確度が使用されますが、VIは必ずしもシステムの問題を解くことができると限りません。

サンプルプログラム

LabVIEWに含まれている以下のサンプルファイルを参照してください。

  • labview\examples\Mathematics\Linear Algebra\Linear Algebra Calculator.vi