Спасибо ребятам, которые предложили Alglib, но соглашение об именах написано в стиле c ++, и я не нашел его простым в использовании!
Вместо этого я нашел блестящую библиотеку с открытым исходным кодом под названием Accord.Math . Он предоставляет фантастический API для математики, который очень хорошо удовлетворяет мои потребности.
Сначала я нашел нормализованный код разложения EigenValue здесь , но, очевидно, он уже добавлен в библиотеку Accord.Math.
Мой код выглядит так:
var gevd = new EigenvalueDecomposition(rect);
var V = gevd.Eigenvectors;
var D = gevd.DiagonalMatrix;
Он также предоставляет другие типы разложений: