首页 > 解决方案 > C++ Boost:复矩阵的行列式和求逆

问题描述

你知道boost是否有可以计算复矩阵的行列式和求逆的函数吗?矩阵维度不大(小于 50)。

反转:输入:矩阵 M = A +i*B 与 A,B 两个维度 (nxn) 的实矩阵,n <50。

输出:

我用谷歌搜索但没有成功。

先感谢您。

标签: c++matrixinversion

解决方案


最后我知道为什么这些矩阵求逆和行列式的运算符没有实现。这是因为我们从实矩阵上的经典算子中得到了这两个算子的封闭式解。

对于矩阵求逆:我们有这个封闭形式的解决方案https://fr.mathworks.com/matlabcentral/fileexchange/49373-complex-matrix-inversion-by-real-matrix-inversion

对于矩阵行列式,我们有:

det((A+iB))= det (A * (I + i A1.B)) (其中 A1 是 A 的逆矩阵)
= det(A) * det (I + i A1.B))

= det(A) * det (U1 (I + iD) U2) (其中 U1 = A1.B,U2 是 U1 的逆矩阵,D 是 U1 的对角矩阵) = det(A) *det(I + ID)。I + iD 的行列式很容易计算,它是一个对角矩阵。

因此,det(A+iB) = det(A) * det(I +iD) 与 D: (A^(-1) * B) 的特征值矩阵


推荐阅读