Overview   Project   Class   Tree   Deprecated   Index 
最適制御
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD

OptimizedController
Class Matrix

   in matrix.h

class Matrix


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型で、 (0,0)〜(n-1,n-1)要素が固有ベクトルの行列 (0,n)〜(n-1,n)要素が対応する固有値の列ベクトル になっています。 (固有ベクトル1,固有ベクトル2,…,固有ベクトルn,固有値)のn×(n+1)行
 Matrix< Complex< T > > eigen( const T& threshold ) const
          固有値、固有ベクトルを求めます。 返却値はMatrix >型で、 (0,0)〜(n-1,n-1)要素が固有ベクトルの行列 (0,n)〜(n-1,n)要素が対応する固有値の列ベクトル になっています。 (固有ベクトル1,固有ベクトル2,…,固有ベクトルn,固有値)のn×(n+1)行
 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

Matrix

public Matrix( const Matrix& matrix );
コピーコンストラクタ。 シャローコピーを生成します。
Parameters:
matrix - コピー元

Matrix

public Matrix( const unsigned int& rows, const unsigned int& columns ) throw( MatrixException );
Matrixクラスのコンストラクタ。 指定の行数、指定の列数で行列を生成します。 また成分はすべてT(0)で初期化されます。
Parameters:
rows - 行数
columns - 列数

~Matrix

public ~Matrix();
デストラクタ。


Method Detail

columns

public unsigned int columns() const;
列数を返します。
Returns:
(int) 列数

columnVector

public Matrix< T > columnVector( const unsigned int& column ) const throw( MatrixException );
指定した列の列ベクトルを生成します。
Parameters:
column - 列インデックス
Returns:
(Matrix) 列ベクトル

coMatrix

public Matrix< T > coMatrix( const int& row, const int& column ) const throw( MatrixException );
補行列(余因子行列)を求めます。
Parameters:
row - 行インデックス
column - 列インデックス
Returns:
(Matrix) 補行

copy

public Matrix< T > copy() const throw( MatrixException );
行列を複製(ディープコピー)します。
Returns:
(Matrix) コピー

determinant

public T determinant() const throw( MatrixException );
行列式を計算します。
Returns:
(T) 結果

divideLU

public Matrix< T > divideLU() const throw( MatrixException );
LU分解をします。 (0, 0)〜(n-1, n-1): L行列 (0, n)〜(n-1, 2n-1):U行列
Returns:
(Matrix) LU分解

eigen

public Matrix< Complex< T > > eigen() const throw( MatrixException );
固有値、固有ベクトルを求めます。 返却値はMatrix型で、 (0,0)〜(n-1,n-1)要素が固有ベクトルの行列 (0,n)〜(n-1,n)要素が対応する固有値の列ベクトル になっています。 (固有ベクトル1,固有ベクトル2,…,固有ベクトルn,固有値)のn×(n+1)行列
Returns:
(Matrix) 固有値、固有ベクトル

eigen

public Matrix< Complex< T > > eigen( const T& threshold ) const throw( MatrixException );
固有値、固有ベクトルを求めます。 返却値はMatrix >型で、 (0,0)〜(n-1,n-1)要素が固有ベクトルの行列 (0,n)〜(n-1,n)要素が対応する固有値の列ベクトル になっています。 (固有ベクトル1,固有ベクトル2,…,固有ベクトルn,固有値)のn×(n+1)行列
Parameters:
threshold - 収束判定に用いる閾値
Returns:
(Matrix) 固有値、固有ベクトル

eigen22

public void eigen22( const int& row, const int& column, Complex< T >*& upper, Complex< T >*& lower ) const throw( MatrixException );
2次小行列の固有値を求めます。
Parameters:
row - 2次小行列の左上項の行インデックス
column - 2次小行列の左上項の列インデックス
upper - 結果(固有値1)
lower - 結果(固有値2)

exchangeColumns

public Matrix< T >& exchangeColumns( const unsigned int& column1, const unsigned int& column2 );
列を入れ替えます。破壊的メソッドです。
Parameters:
column1 - 列インデックス1
column2 - 列インデックス2
Returns:
(Matrix) 自分自身

exchangeRows

public Matrix< T >& exchangeRows( const unsigned int& row1, const unsigned int& row2 ) throw( MatrixException );
行を入れ替えます。破壊的メソッドです。
Parameters:
row1 - 行インデックス1
row2 - 行インデックス2
Returns:
(Matrix) 自分自身

getI

public static Matrix< T > getI( const int& size );
指定の単位行列を生成します。

hessenberg

public Matrix< T > hessenberg() const throw( MatrixException );
ハウスホルダー変換をしてヘッセンベルク行列を得ます。
Returns:
(Matrix) ヘッセンベルク行

hessenberg

