Mol(Math Object Library) fot .Net
A を (m × n) の一般行列として、A の特異値分解 (SVD) を実行します。
A の特異値分解は A = UΣVH の形に分解することです(VHは行列 V の複素共役転置)。
ここで、U (m × m) と V (n × n) は、ユニタリ行列 (A が複素行列の場合) または直交行列 (Aが実行列の場合)です。
Σ は、次に示す対角成分σi を持つm × n の対角行列(対角成分のみの帯行列でAが複素数の場合は対角要素の虚数部は全てゼロ)になります。
σ1 ≥ σ2 ≥ ... ≥ σmin(m, n) ≥ 0
ここで σi は、 A の特異値となります。また、非ゼロの特異値の個数は A の階数(Rank)となります。
さらに A の条件数(Condition number)は 最大特異値/最小特異値 で表現可能です。
行列 U と V の先頭から min(m, n) の列は、それぞれ、A の左特異ベクトルと右特異ベクトルとなります。
対応する特異値と特異ベクトルは、Avi = σiui かつ AHui = σivi
を満たします。ここで ui と vi は、 それぞれ、U と V の i 番目の成分です。
※現時点の特異値分解計算では疎な行列はサポートしていません。
名前空間: Molアッセンブリー: Mol.Net (in Mol.Net.dll)
構文
C# |
---|
public sealed class SvdSolver : _Mol |
Visual Basic |
---|
Public NotInheritable Class SvdSolver
Inherits _Mol |
Visual C++ |
---|
public ref class SvdSolver sealed : public _Mol |
|
---|
[<SealedAttribute>]
type SvdSolver =
class
inherit _Mol
end |
派生階層
参照