使用C++的矩阵代数

Matrix Algebra Using C++

本文关键字:C++ 使用      更新时间:2023-10-16

我想问一下数组的数学运算。我主要对以下操作感兴趣:

矢量产品:

C=A+B
C=A*B

其中A和B是阵列(或矢量),以及

矩阵产品:

D=E*F; 

其中D[m][n],E[m][p],F[p][n];

有人能告诉我处理大量数字最有效的方法是什么吗?它是否只能通过循环遍历数组的元素来实现,或者还有其他方法吗?矢量可以使用吗?如何使用?

C++规范没有您所描述的数学结构。该语言无疑为人们实现它们提供了所有必要的功能。有很多库,所以你可以选择一个符合你需求的库。

在堆栈溢出问题中搜索可能会让你知道从哪里开始识别那些需求,如果你还不知道的话。

  • 什么';s是一个很好的矩阵运算C++库
  • 寻找一个优雅高效的C++矩阵库
  • 用于矢量和矩阵计算的高性能数学库
  • C中的矩阵数据类型++
  • 稀疏酉矩阵的最佳C++矩阵库

看看Armadillo,它在C++接口中提供了许多矩阵功能。它支持LAPACK,这是MATLAB用于线性代数计算的功能。

C++没有任何开箱即用的"数字聚合"处理功能,这可能是std::valarray的例外。(编译器供应商可以让valarray使用矢量化操作,但一般来说他们不会)