C#使用mathnet学习笔记(一)


C#开发程序简单快捷,但对于科学运算支持不好,没有相应的科学计算库。

        在C#中进行科学运算,我所知的方法有下面几个:

        1. 在C#中调用matlab

         matlab有强大的科学计算库,以及丰富的线性计算,积分插值等函数,C#中可以调用matlab的dll进行科学运算。

         这种方法的最大问题在于计算效率很低。我这里仅利用简单的矩阵加减乘除测试过,其效率比利用C#代码编写的矩阵运算低100倍以上。

         对于复杂的函数比如插值,滤波等我没测试过。

         使用这种方法最大的好处就是不需要考虑科学计算算法的具体实现,只需关注自己要实现的部分即可,开发效率高。

         关于C#调用matlab后面另说。

        2. C#中调用python

         python虽然本身没有科学计算库,但由于python自身的优势,目前已经有成熟的科学计算哭numerics,scipy等,已经基本可以实现matlab上常用的矩阵计算、符号计算、插值积分、绘图等大多数功能。且由于numerics库都是源于非常成熟的pascal科学计算库,因此计算效率非常高。

         这种方法我还没研究过,好像需要使用Ironpython,其地址http://pytools.codeplex.com/

       3. C#中使用mathnet库

         Math.net计算库是专为.NET开发的开源科学计算库。包含了大部分矩阵运算、线性运算等功能。效率高,且可以在C#中直接使用。简单的矩阵运算,其效率可以达到C#代码的10倍以上。其开源代码地址:http://mathnetnumerics.codeplex.com/

           vs2010扩展插件管理工具

http://visualstudiogallery.msdn.microsoft.com/27077b70-9dad-4c64-adcf-c7cf6bc9970c

 

          在C#中使用mathnet库很简单,只需在工程引用中加入“MathNet.Numerics.dll”即可。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM