gpt4 book ai didi

linear-algebra - 用小 A 求解多个线性系统 Ax=b 的最有效方法(最小 3x3 最大 8x8)

转载 作者:行者123 更新时间:2023-12-04 05:04:20 25 4
gpt4 key购买 nike

我需要解决数千次 Ax=b 类型的小型线性系统。这里A是一个不小于3x3、最大8x8的矩阵。我知道这个 http://www.johndcook.com/blog/2010/01/19/dont-invert-that-matrix/所以我不认为即使矩阵很小也反转矩阵是明智的吗?那么最有效的方法是什么?我正在用 Fortran 编程,所以我可能应该使用 lapack 库,对吗?我的矩阵是完整的,并且通常是非对称的。
谢谢
A.

最佳答案

警告:我没有深入研究这个问题,但我很乐意分享一些经验。

根据我的经验,解决 3x3 系统的最快方法基本上是使用 Cramer's rule .如果您需要使用相同的矩阵 A 求解多个系统,则需要预先计算 A 的逆。这仅适用于 2x2 和 3x3。

如果您必须使用相同的矩阵求解多个 4x4 系统,那么再次使用逆运算明显比 LU 的正向和反向替换快。我似乎记得它使用的操作更少,实际上差异更大(再次,以我的经验)。随着矩阵大小的增加,差异缩小,并且差异逐渐消失。如果您正在解决具有差分矩阵的系统,那么我认为计算逆矩阵没有优势。

在所有情况下,用逆求解系统可能比使用 LU 分解准确得多,因为 A 是相当病态的。因此,如果准确性是一个问题,那么 LU 分解绝对是要走的路。

关于linear-algebra - 用小 A 求解多个线性系统 Ax=b 的最有效方法(最小 3x3 最大 8x8),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com