org.mklab.nfc.matrix
クラス NumericalComplexMatrix<E extends NumericalScalar<E>>

java.lang.Object
  上位を拡張 org.mklab.nfc.matrix.AbstractGrid<M>
      上位を拡張 org.mklab.nfc.matrix.AbstractFundamentalMatrix<M>
          上位を拡張 org.mklab.nfc.matrix.AbstractMatrix<M>
              上位を拡張 org.mklab.nfc.matrix.BaseMatrix<NumericalMatrix<E>,E>
                  上位を拡張 org.mklab.nfc.matrix.NumericalMatrix<ComplexScalar<E>>
                      上位を拡張 org.mklab.nfc.matrix.NumericalComplexMatrix<E>
型パラメータ:
E - 複素成分の実部と虚部の型
すべての実装されたインタフェース:
Serializable, Cloneable, FundamentalMatrix, Grid, Matrix, MatrixElementOperator<ComplexScalar<E>>, MatrixElementWiseOperator, NumericalMatrixOperator<ComplexScalar<E>>, TransformableMatrix<BaseMatrix<?,?>>

public class NumericalComplexMatrix<E extends NumericalScalar<E>>
extends NumericalMatrix<ComplexScalar<E>>

ComplexScalarを成分とする行列を表わすクラスです。

バージョン:
$Revision: 1.7 $, 2008/03/16
作成者:
koga
関連項目:
直列化された形式

コンストラクタの概要
NumericalComplexMatrix()
          新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。
NumericalComplexMatrix(ComplexScalar<E>[] elements)
          新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。
NumericalComplexMatrix(ComplexScalar<E>[][] elements)
          新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。
NumericalComplexMatrix(int rowSize, int columnSize, ComplexScalar<E>[][] elements)
          新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。
 
メソッドの概要
 EigenSolution<NumericalMatrix<?>> eigenDecompose()
          固有値を対角成分とする対角行列D、固有値に対応する固有ベクトルを横方向に並べた行列Xを返します。
 NumericalMatrix<ComplexScalar<E>> eigenValue()
          固有値を成分とする列ベクトルを返します。
 NumericalMatrix<?> eigenVector()
          (右)固有ベクトルを列とする行列を返します。
 HessenbergDecomposition<NumericalMatrix<ComplexScalar<E>>> hessenbergDecompose()
          ヘッセンベルク分解を返します。
 boolean isFullRank(NumericalScalar<?> tolerance)
          フルランクであるか判定します。
 NumericalMatrix<ComplexScalar<E>> kernel(NumericalScalar<?> tolerance)
          カーネル(零空間)を張るベクトルからなる行列を返します。
 NumericalScalar<E> maxSingularValue()
          最大特異値を返します。
 NumericalScalar<E> minSingularValue()
          最小特異値を返します。
 NumericalMatrix<ComplexScalar<E>> pseudoInverse(NumericalScalar<?> tolerance)
          擬似逆行列を返します。
 QRDecomposition<NumericalMatrix<ComplexScalar<E>>> qrDecompose()
          QR分解を返します。
 QRDecomposition<NumericalMatrix<ComplexScalar<E>>> qrDecomposeWithPermutation()
          並べ替え付きQR分解を返します。
 int rank(NumericalScalar<?> tolerance)
          ランク(階数)(toleranceより大きい特異値の数)を返します。
 SchurDecomposition<NumericalMatrix<ComplexScalar<E>>> schurDecompose()
          Schur分解を返します。
 NumericalMatrix<E> singularValue()
          特異値を成分とする列ベクトルを返します。
 SingularValueDecomposition<NumericalMatrix<ComplexScalar<E>>> singularValueDecompose()
          特異値分解で得られる各行列を返します。
 
