CommonLibrary
0.9.5
|
連立一次方程式 [詳解]
公開型 | |
typedef T | value_type |
係数や解の型 | |
typedef SquareMatrix< T >::size_type | size_type |
係数行列のサイズに対する型 | |
typedef SquareMatrix< T >::iterator | iterator |
係数行列への反復子の型(行方向のみ利用可能) | |
typedef SquareMatrix< T >::const_iterator | const_iterator |
係数行列への定数反復子の型(行方向のみ利用可能) | |
公開メンバ関数 | |
LinearEquationSystem (size_type sz=0) | |
デフォルト・コンストラクタ [詳解] | |
template<class MATRIX , class In > | |
LinearEquationSystem (const MATRIX &coef, In s, In e) | |
係数行列と解ベクトルからのコピー [詳解] | |
LinearEquationSystem (const SquareMatrix< T > &coef) | |
係数行列からのコピー [詳解] | |
LinearEquationSystem (const SymmetricMatrix< T > &coef) | |
係数行列からのコピー [詳解] | |
LinearEquationSystem (const LinearEquationSystem< T > &les) | |
コピー・コンストラクタ [詳解] | |
template<class MATRIX , class In > | |
void | init (const MATRIX &coef, In s, In e) |
係数行列と解ベクトルの初期化 [詳解] | |
size_type | size () const |
未知数の数(=方程式の数)を返す [詳解] | |
void | resize (size_type sz, value_type val=value_type()) |
未知数の数(=方程式の数)を変更する [詳解] | |
void | swapEquation (size_type e1, size_type e2) |
方程式の入れ換え(係数行列の行と解の入れ替え) [詳解] | |
void | swapCoef (size_type c1, size_type c2) |
係数の入れ換え(係数行列の列の入れ替え) [詳解] | |
void | sub (size_type src, T val, size_type dest) |
指定した方程式を定数倍して他の方程式から引く [詳解] | |
void | div (size_type r, T val) |
指定した方程式を定数で割る [詳解] | |
iterator | operator[] (size_type r) |
指定した行番号の係数行列への反復子を返す [詳解] | |
const_iterator | operator[] (size_type r) const |
指定した行番号の係数行列への定数反復子を返す [詳解] | |
value_type & | coef (size_type r, size_type c) |
係数の値への参照を返す [詳解] | |
value_type | coef (size_type r, size_type c) const |
係数の値を返す [詳解] | |
value_type & | ans (size_type i) |
解の値への参照を返す [詳解] | |
value_type | ans (size_type i) const |
解の値を返す [詳解] | |
LinearEquationSystem & | operator= (const LinearEquationSystem< T > &les) |
代入演算子の多重定義 [詳解] | |
void | print (std::ostream &os) const |
連立方程式を出力する [詳解] | |
void | printAns (std::ostream &os) const |
連立方程式の解のみを出力する [詳解] | |
void | printCoef (std::ostream &os) const |
連立方程式の係数行列のみを出力する [詳解] | |
連立一次方程式
連立方程式 Ax = y を定義するためのクラス。A は係数行列、x は未知数、y は解をそれぞれ表す。
|
inlineexplicit |
デフォルト・コンストラクタ
sz | 方程式(未知数)の数 |
|
inline |
係数行列と解ベクトルからのコピー
係数行列は正方行列 ( SquareMatrix, SymmetricMatrix ) である必要がある。
coef | 対象の係数行列 |
s | 解ベクトルの開始位置 |
e | 解ベクトルの末尾の次の位置 |
|
inlineexplicit |
係数行列からのコピー
解ベクトルの内容は全て T() に初期化される。
coef | 対象の係数行列 |
|
inlineexplicit |
係数行列からのコピー
解ベクトルの内容は全て T() に初期化される。
coef | 対象の係数行列 |
|
inline |
コピー・コンストラクタ
les | コピー元のオブジェクト |
void LinearEquationSystem< T >::init | ( | const MATRIX & | coef, |
In | s, | ||
In | e | ||
) |
係数行列と解ベクトルの初期化
係数行列は正方行列 ( SquareMatrix, SymmetricMatrix ) である必要がある。
coef | 対象の係数行列 |
s | 解ベクトルの開始位置 |
e | 解ベクトルの末尾の次の位置 |
|
inline |
未知数の数(=方程式の数)を返す
|
inline |
未知数の数(=方程式の数)を変更する
係数行列と解ベクトルの内容は全て T() に初期化される。
sz | 未知数の数(=方程式の数) |
val | 係数と解の初期値 |
void LinearEquationSystem< T >::swapEquation | ( | size_type | e1, |
size_type | e2 | ||
) |
方程式の入れ換え(係数行列の行と解の入れ替え)
式の入れ替えだけなので、連立方程式としては変化しない。
e1 | 入れ替える対象の方程式1 |
e2 | 入れ替える対象の方程式2 |
void LinearEquationSystem< T >::swapCoef | ( | size_type | c1, |
size_type | c2 | ||
) |
係数の入れ換え(係数行列の列の入れ替え)
係数の入れ替えなので未知数の位置が変化するが、その管理は行わない。 そのため、入れ替え時に外部で管理する必要がある。
c1 | 入れ替える対象の係数1 |
c2 | 入れ替える対象の係数2 |
void LinearEquationSystem< T >::sub | ( | size_type | src, |
T | val, | ||
size_type | dest | ||
) |
指定した方程式を定数倍して他の方程式から引く
連立方程式としては変化しない。
src | 対象の方程式の添字 |
dest | 被演算対象の方程式の添字 |
val | 定数 |
void LinearEquationSystem< T >::div | ( | size_type | r, |
T | val | ||
) |
指定した方程式を定数で割る
連立方程式としては変化しない。
r | 対象の方程式の添字 |
val | 定数 |
|
inline |
指定した行番号の係数行列への反復子を返す
反復子を使って係数を変更した場合、変更前の連立方程式と同一である保証はなくなる。
r | 行番号 |
|
inline |
指定した行番号の係数行列への定数反復子を返す
r | 行番号 |
|
inline |
係数の値への参照を返す
係数を変更した場合、変更前の連立方程式と同一である保証はなくなる。
r | 方程式の番号(行番号) |
c | 未知数の番号(列番号) |
|
inline |
係数の値を返す
r | 方程式の番号(行番号) |
c | 未知数の番号(列番号) |
|
inline |
解の値への参照を返す
解を変更した場合、変更前の連立方程式と同一である保証はなくなる。
i | 対象の解に対する添字 |
|
inline |
解の値を返す
i | 対象の解に対する添字 |
|
inline |
代入演算子の多重定義
les | 代入するオブジェクト |
void LinearEquationSystem< T >::print | ( | std::ostream & | os | ) | const |
連立方程式を出力する
os | 対象の出力ストリーム |
void LinearEquationSystem< T >::printAns | ( | std::ostream & | os | ) | const |
連立方程式の解のみを出力する
os | 対象の出力ストリーム |
void LinearEquationSystem< T >::printCoef | ( | std::ostream & | os | ) | const |
連立方程式の係数行列のみを出力する
os | 対象の出力ストリーム |