Мне нужно рассчитать разложение по сингулярным значениям плотной матрицы, но, похоже, оно не включено в пакет, который я использую: 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()
Также нет svd()
в списке документация.
Я ищу простой пример создания SVD DenseMatrix с использованием библиотеки MathNet.Numerics x86.
К сожалению, метод inverse()
просто возвращает NaN, поэтому я надеюсь аппроксимировать обратное, используя разложение по сингулярным значениям.