04-A的LU分解

一、矩阵$AB$的逆

$(AB)^{-1}=B^{-1}A^{-1}$,顺序正好相反

二、$A=LU$

 如矩阵:

$\left[\begin{array}{ll}{2} & {1} \\ {8} & {7}\end{array}\right]$ =>消元=>$\left[\begin{array}{ll}{2} & {1} \\ {0} & {3}\end{array}\right]$

 按照我们在第二讲所知,原始矩阵借助$E_{21}$可以实现矩阵的消元,即$E_{21}$ * $A$ = $U$

$\left[\begin{array}{ll}{1} & {0} \\ {-4} & {1}\end{array}\right] * \left[\begin{array}{ll}{2} & {1} \\ {8} & {7}\end{array}\right]$ = $\left[\begin{array}{ll}{2} & {1} \\ {0} & {3}\end{array}\right]$

注意:这里是2 * 2 矩阵,所以只需要一个初等矩阵相乘即可,若是更大的方阵,则每次消元都需要初等矩阵左乘

 而我们知道$A=LU$,那么这个$L$是什么呢?

$A=LU$

$E_{21}A=U$

 第二个式子左右同时乘以$E_{21} ^{-1}$:

$A=E_{21} ^{-1}U$

 所以这个$L$就是$E_{21} ^{-1}$,初等矩阵的逆矩阵好求,就是初等矩阵变一下符号而已(仅仅因为这里是2*2矩阵,如果3*3或者更大的矩阵,就不是这么简单了):

$L$=$E_{21} ^{-1}$=$\left[\begin{array}{ll}{1} & {0} \\ {4} & {1}\end{array}\right]$

 这里只是以简单的2*2矩阵为例进行了讲解,$L$和$U$矩阵表示了下三角矩阵和上三角矩阵,过程如下:

$\left[\begin{array}{ll}{2} & {1} \\ {8} & {7}\end{array}\right]=\left[\begin{array}{ll}{1} & {0} \\ {4} & {1}\end{array}\right]\left[\begin{array}{ll}{2} & {1} \\ {0} & {3}\end{array}\right]$

即:$A = LU$

有时候会把主元摘出来:$A = LDU$

$\left[\begin{array}{ll}{2} & {1} \\ {8} & {7}\end{array}\right] = \left[\begin{array}{ll}{1} & {0} \\ {4} & {1}\end{array}\right]\left[\begin{array}{ll}{2} & {0} \\ {0} & {3}\end{array}\right]\left[\begin{array}{ll}{1} & {1/2} \\ {0} & {1}\end{array}\right]$

 我们不能只停留在简单的2 * 2矩阵上,下面我们来处理更大的矩阵,比如3 * 3 矩阵:

$E_{32} E_{31} E_{21} A=U$(消元过程假设不需要进行行交换)

$A= E_{21}^{-1} E_{31}^{-1} E_{32}^{-1} U$

所以:$L= E_{21}^{-1} E_{31}^{-1} E_{32}^{-1}$

 实例:

  上面的求$L$的过程看起来很麻烦,先要计算三个消元矩阵,然后计算他们的逆,反顺序相乘,其实不然

  对于初等矩阵,之前讲到过,它的逆只要把变换再还回去就是,比如矩阵:

$\left[\begin{array}{lll}{1} & {0} & {0} \\ {2} & {1} & {0} \\ {0} & {0} & {1}\end{array}\right]$

  表示将某矩阵的第一行乘2加到第二行上(如果用它右乘某矩阵的话),那么这个操作的逆操作就是从第二行减去2倍的第一行就是了,所以它的逆矩阵就是:

$\left[\begin{array}{ccc}{1} & {0} & {0} \\ {-2} & {1} & {0} \\ {0} & {0} & {1}\end{array}\right]$

三、后半节需要再理解一下

原文地址:https://www.cnblogs.com/always-fight/p/11730489.html

时间: 2024-11-14 00:52:30

04-A的LU分解的相关文章

LU分解,Javascript代码

///A 为矩阵,这里写成一维数组,如 [1],[1,2,3,4] function GetLU(a) { var n = a.length;//矩阵的总数据数目 var s = Math.sqrt(n);//矩阵的阶数 var L = new Array(n); var U = new Array(n); if (GetDet(a) != 0) { var allOrderNotEqulesZero = true; for (var i = 0; i < s; i++) { if (GetDe