public Matrix< T > hessenberg( Matrix* transform ) const throw( MatrixException );
ハウスホルダー変換をしてヘッセンベルク行列を得ます。
Parameters:
transform - 変換に用いた行列の積を格納するポインタ
Returns:
(Matrix) ヘッセンベルク行

index

public T& index( const int& row, const int& column ) throw( MatrixException );
指定した行列成分を返します。
Parameters:
row - 行番号(開始番号は1〜)
column - 列番号(開始番号は1〜)
Returns:
(T) 成分

inverse

public Matrix< T > inverse() const throw( MatrixException );
逆行列を求めます。
Returns:
(Matrix) 逆行

isSquare

public bool isSquare() const;
正方行列かどうか調べます。
Returns:
(bool) 正方行列である場合true、それ以外の場合false

isSymmetric

public bool isSymmetric() const;
対称行列かどうか調べます。
Returns:
(bool) 対称行列である場合true、それ以外の場合false

operator()

public T& operator()( const int& row, const int& column ) throw( MatrixException );
指定した行列成分を返します。
Parameters:
row - 行インデックス(開始番号は0〜)
column - 列インデックス(開始番号は0〜)
Returns:
(T) 成分

operator*

public Matrix< T > operator*( const Matrix< T >& matrix ) const throw( MatrixException );
行列を乗算します。
Parameters:
matrix - かける行
Returns:
(Matrix) 結果

operator*

public Matrix< T > operator*( const T& scalar ) const;
行列の成分全てを指定倍します。
Parameters:
scalar - 倍数
Returns:
(Matrix) 結果

operator*=

public Matrix< T >& operator*=( const Matrix< T >& matrix ) throw( MatrixException );
行列を乗算します。破壊的メソッドです。
Parameters:
matrix - かける行
Returns:
(Matrix) 自分自身

operator*=

public Matrix< T >& operator*=( const T& scalar );
行列の成分全てを指定倍します。破壊的メソッドです。
Parameters:
scalar - 倍数
Returns:
(Matrix) 自分自身

operator+

public Matrix< T > operator+( const Matrix< T >& matrix ) const;
行列を成分ごとに加算します。
Parameters:
matrix - 加える行
Returns:
(Matrix) 結果

operator+=

public Matrix< T >& operator+=( const Matrix< T >& matrix );
行列を成分ごとに加算します。破壊的メソッドです。
Parameters:
matrix - 加える行
Returns:
(Matrix) 自分自身

operator-

public Matrix< T > operator-( const Matrix< T >& matrix ) const;
行列を成分ごとに減算します。
Parameters:
matrix - 引く行
Returns:
(Matrix) 結果

operator-

public Matrix< T > operator-() const;
単項演算子-。 効果は matrix * -1と同じです。
Returns:
(Matrix) -matrix

operator-=

public Matrix< T >& operator-=( const Matrix< T >& matrix );
行列を成分ごとに減算します。
Parameters:
matrix - 引く行
Returns:
(Matrix) 自分自身

operator/

public Matrix< T > operator/( const Matrix< T >& matrix ) const throw( MatrixException );
逆行列をかけます。
Parameters:
matrix - 行
Returns:
(Matrix) 結果

operator/

public Matrix< T > operator/( const T& scalar ) const;
行列の成分全てを除算します。
Parameters:
scalar - 倍数
Returns:
(Matrix) 結果

operator/=

public Matrix< T >& operator/=( const T& scalar );
行列の成分全てを除算します。破壊的メソッドです。
Parameters:
scalar - 倍数
Returns:
(Matrix) 自分自身

operator/=

public Matrix< T >& operator/=( const Matrix< T >& matrix ) throw( MatrixException );
逆行列をかけます。破壊的メソッドです。
Parameters:
matrix - 行
Returns:
(Matrix) 自分自身

operator=

public Matrix& operator=( const Matrix& matrix );
代入演算子。
Returns:
(Matrix) 自分自身

pivotAdd

public Matrix< T > pivotAdd( const int& row, const int& column, const Matrix& matrix ) const;
ピボットを指定して、加算します。
Parameters:
row - 行インデックス
column - 列インデックス
matrix - 足す行

pivotMerge

public Matrix< T > pivotMerge( const int& row, const int& column, const Matrix& matrix );
ピボットを指定して、加算します。 破壊的です。
Parameters:
row - 行インデックス
column - 列インデックス
matrix - 足す行

rows

public unsigned int rows() const;
行数を返します。
Returns:
(int) 行数

rowVector

public Matrix< T > rowVector( const unsigned int& row ) const throw( MatrixException );
指定した行の行ベクトルを生成します。
Parameters:
row - 行インデックス
Returns:
(Matrix) 行ベクトル

transpose

public Matrix< T > transpose() const;
行列を転置します。
Returns:
(Matrix) 転置行

 Overview   Project   Class   Tree   Deprecated   Index 
最適制御
FRAMES    NO FRAMES
SUMMARY:  INNER | FIELD | CONSTR | METHOD