微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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) 的特征值矩阵

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。