c++ - C++ Boost:复矩阵的行列式和求逆
问题描述
你知道boost是否有可以计算复矩阵的行列式和求逆的函数吗?矩阵维度不大(小于 50)。
反转:输入:矩阵 M = A +i*B 与 A,B 两个维度 (nxn) 的实矩阵,n <50。
输出:
- 反演: 矩阵 N = C + i D 与 C,D 两个维度为 (nxn) 的实矩阵使得: (A +i B)^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(I + ID)。I + iD 的行列式很容易计算,它是一个对角矩阵。
因此,det(A+iB) = det(A) * det(I +iD) 与 D: (A^(-1) * B) 的特征值矩阵
推荐阅读
- wordpress - 如何编写过滤器以删除表单字段(WordPress)
- java - 使用 Streams 和 Gson 将作为 ResultSet 读取的大量数据库转换为 JSON 字符串的最佳方法?
- java - 弹性搜索 - NativeSearchQueryBuilder 不返回嵌套对象
- dfa - 我应该如何绘制这些 DFA?
- sql - SQL 日期范围不使用之间
- git - Git 还原一些提交(包括合并),然后稍后重新提交
- pyqt - 如何使新窗口相对于 PyQt 中的主窗口居中?
- php - 如何修复删除按钮无法正常工作?
- ruby - 失败/错误:红宝石中的 $driver.navigate.to ENV['URL']
- javascript - React pdf突出显示无法正常工作