LU分解(2)

接着上次LU分解的讲解,这次给出使用不同的计算LU分解的方法,这种方法称为基于GaxPy的计算方法.这里需要了解lapapck中的一些函数.lapack中有一个函数名为gaxpy,所对应的矩阵计算公式是:x = Gx + y; 对应的Matlab代码如下: function[L, U] =zgaxpylu(A) %calculate LU decomposition based on Gaxpy operation %the same way as zlu.m but differnt appr

LU分解

function [L,U,p] = lutxloops(A) %LU Triangular factorization %   [L,U,p] = lup(A) produces a unit lower triangular matrix L, %   an upper triangular matrix U and a permutation vector p, %   so that L*U = A(p,:) [n,n] = size(A); p = (1:n)'; for k = 1:

矩阵的LU分解

矩阵的LU分解function [x,L,U,index]=LU_Factorization(A,b) tic %A为要分解的矩阵 %b为方程组的右端常数项 %x为方程组的解 %L为单位下三角阵 %U为上三角阵 %index为指标变量,index=0表示计算失败,index=1表示计算成功 [n,m]=size(A); nb=length(b); %当方程行与列的维数不相等时,停止计算,并输出出错信息 if n~=m error('the rows and columns of matrix A

矩阵分解---QR正交分解,LU分解

相关概念: 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等.两个向量正交的意思是两个向量的内积为 0 正定矩阵:如果对于所有的非零实系数向量x ,都有 x'Ax>0,则称矩阵A 是正定的.正定矩阵的行列式必然大于 0, 所有特征值也必然 > 0.相对应的,半正定矩阵的行列式必然 ≥ 0. QR分解 矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵的乘积的形式. 任意实数方阵A,都能被分解为A=QR.这里的Q为正交单位阵,即

矩阵LU分解程序实现(Matlab)

n=4;%确定需要LU分解的矩阵维数 %A=zeros(n,n); L=eye(n,n);P=eye(n,n);U=zeros(n,n);%初始化矩阵 tempU=zeros(1,n);tempP=zeros(1,n);%初始化中间变量矩阵 A=[1 2 -3 4;4 8 12 -8;2 3 2 1;-3 -1 1 -4];%需要LU分解矩阵赋值 for p=1:n %将A矩阵赋值给U for q=1:n U(p,q)=A(p,q); end end jt=1;kt=0; for i=1:n-1

LU分解和求解线性方程组

1 # coding:utf8 2 import numpy as np 3 4 def lu(mat): 5 r,c=np.shape(mat) 6 s=min(r,c) 7 for k in range(s): 8 x=1.0/mat[k][k] # 将后续除法变成乘法 9 for i in range(k+1,r): 10 mat[i][k]=mat[i][k]*x # L[1:][0]*U[0][0]=A[1:][0]:A[0][:]=mat[0][:] 11 for i in rang

矩阵LU分解的高斯消元法

A=[1,-1,1,-4;5,-4,3,12;2,1,1,11;2,-1,7,-1] L=eye(length(A)) %开始消元过程 for k=1:(length(A)) a=A(k,k) for i=k+1:(length(A)) c=-A(i,k) L(i,k)=-c./a for j=1: (length(A)) A(i,j)=A(i,j)+c.*A(k,j)./ a end end end L U=A A = 1 -1 1 -4 5 -4 3 12 2 1 1 11 2 -1 7 -

cholesky分解

接着LU分解继续往下,就会发展出很多相关但是并不完全一样的矩阵分解,最后对于对称正定矩阵,我们则可以给出非常有用的cholesky分解.这些分解的来源就在于矩阵本身存在的特殊的 结构.对于矩阵A,如果没有任何的特殊结构,那么可以给出A=L*U分解,其中L是下三角矩阵且对角线全部为1,U是上三角矩阵但是对角线的值任意,将U正规化成对角线为1的矩阵,产生分解A = L*D*U, D为对角矩阵.如果A为对称矩阵,那么会产生A=L*D*L分解.如果A为正定对称矩阵,那么就会产生A=G*G,可以这么理解G