クラス org.mklab.nfc.matrix.NumericalMatrix から継承されたメソッド
absElementWise, acosElementWise, acoshElementWise, argumentElementWise, asinElementWise, asinhElementWise, atan2ElementWise, atan2ElementWise, atan2ElementWise, atanElementWise, atanhElementWise, balancedDecompose, choleskyDecompose, conditionNumber, cosElementWise, coshElementWise, createComplexMatrix, createNormalRandom, createNormalRandom, createNormalRandom, createNormalRandom, createUniformRandom, createUniformRandom, createUniformRandom, createUniformRandom, determinant, eigenDecompose, eigenValue, eigenVector, equals, exp, exp, exp, expElementWise, fft, fft, fftColumnWise, fftColumnWise, fftRowWise, fftRowWise, frobNorm, frobNormColumnWise, frobNormRowWise, getDefaultElementFormat, ifft, ifft, ifftColumnWise, ifftColumnWise, ifftRowWise, ifftRowWise, infNorm, inverse, inverse, isFullRank, isFullRank, isUnit, isZero, kernel, kernel, log, log10ElementWise, logElementWise, luDecompose, luDecompose, luDecompose, luDecomposeWithPermutation, luDecomposeWithPermutation, luDecomposeWithPermutation, max, maxColumnWise, maxElementWise, maxElementWise, maximum, maximumColumnWise, maximumRowWise, maxRowWise, median, medianColumnWise, medianRowWise, min, minColumnWise, minElementWise, minElementWise, minimum, minimumColumnWise, minimumRowWise, minRowWise, modulusElementWise, modulusElementWise, norm, powerElementWise, powerElementWise, powerElementWise, powerElementWise, powerElementWise, powerElementWise, powerElementWise, powerElementWise, pseudoInverse, pseudoInverse, qzDecompose, rank, rank, remainderElementWise, remainderElementWise, roundToZeroElementWise, roundToZeroElementWise, setDefaultElementFormat, signumElementWise, sinElementWise, sinhElementWise, sort, sortColumnWise, sortRowWise, sqrt, sqrtElementWise, std, stdColumnWise, stdRowWise, tanElementWise, tanhElementWise
 
クラス org.mklab.nfc.matrix.BaseMatrix から継承されたメソッド
add, add, addElementWise, addElementWise, addElementWise, appendDown, appendDown, appendRight, appendRight, ceilElementWise, clone, compareElementWise, compareElementWise, compareElementWise, compareElementWise, compareElementWise, compareElementWise, compareElementWise, conjugate, conjugateTranspose, copy, copy, copy, copy, covariance, covariance, createOnes, createUnit, createZero, cumulativeProduct, cumulativeProductColumnWise, cumulativeProductRowWise, cumulativeSum, cumulativeSumColumnWise, cumulativeSumRowWise, determinant, diagonal, diagonalToVector, divide, divide, divide, divide, divide, divideElementWise, divideElementWise, equals, equals, equals, exchangeColumn, exchangeRow, fixElementWise, floorElementWise, getElement, getElement, getElements, getImaginaryPart, getRealPart, getSubMatrix, getSubMatrix, getSubMatrix, getSubMatrix, getSubVector, hashCode, inverse, inverseElementWise, isComplex, isFiniteElementWise, isInfiniteElementWise, isNanElementWise, isReal, isTransformableFrom, isTransformableTo, isUnit, isZero, isZero, leftDivide, leftDivide, leftDivideElementWise, leftDivideElementWise, mean, meanColumnWise, meanRowWise, multiply, multiply, multiply, multiply, multiply, multiplyElementWise, multiplyElementWise, powerElementWise, powerElementWise, printElements, printElements, product, productColumnWise, productRowWise, removeColumnVectors, removeColumnVectors, removeRowVectors, removeRowVectors, reshape, resize, roundElementWise, roundToZeroElementWise, setElement, setElement, setElement, setElement, setElement, setElement, setElements, setImaginaryPart, setImaginaryPart, setImaginaryPart, setImaginaryPart, setRealPart, setRealPart, setRealPart, setRealPart, setSubMatrix, setSubMatrix, setSubMatrix, setSubMatrix, setSubVector, setSubVector, subtract, subtract, subtractElementWise, subtractElementWise, subtractElementWise, sum, sumColumnWise, sumRowWise, toComplex, trace, transformFrom, transformTo, transpose, unaryMinus, variance, vectorToDiagonal
 
クラス org.mklab.nfc.matrix.AbstractMatrix から継承されたメソッド
add, covariance, createOnes, createOnes, createOnes, createUnit, createUnit, createUnit, createZero, createZero, createZero, divide, divideElementWise, isUnit, leftDivide, leftDivide, leftDivide, leftDivide, leftDivideElementWise, multiply, multiplyElementWise, power, shiftLeft, shiftUp, subtract, transformToSameClass
 
