Библиотеки 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();
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5