2008-07-01から1ヶ月間の記事一覧

LU分解

LU分解 (LU decomposition) の用途: 連立方程式を解くなど.正方行列でなくともよい.

コレスキー分解

コレスキー分解 (Cholesky decomposition) の用途: サンプルデータの前処理, Ax = b の数値解,モンテカルロ法,カルマンフィルタなど(一部 Cholesky decomposition - Wikipedia, the free encyclopedia より). 正定値エルミート行列 (実数値行列なら…

特異値分解

特異値分解 (Singular value decomposition, SVD) の用途: 主成分分析,疑似逆行列の計算,機械学習,パタン認識,数値解析など.任意の形の行列を分解できる.

固有値分解

固有値分解 (Eigendecomposition) の用途: 主成分分析など多数. 正方行列 に対してのみ適用可能(非正方の場合は特異値分解).

行列式

行列式 (determinant) の計算は,例えば多次元のガウス関数を扱うときなどに必要だ.

逆行列,疑似逆行列

行列 (Matrix/ComplexMatrix) A が正則の場合には A.inverse() で逆行列が求められる.非正則の場合には A.pseudo_inverse() で疑似逆行列(ムーア・ペンローズ型の一般逆行列)が求められる.

liboctave の基礎:コンパイルと型と基本演算

liboctave には「行列型 Matrix」や「列ベクトル型 ColumnVector」がクラスとして実装されていて, これらの間の足し算や割算が operator として定義されている . だから,行列の複雑な演算がとてもシンプルに書くことができるのは,容易に想像がつくだろう…

liboctave で数値計算(リンクとインストール)

C++ で行列演算がメインの数値計算をしたいとき(ロボティクスとか機械学習の分野などで),いちいち自分で逆行列とかの基本的な演算を自分で実装してたら埓があかない.何かライブラリを利用したい.ここでは Matlab と互換性が(それなりに)ある octave を …

N整数変数のループ生成クラス

x, y をそれぞれ (0,49), (0,20) の範囲で繰り返したい場合は,2重に for ループを書けばよい.変数が x, y, z なら3重にforループを書く.NならN重ループ.このNが何らかの事情でコンパイル以前に決められない場合はどうしよう.

コマンドラインからクリップボードにコピー

コマンドラインで,例えば pwd などで出力させた文字列をクリップボードにコピーする方法は,