LU 矩阵分解

您所在的位置:网站首页 matlab求矩阵的乘积 LU 矩阵分解

LU 矩阵分解

2023-05-31 04:08| 来源: 网络整理| 查看: 265

打开实时脚本

通过执行 LU 分解并使用因子来简化问题,对线性系统求解。使用反斜杠运算符和 decomposition 对象将结果与其他方法进行比较。

创建一个 5×5 幻方矩阵并求解线性系统 Ax=b,其中 b 的所有元素等于 65,即幻数和。由于 65 是此矩阵的幻数和(各行之和与各列之和均为 65),因此 x 的预期解是由 1 组成的向量。

A = magic(5); b = 65*ones(5,1); x = A\bx = 5×1 1.0000 1.0000 1.0000 1.0000 1.0000

对于泛型方阵,反斜杠运算符使用 LU 分解计算线性系统的解。LU 分解将 A 表示为三角矩阵的乘积,它可以通过代换公式轻松求解涉及三角矩阵的线性系统。

要重新创建由反斜杠运算符计算的答案,请计算 A 的 LU 分解。然后,使用因子来求解两个三角线性系统:

y = L\(P*b); x = U\y;

这种在求解线性系统之前预先计算矩阵因子的方法可以在求解许多线性系统时提高性能,因为分解仅发生一次而不需要重复。

[L,U,P] = lu(A)L = 5×5 1.0000 0 0 0 0 0.7391 1.0000 0 0 0 0.4783 0.7687 1.0000 0 0 0.1739 0.2527 0.5164 1.0000 0 0.4348 0.4839 0.7231 0.9231 1.0000 U = 5×5 23.0000 5.0000 7.0000 14.0000 16.0000 0 20.3043 -4.1739 -2.3478 3.1739 0 0 24.8608 -2.8908 -1.0921 0 0 0 19.6512 18.9793 0 0 0 0 -22.2222 P = 5×5 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 y = L\(P*b); x = U\yx = 5×1 1.0000 1.0000 1.0000 1.0000 1.0000

在使用专用分解来求解线性系统时 decomposition 对象也很有用,因为预先计算矩阵因子可获得许多性能优势,而不需要知道如何使用这些因子。使用 'lu' 类型的分解对象重新创建相同的结果。

dA = decomposition(A,'lu'); x = dA\bx = 5×1 1.0000 1.0000 1.0000 1.0000 1.0000


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3