C#使用mathnet学习笔记(一)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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,其地址
3. C#中使⽤mathnet库
计算库是专为.NET开发的开源科学计算库。
包含了⼤部分矩阵运算、线性运算等功能。
效率⾼,且可以在C#中直接使⽤。
简单的矩阵运算,其效率可以达到C#代码的10倍以上。
其开源代码地址:
vs2010扩展插件管理⼯具
在C#中使⽤mathnet库很简单,只需在⼯程引⽤中加⼊“MathNet.Numerics.dll”即可。