org.mklab.nfc.leq
クラス LUDecomposer<E extends NumericalScalar<E>>

java.lang.Object
  上位を拡張 org.mklab.nfc.leq.LUDecomposer<E>
型パラメータ:
E - 成分の型

public final class LUDecomposer<E extends NumericalScalar<E>>
extends Object

数値行列のLU分解(P*A=L*U)を求めるためのクラスです。

バージョン:
$Revision: 1.5 $
作成者:
koga

コンストラクタの概要
LUDecomposer()
           
 
メソッドの概要
 LUDecompostionElements<E> decompose(E[][] a, NumericalScalar<?> tolerance)
          数値行列のLU分解を返します。
 LUDecompostionElements<E> decomposeWithPermutation(E[][] a, NumericalScalar<?> tolerance)
          数値行列の並べ替え付きLU分解を返します。
 E getDeterminant(E[][] a, NumericalScalar<?> tolerance)
          行列式を返します。
 E[][] inverse(E[][] a, NumericalScalar<?> tolerance)
          逆行列を返します。
 E[][] leftDivide(E[][] a, E[][] b, NumericalScalar<?> tolerance)
          左行列で右行列を割った結果を返します。
 E[] solveLinearEquation(E[][] a, E[] b, NumericalScalar<?> tolerance)
          線形方程式の解を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

LUDecomposer

public LUDecomposer()
メソッドの詳細

decompose

public LUDecompostionElements<E> decompose(E[][] a,
                                           NumericalScalar<?> tolerance)
数値行列のLU分解を返します。

数値行列をA、下三角行列を行置換した行列をL、 上三角行列をUとすると、これらの行列の間には、

A = Q * H * Q#
Q# * Q = I
の関係が成り立ちます。

パラメータ:
a - 数値行列
tolerance - 許容誤差
戻り値:
{L, U}

decomposeWithPermutation

public LUDecompostionElements<E> decomposeWithPermutation(E[][] a,
                                                          NumericalScalar<?> tolerance)
数値行列の並べ替え付きLU分解を返します。

数値行列をA、下三角行列を行置換した行列をL、上三角行列をU、置換行列をPとすると、これらの行列の間には、

P * A = Q * H * Q#
Q# * Q = I
の関係が成り立ちます。

パラメータ:
a - 数値行列
tolerance - 許容誤差
戻り値:
{L, U, P}

solveLinearEquation

public E[] solveLinearEquation(E[][] a,
                               E[] b,
                               NumericalScalar<?> tolerance)
線形方程式の解を返します。

Aを行列、bをベクトルをとするとき、

A*x = b
の解xが返り値となります。

パラメータ:
a - 行列
b - 右辺ベクトル
tolerance - 許容誤差
戻り値:

inverse

public E[][] inverse(E[][] a,
                     NumericalScalar<?> tolerance)
逆行列を返します。

パラメータ:
a - 対象となる行列
tolerance - 許容誤差
戻り値:
逆行列

leftDivide

public E[][] leftDivide(E[][] a,
                        E[][] b,
                        NumericalScalar<?> tolerance)
左行列で右行列を割った結果を返します。

パラメータ:
a - 左行列
b - 右行列
tolerance - 許容誤差
戻り値:
割り算の結果

getDeterminant

public E getDeterminant(E[][] a,
                        NumericalScalar<?> tolerance)
行列式を返します。

パラメータ:
a - 対象となる行列
tolerance - 許容誤差
戻り値:
行列式