如何用c#中的ILNumerics ILMath计算矩阵的逆矩阵?

时间:2014-05-09 10:47:45

标签: c# ilnumerics

对此(非常基本的)问题感到抱歉。

我今天刚决定尝试使用ILNumerics来获得相对简单的算法,这些算法基本上都是指简单的代数运算和相对基本的优化。

我的第一印象就是, - ILNumerics更容易理解(例如,Math.Net库), - 易于习惯语法, - 和其他(主要是系统类型)相比,其他库更加整洁。

我幸运地遇到了乘法和转置,但是,我对逆转功能并不是那么幸运。

我尝试了此链接中建议的解决方案: How to use ILMath.invert function?

基本上,逆算计算如下:

ILArray<double> A = ILMath.rand(5,5);
ILArray<double> B = ILMath.linsolve(A, ILMath.eye(5, 5));

但是,当我复制/粘贴并尝试使用相同的方法来计算矩阵的逆时,我会收到以下错误:

An unhandled exception of type 'System.DllNotFoundException' occurred in ILNumerics.dll
Additional information: Unable to load DLL 'mkl_custom': 
The specified module could not be found. (Exception from HRESULT: 0x8007007E)

**

我做错了什么?这里缺少什么?如何解决?

感谢任何帮助。

提前感谢那些致力于解决这个问题的人。

1 个答案:

答案 0 :(得分:1)

只需使用nuget包'ILNumerics'即可。这会将所有需要的二进制文件导入到项目中,并将文件复制到输出目录。

@Edit:不再维护nuget包。新的ILNumerics Ultimate VS通过将二进制文件直接安装到System32文件夹中来解决问题。对机器上的所有项目执行一次。 http://ilnumerics.net/download.html