Библиотеки DotNetMatrix и MathNet.Numerics - C#
Формулировка задачи:
мне нужно написать прожку, чтобы пользователь вбивал матрицу, а возвращать соответственно собственные вектора (правые и левые). Пытал следующие библиотеки:
1) alglib - но в сравнении с маткадом очень разнятся значения
2) DotNetMatrix - не нашел нормальной документации, использовал функцию SVD(), но тоже чет как-то не было совпадения с маткадом
3) MathNet.Numerics, так и не могу в ней разобраться, изобилие классов и методов сбивают меня с толку.
Прошу помочь, либо я неверную функцию вызываю в библ DotNetMatri, подскажите нужную, либо скажите что вызывать в MathNet.Numerics
Почти не работал с библиотеками, все всегда вручную, а тут надо срочно сдать задание, времени просто нет писать, отлаживать
Решение задачи: «Библиотеки DotNetMatrix и MathNet.Numerics»
textual
Листинг программы
using System;
using MathNet.Numerics.LinearAlgebra;
using MathNet.Numerics.LinearAlgebra.Double;
class Program
{
static void Main(string[] args)
{
double[,] data = new double[,]
{
{ 2, 0, 3},
{ 10, -3, -6},
{ -1, 0, -2}
};
Matrix<double> matrix = DenseMatrix.OfArray(data);
Console.WriteLine(matrix);
var eigen = matrix.Evd();
var values = eigen.EigenValues.Enumerate().GetEnumerator();
var vectors = eigen.EigenVectors.EnumerateColumns().GetEnumerator();
while (vectors.MoveNext() && values.MoveNext())
{
Console.WriteLine("Собственный вектор при {0}:\n{1}",
values.Current, vectors.Current);
}
Console.ReadKey();
}
}