language-agnostic - 反转 4x4 矩阵 - 需要数值最稳定的解决方案

标签 language-agnostic matrix linear-algebra fixed-point matrix-inverse

我想反转一个 4x4 矩阵。我的数字以定点格式存储(准确地说是 1.15.16)。

使用浮点算术,我通常只构建伴随矩阵并除以行列式(例如,蛮力解决方案)。到目前为止,这对我有用,但是在处理定点数时,由于使用了所有乘法,我得到了 Not Acceptable 精度损失。

注意:在定点算术中,我总是丢弃一些立即结果的最低有效位。

那么-反转矩阵的最稳定的数值方法是什么?我不太在意性能,但简单地使用浮点会减慢我的目标架构。

最佳答案

我想支持 Jason S 提出的问题:您确定需要反转矩阵吗?这几乎没有必要。不仅如此,这通常是一个坏主意。如果您需要求解 Ax = b,则直接求解系统比将 b 乘以 A 逆在数值上更稳定。

即使您必须一遍又一遍地解决 Ax = b 的许多 b 值,反转 A 仍然不是一个好主意。您可以分解 A(例如 LU 分解或 Cholesky 分解)并保存这些因子,这样您就不会重做每次都有效,但是您仍然每次使用分解都可以解决系统问题。

关于language-agnostic - 反转 4x4 矩阵 - 需要数值最稳定的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155670/

相关文章:

language-agnostic - 在 [0.0, 1.0) 范围内的 double 的唯一值总数是多少?

javascript - 掌握了 90% 的 JavaScript 代码 - 无法理解其余部分

numpy - 你如何利用 np.linalg.pinv 返回这个矩阵

python - 列表矩阵 - Python

python - 如何使用 numpy 获得两个矩阵的点积?

python - 如何使用循环而不是内置函数在 Python 中生成 Toeplitz 矩阵

c++ - Eigen 3/C++ : Tile a MatrixXd with a Vector3d

language-agnostic - 构建不以文件为中心的系统

language-agnostic - 强制性方法文档

algorithm - 通过顶点/节点的最小切割 - 而不是边缘