C#,码海拾贝(18) 您所在的位置:网站首页 doolittle分解法matlab程序 C#,码海拾贝(18)

C#,码海拾贝(18)

2023-11-30 11:38| 来源: 网络整理| 查看: 265

1 三角分解法 Triangular Decomposition

三角分解法亦称因子分解法,由消元法演变而来的解线性方程组的一类方法。设方程组的矩阵形式为Ax=b,三角分解法就是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U之积:A=LU,然后依次解两个三角形方程组Ly=b和Ux=y,而得到原方程组的解,例如,杜利特尔分解法、乔莱斯基分解法等就是三角分解法。

若能通过正交变换,将系数矩阵A分解为A=LU,其中L是单位下三角矩阵(主对角线元素为1的下三角矩阵),而U是上三角矩阵,则线性方程组Ax=b变为LUx=b,若令Ux=y,则线性方程组Ax=b的求解分为两个三角方程组的求解: (1)求解Ly=b,得y; (2)再求解Ux=y,即得方程组的解x; 因此三角分解法的关键问题在于系数矩阵A的LU分解。 矩阵能LU分解的充分条件编辑 播报 一般地,任给一个矩阵不一定有LU分解,下面给出一个矩阵能LU分解的充分条件。 定理1 对任意矩阵 ,若A的各阶顺序主子式均不为零,则A有唯一的Doolittle分解(或Crout分解)。 定理2 若矩阵 非奇异,且其LU分解存在,则A的LU分解是唯一的。

三角分解法是将原正方 (square) 矩阵分解成一个上三角形矩阵或是排列(permuted) 的上三角形矩阵和一个 下三角形矩阵,这样的分解法又称为LU分解法。它的用途主要在简化一个大矩阵的行列式值的计算过程,求逆矩阵,和求解联立方程组。不过要注意这种分解法所得到的上下三角形矩阵并非唯一,还可找到数个不同 的一对上下三角形矩阵,此两三角形矩阵相乘也会得到原矩阵。

2 三角分解法C#源程序 using System; namespace Zhou.CSharp.Algorithm { /// /// 矩阵类 /// 作者:周长发 /// 改进:深度混淆 /// https://blog.csdn.net/beijinghorn /// public partial class Matrix { /// /// 矩阵的三角分解,分解成功后,原矩阵将成为Q矩阵 /// /// 源矩阵 /// 分解后的L矩阵 /// 分解后的U矩阵 /// 求解是否成功 public static bool SplitLU(Matrix src, Matrix mtxL, Matrix mtxU) { int i, j, k, w, v, z; // 初始化结果矩阵 if (mtxL.Init(src.Columns, src.Columns) == false || mtxU.Init(src.Columns, src.Columns) == false) { return false; } for (k = 0; k


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有