クラス org.mklab.nfc.matrix.AbstractFundamentalMatrix から継承されたメソッド
appendDown, appendRight, flipLeftRight, flipUpDown, getColumnVector, getColumnVectors, getColumnVectors, getRowVector, getRowVectors, getRowVectors, getSubMatrix, getSubMatrix, getSubMatrix, getSubVector, getSubVector, rotateLeft, rotateUp, setColumnVector, setColumnVectors, setColumnVectors, setRowVector, setRowVectors, setRowVectors, setSubMatrix, setSubMatrix, setSubMatrix, setSubVector
 
クラス org.mklab.nfc.matrix.AbstractGrid から継承されたメソッド
count, getColumnSize, getDefaultElementAlignment, getElementAlignment, getElementFormat, getGridClassName, getPrintingElementsString, getPrintingString, getRowSize, hasSameColumnSize, hasSameRowSize, isEmpty, isSameSize, isSquare, length, print, print, print, removeColumnVector, removeRowVector, setColumnSize, setDefaultElementAlignment, setElementAlignment, setElementFormat, setRowSize, toString
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 
インタフェース org.mklab.nfc.matrix.Matrix から継承されたメソッド
add, conjugate, conjugateTranspose, covariance, createOnes, createOnes, createOnes, createOnes, createUnit, createUnit, createUnit, createUnit, createZero, createZero, createZero, createZero, cumulativeProduct, cumulativeProductColumnWise, cumulativeProductRowWise, cumulativeSum, cumulativeSumColumnWise, cumulativeSumRowWise, divide, divide, divide, divide, getImaginaryPart, getRealPart, inverse, isComplex, isReal, isTransformableFrom, isTransformableTo, isUnit, isUnit, isZero, leftDivide, leftDivide, leftDivide, leftDivide, meanColumnWise, meanRowWise, multiply, multiply, multiply, multiply, power, productColumnWise, productRowWise, setImaginaryPart, setImaginaryPart, setImaginaryPart, setImaginaryPart, setRealPart, setRealPart, setRealPart, setRealPart, shiftLeft, shiftUp, subtract, sumColumnWise, sumRowWise, toComplex, transformFrom, transformTo, unaryMinus
 
インタフェース org.mklab.nfc.matrix.FundamentalMatrix から継承されたメソッド
appendDown, appendRight, compareElementWise, copy, diagonalToVector, equals, flipLeftRight, flipUpDown, getColumnVector, getColumnVectors, getColumnVectors, getRowVector, getRowVectors, getRowVectors, getSubMatrix, getSubMatrix, getSubMatrix, getSubMatrix, getSubMatrix, getSubMatrix, getSubMatrix, getSubVector, getSubVector, getSubVector, reshape, resize, rotateLeft, rotateUp, setColumnVector, setColumnVectors, setColumnVectors, setRowVector, setRowVectors, setRowVectors, setSubMatrix, setSubMatrix, setSubMatrix, setSubMatrix, setSubMatrix, setSubMatrix, setSubMatrix, setSubVector, setSubVector, setSubVector, transpose, vectorToDiagonal
 
インタフェース org.mklab.nfc.matrix.Grid から継承されたメソッド
clone, count, exchangeColumn, exchangeRow, getColumnSize, getElementAlignment, getElementFormat, getPrintingElementsString, getPrintingString, getRowSize, hasSameColumnSize, hasSameRowSize, isEmpty, isSameSize, isSquare, isZero, length, print, print, print, printElements, printElements, removeColumnVector, removeColumnVectors, removeColumnVectors, removeRowVector, removeRowVectors, removeRowVectors, setElementAlignment, setElementFormat
 
インタフェース org.mklab.nfc.matrix.MatrixElementWiseOperator から継承されたメソッド
addElementWise, addElementWise, addElementWise, ceilElementWise, compareElementWise, compareElementWise, compareElementWise, divideElementWise, fixElementWise, floorElementWise, inverseElementWise, isFiniteElementWise, isInfiniteElementWise, isNanElementWise, leftDivideElementWise, multiplyElementWise, powerElementWise, powerElementWise, roundElementWise, roundToZeroElementWise, subtractElementWise, subtractElementWise, subtractElementWise
 
インタフェース org.mklab.nfc.matrix.MatrixElementOperator から継承されたメソッド
copy, copy, determinant, getElement, getElement, mean, product, setElement, setElement, setElement, setElement, setElement, setElement, sum, trace, variance
 

コンストラクタの詳細

NumericalComplexMatrix

public NumericalComplexMatrix()
新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。


NumericalComplexMatrix

public NumericalComplexMatrix(ComplexScalar<E>[] elements)
新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。

パラメータ:
elements - 成分

NumericalComplexMatrix

public NumericalComplexMatrix(ComplexScalar<E>[][] elements)
新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。

パラメータ:
elements - 成分

NumericalComplexMatrix

public NumericalComplexMatrix(int rowSize,
                              int columnSize,
                              ComplexScalar<E>[][] elements)
新しく生成されたNumericalComplexMatrixオブジェクトを初期化します。

パラメータ:
rowSize - 行の数
columnSize - 列の数
elements - 成分
メソッドの詳細

hessenbergDecompose

public HessenbergDecomposition<NumericalMatrix<ComplexScalar<E>>> hessenbergDecompose()
インタフェース NumericalMatrixOperator の記述:
ヘッセンベルク分解を返します。

行列Aを直交行列(ユニタリ行列)Q、 ヘッセンベルグ行列 H の積に分解します。 これらの行列の間には、

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

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の hessenbergDecompose
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の hessenbergDecompose
戻り値:
ヘッセンベルク分解
関連項目:
NumericalMatrixOperator.hessenbergDecompose()

schurDecompose

public SchurDecomposition<NumericalMatrix<ComplexScalar<E>>> schurDecompose()
インタフェース NumericalMatrixOperator の記述:
Schur分解を返します。

行列をAを直交行列(ユニタリ行列)U、Schur行列 Tの積に分解します。 Schur行列Tは対角成分に行列の実固有値を持っています。 これらの行列の間には、

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

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の schurDecompose
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の schurDecompose
戻り値:
Schur分解
関連項目:
NumericalMatrixOperator.schurDecompose()

qrDecompose

public QRDecomposition<NumericalMatrix<ComplexScalar<E>>> qrDecompose()
インタフェース NumericalMatrixOperator の記述:
QR分解を返します。

行列Aを直交行列(ユニタリー行列)Qと上三角行列Rの積に分解します。これらの行列の間には、

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

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の qrDecompose
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の qrDecompose
戻り値:
QR分解
関連項目:
NumericalMatrixOperator.qrDecompose()

qrDecomposeWithPermutation

public QRDecomposition<NumericalMatrix<ComplexScalar<E>>> qrDecomposeWithPermutation()
インタフェース NumericalMatrixOperator の記述:
並べ替え付きQR分解を返します。

行列Aを置換行列 P、直交行列(ユニタリー行列)Q、上三角行列Rの積に分解します。これらの行列の間には、

A * P = Q * R
Q# * Q = I
の関係が成り立ちます。上三角行列 R の対角成分は、減少する順に並べられます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の qrDecomposeWithPermutation
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の qrDecomposeWithPermutation
戻り値:
並べ替え付きQR分解
関連項目:
NumericalMatrixOperator.qrDecomposeWithPermutation()

eigenDecompose

public EigenSolution<NumericalMatrix<?>> eigenDecompose()
インタフェース NumericalMatrixOperator の記述:
固有値を対角成分とする対角行列D、固有値に対応する固有ベクトルを横方向に並べた行列Xを返します。

これらの行列の間には、

A * X = X * D
の関係が成り立ちます。固有ベクトルはノルムが1.0となるよう正規化されます。 固有値は実部の降順に並べられます。固有ベクトルは、固有値に対応して並べられます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenDecompose
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenDecompose
戻り値:
第1成分D、第2成分XとするMatrixの配列
関連項目:
NumericalMatrixOperator.eigenDecompose()

eigenValue

public NumericalMatrix<ComplexScalar<E>> eigenValue()
インタフェース NumericalMatrixOperator の記述:
固有値を成分とする列ベクトルを返します。

固有値は、実部の降順に並べられます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenValue
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenValue
戻り値:
固有値を成分とする列ベクトル(実部について降順)
関連項目:
NumericalMatrixOperator.eigenValue()

eigenVector

public NumericalMatrix<?> eigenVector()
インタフェース NumericalMatrixOperator の記述:
(右)固有ベクトルを列とする行列を返します。

固有ベクトルはノルムが1.0となるよう正規化されます。 固有ベクトルは、固有値の実部の降順に並べられます。固有ベクトルは、固有値に対応して並べられます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenVector
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の eigenVector
戻り値:
固有ベクトル
関連項目:
NumericalMatrixOperator.eigenVector()

singularValueDecompose

public SingularValueDecomposition<NumericalMatrix<ComplexScalar<E>>> singularValueDecompose()
インタフェース NumericalMatrixOperator の記述:
特異値分解で得られる各行列を返します。

自身と同じ大きさで、負でない実数(特異値) を対角成分にもつ行列を Dとすると、

A = U * D * V#
を満たす直交行列(ユニタリ 行列) U と V を求めます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の singularValueDecompose
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の singularValueDecompose
戻り値:
特異値分解
関連項目:
NumericalMatrixOperator.singularValueDecompose()

singularValue

public NumericalMatrix<E> singularValue()
インタフェース NumericalMatrixOperator の記述:
特異値を成分とする列ベクトルを返します。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の singularValue
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の singularValue
戻り値:
特異値を成分とする列ベクトル
関連項目:
NumericalMatrixOperator.singularValue()

rank

public int rank(NumericalScalar<?> tolerance)
インタフェース NumericalMatrixOperator の記述:
ランク(階数)(toleranceより大きい特異値の数)を返します。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の rank
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の rank
パラメータ:
tolerance - 許容誤差
戻り値:
ランク
関連項目:
NumericalMatrixOperator.rank(org.mklab.nfc.scalar.NumericalScalar)

pseudoInverse

public NumericalMatrix<ComplexScalar<E>> pseudoInverse(NumericalScalar<?> tolerance)
インタフェース NumericalMatrixOperator の記述:
擬似逆行列を返します。

toleranceより小さい A の特異値をゼロとみなし、行列 A のランクを決定し、 擬似逆行列を求めます。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の pseudoInverse
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の pseudoInverse
パラメータ:
tolerance - 許容誤差
戻り値:
擬似逆行列
関連項目:
NumericalMatrixOperator.pseudoInverse(org.mklab.nfc.scalar.NumericalScalar)

maxSingularValue

public NumericalScalar<E> maxSingularValue()
インタフェース NumericalMatrixOperator の記述:
最大特異値を返します。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の maxSingularValue
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の maxSingularValue
戻り値:
最大特異値
関連項目:
NumericalMatrixOperator.maxSingularValue()

minSingularValue

public NumericalScalar<E> minSingularValue()
インタフェース NumericalMatrixOperator の記述:
最小特異値を返します。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の minSingularValue
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の minSingularValue
戻り値:
最小特異値
関連項目:
NumericalMatrixOperator.minSingularValue()

kernel

public NumericalMatrix<ComplexScalar<E>> kernel(NumericalScalar<?> tolerance)
インタフェース NumericalMatrixOperator の記述:
カーネル(零空間)を張るベクトルからなる行列を返します。

toleranceより小さい特異値をゼロと見なします。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の kernel
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の kernel
パラメータ:
tolerance - 許容誤差
戻り値:
カーネル
関連項目:
NumericalMatrixOperator.kernel(org.mklab.nfc.scalar.NumericalScalar)

isFullRank

public boolean isFullRank(NumericalScalar<?> tolerance)
インタフェース NumericalMatrixOperator の記述:
フルランクであるか判定します。

定義:
インタフェース NumericalMatrixOperator<ComplexScalar<E extends NumericalScalar<E>>> 内の isFullRank
オーバーライド:
クラス NumericalMatrix<ComplexScalar<E extends NumericalScalar<E>>> 内の isFullRank
パラメータ:
tolerance - 許容誤差
戻り値:
フルランクならばtrue、そうでなければfalse
関連項目:
NumericalMatrixOperator.isFullRank(org.mklab.nfc.scalar.NumericalScalar)