概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.mklab.nfc.svd
クラス DoubleComplexSingularValueDecomposer

    java.lang.Object
      org.mklab.nfc.svd.DoubleComplexSingularValueDecomposer

    public final class DoubleComplexSingularValueDecomposer

extends Object

倍精度(double)型の複素行列の特異値分解を行うためのクラスです。

バージョン:
  $Revision: 1.4 $
作成者:
  matsuki

コンストラクタの概要
`DoubleComplexSingularValueDecomposer()`

メソッドの概要
`double` | `conditionNumber(double[][] ar, double[][] ai)` 複素行列の条件数を返します。
`boolean` | `isFullRank(double[][] aRe, double[][] aIm, double tolerance)` 複素行列がフルランクであるか判定します。
`boolean` | `isSingular(double[][] aRe, double[][] aIm, double tolerance)` 複素行列が非正則であるか判定します。
`double[][][]` | `kernel(double[][] aRe, double[][] aIm, double tolerance)` 複素行列のカーネル(零空間)を張るベクトルからなる行列を返します。
`double[][][]` | `leastSquare(double[][] aRe, double[][] aIm, double[][] bRe, double[][] bIm, double toleance)` 線形方程式の解を返します。
`double` | `maximumSingularValue(double[][] aRe, double[][] aIm)` 複素行列の最大特異値を返します。
`double` | `minimumSingularValue(double[][] aRe, double[][] aIm)` 複素行列の最小特異値を返します。
`double` | `norm(double[][] ar, double[][] ai)` 複素行列の最大特異値(2-ノルム)を返します。
`double[][][]` | `pseudoInverse(double[][] aRe, double[][] aIm, double tolerance)` 複素行列の擬似逆行列を返します。
`int` | `rank(double[][] aRe, double[][] aIm, double tolerance)` 複素行列のランク(階数)を返します。
`double[]` | `singularValue(double[][] aRe, double[][] aIm)` 複素行列の特異値を返します。
`SingularValueDecompositionDoubleComplexElements` | `singularValueDecompose(double[][] aRe, double[][] aIm)` 複素行列を特異値分解を返します。

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### DoubleComplexSingularValueDecomposer

    public DoubleComplexSingularValueDecomposer()

メソッドの詳細

### singularValueDecompose

    public SingularValueDecompositionDoubleComplexElements singularValueDecompose(double[][] aRe,
                                                                                  double[][] aIm)

  複素行列を特異値分解を返します。

  対象となる行列をA、特異値を対角成分とする対角行列を D、左特異ベクトルからなるユニタリー行列をU、右特異ベクトルからなるユニタリー行列をVとすると、

  > A = U * D * V #

  の関係が成り立ちます。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
  戻り値:
    Uの実部、Uの虚部、Dの実部、Dの虚部(全て零)、Vの実部、Vの虚部

### singularValue

    public double[] singularValue(double[][] aRe,
                                  double[][] aIm)

  複素行列の特異値を返します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
  戻り値:
    特異値

### maximumSingularValue

    public double maximumSingularValue(double[][] aRe,
                                       double[][] aIm)

  複素行列の最大特異値を返します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
  戻り値:
    最大特異値

### minimumSingularValue

    public double minimumSingularValue(double[][] aRe,
                                       double[][] aIm)

  複素行列の最小特異値を返します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
  戻り値:
    最小特異値

### isSingular

    public boolean isSingular(double[][] aRe,
                              double[][] aIm,
                              double tolerance)

  複素行列が非正則であるか判定します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
    `tolerance` - 許容誤差
  戻り値:
    非正則ならばtrue、そうでなければfalse

### rank

    public int rank(double[][] aRe,
                    double[][] aIm,
                    double tolerance)

  複素行列のランク(階数)を返します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
    `tolerance` - 許容誤差
  戻り値:
    ランク

### isFullRank

    public boolean isFullRank(double[][] aRe,
                              double[][] aIm,
                              double tolerance)

  複素行列がフルランクであるか判定します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
    `tolerance` - 許容誤差
  戻り値:
    フルランクならばtrue、そうでなければfalse

### pseudoInverse

    public double[][][] pseudoInverse(double[][] aRe,
                                      double[][] aIm,
                                      double tolerance)

  複素行列の擬似逆行列を返します。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
    `tolerance` - 許容誤差
  戻り値:
    擬似逆行列

### leastSquare

    public double[][][] leastSquare(double[][] aRe,
                                    double[][] aIm,
                                    double[][] bRe,
                                    double[][] bIm,
                                    double toleance)

  線形方程式の解を返します。

  実部ar、虚部aiで表される複素行列をA、実部br、虚部biで表される複素行列をBとすとき、

  > A * X = B

  の解即ち

  > X = A-1 * B

  を返します。

  パラメータ:
    `aRe` - 係数行列の実部
    `aIm` - 係数行列の虚部
    `bRe` - 実部
    `bIm` - 虚部
    `toleance` - 許容誤差
  戻り値:
    線形方程式の解

### kernel

    public double[][][] kernel(double[][] aRe,
                               double[][] aIm,
                               double tolerance)

  複素行列のカーネル(零空間)を張るベクトルからなる行列を返します。

  許容誤差より小さい特異値をゼロと見なします。

  パラメータ:
    `aRe` - 複素行列の実部
    `aIm` - 複素行列の虚部
    `tolerance` - 許容誤差
  戻り値:
    カーネル

### norm

    public double norm(double[][] ar,
                       double[][] ai)

  複素行列の最大特異値(2-ノルム)を返します。

  パラメータ:
    `ar` - 複素行列の実部
    `ai` - 複素行列の虚部
  戻り値:
    最大特異値

### conditionNumber

    public double conditionNumber(double[][] ar,
                                  double[][] ai)

  複素行列の条件数を返します。

  パラメータ:
    `ar` - 複素行列の実部
    `ai` - 複素行列の虚部
  戻り値:
    条件数

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド