C++ Boost:复矩阵的行列式和求逆

问题描述

你知道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) 的特征值矩阵