/* -*- MaTX -*- * * 【名前】 * kernel() - カーネル(零空間) * * 【形式】 * K = kernel(A) * Matrix K; * Matrix A; * * K = kernel(A,tol) * Matrix K; * Matrix A; * Real tol; * * 【機能説明】 * S = kernel(A)は,行列 A のカーネル(零空間)を張るベクトルからなる * 行列を求める。Cols(A) - rank(A) = Cols(S) の関係が成り立つ。 * kernel(A,tol) は,tol より小さい A の特異値をゼロと見なし, * カーネルを求める。 * * 【アルゴリズム】 * 特異値分解を利用する。 * * 【注意】 * 繰り返し計算で特異値が求まらない場合は,次のメッセージが表示される。 * * Solution will not converge * * 【例題】 * >> A = [[1 2 3][4 5 6]]; * >> S = kernel(A) * === [S] : ( 3, 1) === * ( 1) * ( 1) 4.08248290E-01 * ( 2) -8.16496581E-01 * ( 3) 4.08248290E-01 * >> A * S * === [ans] : ( 2, 1) === * ( 1) * ( 1) -5.55111512E-16 * ( 2) -6.66133815E-16 * * 【関連項目】 * svd() * */