密行列の特異値分解を計算する必要がありますが、使用しているパッケージに含まれていないようです: MathNet.Numerics x86 v2.4.0.26
Nugetパッケージマネージャーからダウンロードしました。
この質問Svd recompositionを参照しています。
リンクされた回答に含まれる構文は次のとおりです。
var m = DenseMatrix.OfArray(new double[,] {
{ 3, 0, 0, 0, 0 },
{ 0, 2, 4, 0, 0 },
{ 0, 4, 5, -4, 5 },
{ 0, 0, -4, -8, 12},
{ 0, 0, 5, 12, -5 }});
var svd = m.Svd(true); //The method Svd() doesn't seem to be available in v2.4
svd.U() * svd.W() * svd.VT()
MathNet.Numerics x86 ライブラリを使用して DenseMatrix の SVD を生成する簡単な例を探しています。
残念ながら、メソッドinverse()
は NaN を返すだけなので、特異値分解を使用して逆数を近似したいと考えています。