|
最適制御 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Constructor Summary | |
Matrix( const Matrix& matrix )
コピーコンストラクタ。 シャローコピーを生成します。 |
|
Matrix( const unsigned int& rows, const unsigned int& columns )
Matrixクラスのコンストラクタ。 指定の行数、指定の列数で行列を生成します。 また成分はすべてT(0)で初期化されます。 |
|
~Matrix()
デストラクタ。 |
Method Summary | |
unsigned int |
columns() const
列数を返します。 |
Matrix< T > |
columnVector( const unsigned int& column ) const
指定した列の列ベクトルを生成します。 |
Matrix< T > |
coMatrix( const int& row, const int& column ) const
補行列(余因子行列)を求めます。 |
Matrix< T > |
copy() const
行列を複製(ディープコピー)します。 |
T |
determinant() const
行列式を計算します。 |
Matrix< T > |
divideLU() const
LU分解をします。 (0, 0)〜(n-1, n-1): L行列 (0, n)〜(n-1, 2n-1):U行 |
Matrix< Complex< T > > |
eigen() const
固有値、固有ベクトルを求めます。 返却値はMatrix |
Matrix< Complex< T > > |
eigen( const T& threshold ) const
固有値、固有ベクトルを求めます。 返却値はMatrix |
void |
eigen22( const int& row, const int& column, Complex< T >*& upper, Complex< T >*& lower ) const
2次小行列の固有値を求めます。 |
Matrix< T >& |
exchangeColumns( const unsigned int& column1, const unsigned int& column2 )
列を入れ替えます。破壊的メソッドです。 |
Matrix< T >& |
exchangeRows( const unsigned int& row1, const unsigned int& row2 )
行を入れ替えます。破壊的メソッドです。 |
static Matrix< T > |
getI( const int& size )
指定の単位行列を生成します。 |
Matrix< T > |
hessenberg() const
ハウスホルダー変換をしてヘッセンベルク行列を得ます。 |
Matrix< T > |
hessenberg( Matrix* transform ) const
ハウスホルダー変換をしてヘッセンベルク行列を得ます。 |
T& |
index( const int& row, const int& column )
指定した行列成分を返します。 |
Matrix< T > |
inverse() const
逆行列を求めます。 |
bool |
isSquare() const
正方行列かどうか調べます。 |
bool |
isSymmetric() const
対称行列かどうか調べます。 |
T& |
operator()( const int& row, const int& column )
指定した行列成分を返します。 |
Matrix< T > |
operator*( const Matrix< T >& matrix ) const
行列を乗算します。 |
Matrix< T > |
operator*( const T& scalar ) const
行列の成分全てを指定倍します。 |
Matrix< T >& |
operator*=( const Matrix< T >& matrix )
行列を乗算します。破壊的メソッドです。 |
Matrix< T >& |
operator*=( const T& scalar )
行列の成分全てを指定倍します。破壊的メソッドです。 |
Matrix< T > |
operator+( const Matrix< T >& matrix ) const
行列を成分ごとに加算します。 |
Matrix< T >& |
operator+=( const Matrix< T >& matrix )
行列を成分ごとに加算します。破壊的メソッドです。 |
Matrix< T > |
operator-( const Matrix< T >& matrix ) const
行列を成分ごとに減算します。 |
Matrix< T > |
operator-() const
単項演算子-。 効果は matrix * -1と同じです。 |
Matrix< T >& |
operator-=( const Matrix< T >& matrix )
行列を成分ごとに減算します。 |
Matrix< T > |
operator/( const Matrix< T >& matrix ) const
逆行列をかけます。 |
Matrix< T > |
operator/( const T& scalar ) const
行列の成分全てを除算します。 |
Matrix< T >& |
operator/=( const T& scalar )
行列の成分全てを除算します。破壊的メソッドです。 |
Matrix< T >& |
operator/=( const Matrix< T >& matrix )
逆行列をかけます。破壊的メソッドです。 |
Matrix& |
operator=( const Matrix& matrix )
代入演算子。 |
Matrix< T > |
pivotAdd( const int& row, const int& column, const Matrix& matrix ) const
ピボットを指定して、加算します。 |
Matrix< T > |
pivotMerge( const int& row, const int& column, const Matrix& matrix )
ピボットを指定して、加算します。 破壊的です。 |
unsigned int |
rows() const
行数を返します。 |
Matrix< T > |
rowVector( const unsigned int& row ) const
指定した行の行ベクトルを生成します。 |
Matrix< T > |
transpose() const
行列を転置します。 |
Constructor Detail |
public Matrix( const Matrix& matrix );
matrix
- コピー元public Matrix( const unsigned int& rows, const unsigned int& columns ) throw( MatrixException );
rows
- 行数
columns
- 列数public ~Matrix();
Method Detail |
public unsigned int columns() const;
public Matrix< T > columnVector( const unsigned int& column ) const throw( MatrixException );
column
- 列インデックスpublic Matrix< T > coMatrix( const int& row, const int& column ) const throw( MatrixException );
row
- 行インデックス
column
- 列インデックスpublic Matrix< T > copy() const throw( MatrixException );
public T determinant() const throw( MatrixException );
public Matrix< T > divideLU() const throw( MatrixException );
public Matrix< Complex< T > > eigen() const throw( MatrixException );
public Matrix< Complex< T > > eigen( const T& threshold ) const throw( MatrixException );
threshold
- 収束判定に用いる閾値public void eigen22( const int& row, const int& column, Complex< T >*& upper, Complex< T >*& lower ) const throw( MatrixException );
row
- 2次小行列の左上項の行インデックス
column
- 2次小行列の左上項の列インデックス
upper
- 結果(固有値1)
lower
- 結果(固有値2)public Matrix< T >& exchangeColumns( const unsigned int& column1, const unsigned int& column2 );
column1
- 列インデックス1
column2
- 列インデックス2public Matrix< T >& exchangeRows( const unsigned int& row1, const unsigned int& row2 ) throw( MatrixException );
row1
- 行インデックス1
row2
- 行インデックス2public static Matrix< T > getI( const int& size );
public Matrix< T > hessenberg() const throw( MatrixException );
public Matrix< T > hessenberg( Matrix* transform ) const throw( MatrixException );
transform
- 変換に用いた行列の積を格納するポインタpublic T& index( const int& row, const int& column ) throw( MatrixException );
row
- 行番号(開始番号は1〜)
column
- 列番号(開始番号は1〜)public Matrix< T > inverse() const throw( MatrixException );
public bool isSquare() const;
public bool isSymmetric() const;
public T& operator()( const int& row, const int& column ) throw( MatrixException );
row
- 行インデックス(開始番号は0〜)
column
- 列インデックス(開始番号は0〜)public Matrix< T > operator*( const Matrix< T >& matrix ) const throw( MatrixException );
matrix
- かける行public Matrix< T > operator*( const T& scalar ) const;
scalar
- 倍数public Matrix< T >& operator*=( const Matrix< T >& matrix ) throw( MatrixException );
matrix
- かける行public Matrix< T >& operator*=( const T& scalar );
scalar
- 倍数public Matrix< T > operator+( const Matrix< T >& matrix ) const;
matrix
- 加える行public Matrix< T >& operator+=( const Matrix< T >& matrix );
matrix
- 加える行public Matrix< T > operator-( const Matrix< T >& matrix ) const;
matrix
- 引く行public Matrix< T > operator-() const;
public Matrix< T >& operator-=( const Matrix< T >& matrix );
matrix
- 引く行public Matrix< T > operator/( const Matrix< T >& matrix ) const throw( MatrixException );
matrix
- 行public Matrix< T > operator/( const T& scalar ) const;
scalar
- 倍数public Matrix< T >& operator/=( const T& scalar );
scalar
- 倍数public Matrix< T >& operator/=( const Matrix< T >& matrix ) throw( MatrixException );
matrix
- 行public Matrix& operator=( const Matrix& matrix );
public Matrix< T > pivotAdd( const int& row, const int& column, const Matrix& matrix ) const;
row
- 行インデックス
column
- 列インデックス
matrix
- 足す行public Matrix< T > pivotMerge( const int& row, const int& column, const Matrix& matrix );
row
- 行インデックス
column
- 列インデックス
matrix
- 足す行public unsigned int rows() const;
public Matrix< T > rowVector( const unsigned int& row ) const throw( MatrixException );
row
- 行インデックスpublic Matrix< T > transpose() const;
|
最適制御 | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |