figure
クラス SparseMatrix

java.lang.Object
  上位を拡張 figure.AbstractMatrix
      上位を拡張 figure.SparseMatrix
すべての実装されたインタフェース:
Matrix, java.lang.Cloneable
直系の既知のサブクラス:
SparseMatrixSolver

public class SparseMatrix
extends AbstractMatrix

疎行列クラス
0 でない成分のみデータを保持する


入れ子のクラスの概要
static class SparseMatrix.Data
          成分データクラス
static class SparseMatrix.RowData
          行データクラス
 
フィールドの概要
protected  int columnCount
          列の数
protected  int rowCount
          行の数
protected  SparseMatrix.RowData[] rowdata
          行データを格納した配列
 
クラス figure.AbstractMatrix から継承されたフィールド
dataMax, TOLERANCE
 
コンストラクタの概要
SparseMatrix(int size)
          正方行列を構築する
SparseMatrix(int rowCount, int columnCount)
          行列を構築する
 
メソッドの概要
 void add(int row, int column, double value)
          成分に値を加える
 void add(Matrix m)
          行列を加える
 java.lang.Object clone()
          オブジェクトのコピーを返す
 int columnCount()
          列の数を返す
 int columnCount(int row)
          成分が 0 でない列の数を返す
 Matrix eliminateRowColumn(int row, int column)
          指定した行・列を消去した行列を返す
 Matrix extructRowColumn(int size, int[] rows, int[] columns)
          指定した行・列を取り出した行列を返す
 double get(int row, int column)
          成分を返す
 SparseMatrix.Data getData(int row, int column)
          成分データを返す
 double getDiagonal(int row)
          対角成分を返す
 int getDiagonalColumn(int row)
          対角成分データの列インデックスを返す
 int getNonZeroCount()
          0 でない成分の数を返す
 SparseMatrix.RowData getRowData(int row)
          行データを返す
 void init()
          行列を初期化する
 void mul(double value)
          スカラーを掛ける
static Matrix mul(Matrix left, Matrix right)
          行列の積を計算する
 Vector mul(Vector v)
          この行列とベクトルの積を返す
 int rowCount()
          行の数を返す
 void set(int row, int column, double value)
          成分に値を設定する
 void setRowData(int row, SparseMatrix.RowData rowdata)
          行データを設定する
 Matrix transposition()
          転置行列を返す
static Matrix unitMatrix(int size)
          単位行列を返す
 
クラス figure.AbstractMatrix から継承されたメソッド
checkRange, determinant, equals, getColumnVector, getColumnVectors, getRowVector, getRowVectors, hashCode, isSymmetry, toString, toStrings, trace
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

rowCount

protected int rowCount
行の数


columnCount

protected int columnCount
列の数


rowdata

protected SparseMatrix.RowData[] rowdata
行データを格納した配列

コンストラクタの詳細

SparseMatrix

public SparseMatrix(int size)
正方行列を構築する

パラメータ:
size - 行列の大きさ

SparseMatrix

public SparseMatrix(int rowCount,
                    int columnCount)
行列を構築する

パラメータ:
rowCount - 行の数
columnCount - 列の数
メソッドの詳細

rowCount

public int rowCount()
行の数を返す

戻り値:
行の数

columnCount

public int columnCount()
列の数を返す

戻り値:
列の数

columnCount

public int columnCount(int row)
成分が 0 でない列の数を返す

パラメータ:
row - 行
戻り値:
指定された行で成分が 0 でない列の数

getNonZeroCount

public int getNonZeroCount()
0 でない成分の数を返す

戻り値:
0 でない成分の数

get

public double get(int row,
                  int column)
成分を返す

パラメータ:
row - 行
column - 列
戻り値:
指定された位置の成分

getDiagonal

public double getDiagonal(int row)
対角成分を返す

パラメータ:
row - 行
戻り値:
指定された行の対角成分

getData

public SparseMatrix.Data getData(int row,
                                 int column)
成分データを返す

パラメータ:
row - 行
column - 列
戻り値:
指定された位置の成分データ

getDiagonalColumn

public int getDiagonalColumn(int row)
対角成分データの列インデックスを返す

パラメータ:
row - 行
戻り値:
指定された行の対角成分データの列インデックス

getRowData

public SparseMatrix.RowData getRowData(int row)
行データを返す

パラメータ:
row - 行
戻り値:
指定された行の成分データを格納したリスト

set

public void set(int row,
                int column,
                double value)
成分に値を設定する

パラメータ:
row - 行
column - 列
value - 設定する値

setRowData

public void setRowData(int row,
                       SparseMatrix.RowData rowdata)
行データを設定する

パラメータ:
row - 行
rowdata - 加える行データ

add

public void add(int row,
                int column,
                double value)
成分に値を加える

パラメータ:
row - 行
column - 列
value - 加える値

add

public void add(Matrix m)
行列を加える

パラメータ:
m - 加える行列

mul

public void mul(double value)
スカラーを掛ける

パラメータ:
value - 掛けるスカラー値

mul

public static Matrix mul(Matrix left,
                         Matrix right)
行列の積を計算する

パラメータ:
left - 左側の行列
right - 右側の行列
戻り値:
2 つの行列の積

init

public void init()
行列を初期化する


unitMatrix

public static Matrix unitMatrix(int size)
単位行列を返す

パラメータ:
size - 正方行列の大きさ
戻り値:
指定された大きさの単位行列

transposition

public Matrix transposition()
転置行列を返す

戻り値:
この行列の転置行列

mul

public Vector mul(Vector v)
この行列とベクトルの積を返す

パラメータ:
v - この行列に右から掛けるベクトル
戻り値:
積のベクトル

eliminateRowColumn

public Matrix eliminateRowColumn(int row,
                                 int column)
指定した行・列を消去した行列を返す

パラメータ:
row - 行
column - 列
戻り値:
この行列から指定された行・列を消去した行列

extructRowColumn

public Matrix extructRowColumn(int size,
                               int[] rows,
                               int[] columns)
指定した行・列を取り出した行列を返す

パラメータ:
size - 正方行列の大きさ
rows - 行のインデックスを格納した配列
columns - 列のインデックスを格納した配列
戻り値:
この行列から指定された行・列を取り出した行列

clone

public java.lang.Object clone()
オブジェクトのコピーを返す

定義:
インタフェース Matrix 内の clone
オーバーライド:
クラス AbstractMatrix 内の clone
戻り値:
このインスタンスの複製