问题描述
你知道boost是否有可以计算复矩阵行列式和求逆的函数吗?矩阵维数不大(小于50)。
反转: 输入:矩阵 M = A +i*B with A,B 两个实数矩阵,维度为 (n x n),n
输出:
- 反转: 矩阵 N = C + iD 具有 C,D 维数 (nxn) 的两个实矩阵,使得: (A +iB)^T (C+ i*D) = I(I:身份矩阵)
- 行列式: det(A+iB)
我用谷歌搜索但没有成功。
提前致谢。
解决方法
我终于知道为什么没有实现矩阵求逆和行列式的这些运算符。这是因为我们从实矩阵上的经典算子中得到了这两个算子的闭式解。
对于矩阵求逆:我们有这个封闭形式的解决方案 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 (我+iD)。很容易计算 I + iD 的行列式,它是一个对角矩阵。
所以,det(A+iB) = det(A) * det(I +iD) 与 D:(A^(-1) * B) 的特征值矩阵