Ruby 1.9.0 リファレンスマニュアル > ライブラリ一覧 > matrixライブラリ > Matrixクラス
クラスの継承リスト: Matrix < Object < Kernel < BasicObject
(数Numericを要素とする)行列を扱うクラス
行列
m×n個の数a(i,j)を
[ a(0,0) a(0,1) a(0,2) a(0,3) ... a(0,n-1) ] [ a(1,0) a(1,1) a(1,2) a(1,3) ... a(1,n-1) ] [ a(2,0) a(2,1) a(2,2) a(2,3) ... a(2,n-1) ] [ ] [ a(m-1,0) a(m-1,n-1) ]
のように、縦横の表にあらわしたものを(m,n)型の行列という。 m=nの行列をm次の正方行列(square matrix)という。
上からi番目の横の数の並びを第i行(the i-th row)、 左からj番目の縦の数の並びを第j列(the j-th column)という。
(m,n)型行列は、 大きさnの行(横)ベクトルをm個縦に並べたものとみなすこともできるし、 大きさmの列(縦)ベクトルをn個横に並べたものとみなすこともできる。
第i行、第j列にある数a(i,j)を(i,j)要素(the (i,j)-th element)という。
i=jの要素a(i,j)を対角要素(diagonal element)、 それ以外の要素を非対角要素(nondiagonal element)という。
require 'complex'することによって、 Matrixオブジェクトの要素はComplexクラスに拡張される。 多くのメソッドは、この拡張されたMatrixクラスでも、期待通りに動作する。
次の例は、各要素を共役複素数に置換するメソッド(Matrix#conjugate)である。
require 'matrix'
require 'complex'
class Matrix
def conjugate
collect{|e| e.conjugate }
end
end
| 定義 | 説明 | |
|---|---|---|
identity(n)
|
n次の単位行列を生成する。 |
|
self[rows]
|
rowsを要素とする行列を生成する。 ただし、引数rowsはネストした配列(=配列の配列)である。 |
|
column_vector(column)
|
要素がcolumnの(n,1)型の行列(列ベクトル)を生成する。 ここで、引数columnは、Vector または Array で与えられる。 |
|
columns(columns)
|
columnsを列ベクトルの集合とする行列を生成する。 |
|
diagonal(values)
|
対角要素がvalues(オブジェクトの並び)で、非対角要素が全て0であるような 正方行列を生成する。 |
|
row_vector(row)
|
要素がrowの(1,n)型の行列(行ベクトル)を生成する。 ここで、引数rowは、Vector または Array で与えられる。 |
|
rows(rows, copy = true)
|
rowsを要素とする行列を生成する。 ただし、引数rowsはネストした配列(=配列の配列)である。 また、オプション引数 copy が偽(false)ならば、複製を行わない。 |
|
scalar(n, value)
|
対角要素が全てvalue(数)で、非対角要素が全て0であるようなn次の正方行列を生成する。 |
|
zero(n)
|
n次の零行列を生成する。 零行列とは、要素が全て0の行列である。 |
|
| 定義 | 説明 | |
|---|---|---|
self * m
|
行列mを右から乗じた行列を返す。 |
|
self ** n
|
スカラーnに対するべき乗を返す。 |
|
self + m
|
行列mを加えた行列を返す。 |
|
self - m
|
行列mを減じた行列を返す。 |
|
self / m
|
行列mの逆行列を右から乗じた行列を返す。 |
|
self == other
|
自分自身と other を比較します。 |
|
self[i, j]
|
(i,j)要素を返す。 |
|
clone
|
自分自身のコピーを返します。 |
|
coerce(other)
|
FIXME: describe #coerce. |
|
collect {|x| ... }
|
行列の各要素に対してブロックの適用を繰り返した結果を、要素として持つ行列を生成する。 |
|
column(j)
|
第j番目の列ベクトルを返す。 ブロックが与えられたときは、各列ベクトルについて、ブロックを繰り返す。 |
|
column_size
|
列の大きさを返す。 |
|
column_vectors
|
行ベクトルの配列を返す。 |
|
compare_by_row_vectors(rows)
|
Not really intended for general consumption. |
|
determinant
|
行列式 (determinant) を返す。 |
|
determinant_e
|
行列式 (determinant) を返します。 |
|
elements_to_f
|
各要素を浮動小数点数 Float に変換した行列を返します。 |
|
elements_to_i
|
各要素を整数 Integer に変換した行列を返します。 |
|
elements_to_r
|
各要素を有理数 Rational に変換した行列を返します。 |
|
hash
|
Hash値を返します。 |
|
inspect
|
自分自身を見やすい形式に文字列化し、その文字列を返します。 |
|
inverse
|
逆行列を返す。 |
|
inverse_from(src)
|
Not for public consumption? |
|
minor(from_row,row_size,from_col,col_size)
|
部分行列を返す。たたし、パラメータは、次の方法で指定する。
|
|
rank
|
階数 (rank) を返す。 |
|
rank_e
|
階数 (rank) を返します。 |
|
regular?
|
正則(regular)なら真を返す。 |
|
row(i)
|
第i番目の行ベクトルを返す。 ブロックが与えられたときは、各行ベクトルについて、ブロックを繰り返す。 |
|
row_size
|
行の大きさを返す。 |
|
row_vectors
|
列ベクトルの配列を返す。 |
|
singular?
|
特異(singular)である、すなわち、正則でないなら真を返す。 |
|
square?
|
正方行列であるなら、真を返す。 |
|
transpose
|
転置行列 (transpose matrix) を返す。 冒頭に掲げた行列に対して、 a(j,i) を (i,j) 要素とする (n,m) 型行列を転置行列という。 |
|
to_a
|
Arrayに変換する。 結果は、ネストした配列(配列の配列)となる。 |
|
to_s
|
行列を文字列化し、その文字列を返します。 |
|
trace
|
トレース (trace) を返す。 行列のトレース (trace) とは、対角要素の和である。 |
|
!
!=
===
=~
__id__
__send__
_dump
class
clone
dclone
display
enum_for
equal?
extend
freeze
frozen?
initialize
initialize_copy
instance_eval
instance_exec
instance_of?
instance_variable_defined?
instance_variable_get
instance_variable_set
instance_variables
is_a?
marshal_dump
marshal_load
method
method_missing
methods
nil?
pretty_inspect
pretty_print
pretty_print_cycle
pretty_print_inspect
pretty_print_instance_variables
private_methods
protected_methods
public_methods
remove_instance_variable
respond_to?
singleton_method_added
singleton_method_removed
singleton_method_undefined
singleton_methods
taint
tainted?
tap
to_ary
to_hash
to_int
to_io
to_proc
to_regexp
to_splat
to_str
to_yaml
to_yaml_properties
to_yaml_style
untaint
.new