对于理工类的学生而言,矩阵是再熟悉不过的数学工具了。即使在学习完线性代数这门课程之后并没有在现实中经常使用里面的各种计算方法,比如求逆矩阵、LU 分解等,也在不知不觉中和矩阵有广泛的接触。实际上,各种编程语言中的一维数组就是一个行向量;二维数组就是一个矩阵。说到和矩阵运算有关的软件,很多人都会想到 Matlab 和 Scilab,这两个软件在语法和功能上具有高度的相似性,只不过前者是商业软件,后者是开源软件。另外,Python 语言里也有与矩阵运算相关的强大的库,可以满足基本的运算需求。但是在很多领域,人们依然会选择使用 C++ 进行科学计算,尽管 GSL 中也有和矩阵运算有关的功能,但是由于它本身不是使用 C++ 的语法写的,因此不具备面向对象的功能,使用起来不是那么方便。在这篇文章中,将介绍一下 Armadillo 的使用方法。
Armadillo 是一个可以被 C++ 调用的高性能线性代数库,这个库被推出的主要目的就是为了兼顾运算速度和对使用人员的友好性。Armadillo 的语法和 Matlab 非常相似,支持向量、矩阵、分块矩阵、稀疏矩阵的使用。与 GSL 不同的是,只需要头文件和少数几个用来加速运算的库,就可以使用 Armadillo 中定义的方法。可以在下面的网站下载到最新版本的库:http://arma.sourceforge.net/download.html。关于它在 Windows、Linux、Mac 中的安装方法,可以在网络上找到,这里就不展开介绍了。需要注意的是,如果是在 Windows 上安装的话,