![](/img/trans.png)
[英]Entity Framework 6 Persist a MathNet.Numerics Matrix
[英]Large Sparse Matrix Calculation - MathNet Numerics
我开始使用MathNet数值库 ,我需要它来计算与邻接矩阵的特征向量相对应的最大特征值。
当使用大量点时,邻接矩阵会变得非常大(即5782x5782条目)
大多数条目为“ 0”,所以我认为我可以使用“ SparseMatrix”。 但是,当我使用它时,仍然需要花一些时间进行计算。 实际上,我从来没有真正等了那么久才完成。 我在matlab中尝试了整个过程,没有任何问题。 Matlab在几秒钟内解决了它。
您对我有什么建议吗?
这是我在做什么:
// initialize matrix and fill it with zeros
Matrix<double> A = SparseMatrix.Create(count, count, 0);
... fill matrix with values ...
// get eigenvalues and eigenvectors / this part takes centuries =)
Evd<double> eigen = A.Evd(Symmetricity.Symmetric);
Vector<Complex> eigenvector = eigen.EigenValues;
Math.Net Numerics的实现完全基于C#。 因此,性能可能无法与MATLAB之类的工具相提并论,因为它们主要依赖于本机且经过高度优化的BLAS库来执行数值计算。
您可能要使用Math.Net随附的本机包装,这些包装使用了高度优化的线性代数库(例如Intel的MKL或AMD的ACML)。 这个MSDN页面上有一个指南,说明了如何构建具有ACML支持的Math.NET(请参见Math.NET Numerics中的“编译和使用AMD ACML” )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.