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

相关概念:

  • 正交矩阵:若一个方阵其行与列皆为正交的单位向量,则该矩阵为正交矩阵,且该矩阵的转置和其逆相等。两个向量正交的意思是两个向量的内积为 0
  • 正定矩阵:如果对于所有的非零实系数向量x ,都有 x‘Ax>0,则称矩阵A 是正定的。正定矩阵的行列式必然大于 0, 所有特征值也必然 > 0。相对应的,半正定矩阵的行列式必然 ≥ 0。

QR分解

矩阵的正交分解又称为QR分解,是将矩阵分解为一个正交矩阵Q和一个上三角矩阵的乘积的形式。

任意实数方阵A,都能被分解为A=QR。这里的Q为正交单位阵,即QTQ=I。R是一个上三角矩阵。这种分解被称为QR分解。

QR分解也有若干种算法,常见的包括Gram–Schmidt、Householder和Givens算法。

QR分解是将矩阵分解为一个正交矩阵与上三角矩阵的乘积。用一张图可以形象地表示QR分解:

这其中, Q为正交矩阵,R为上三角矩阵。 
实际中,QR分解经常被用来解线性最小二乘问题。

 

  • 计算方法:

  • 对于非方阵的m∗n(m≥n)阶矩阵A也可能存在QR分解。这时Q为m*m阶的正交矩阵,R为m*n阶上三角矩阵。这时的QR分解不是完整的(方阵),因此称为约化QR分解(对于列满秩矩阵A必存在约化QR分解)。同时也可以通过扩充矩阵A为方阵或者对矩阵R补零,可以得到完全QR分解。

LU分解---三角分解

矩阵的LU分解是将一个矩阵分解为一个下三角矩阵与上三角矩阵的乘积。本质上,LU分解是高斯消元的一种表达方式。首先,对矩阵A通过初等行变换将其变为一个上三角矩阵。对于学习过线性代数的同学来说,这个过程应该很熟悉,线性代数考试中求行列式求逆一般都是通过这种方式来求解。然后,将原始矩阵A变为上三角矩阵的过程,对应的变换矩阵为一个下三角矩阵。这中间的过程,就是Doolittle algorithm(杜尔里特算法)。

计算方法:

LU分解常用来求解线性方程组,求逆矩阵或者计算行列式。例如在计算行列式的时候,,。而对于三角矩阵来说,行列式的值即为对角线上元素的乘积。所以如果对矩阵进行三角分解以后再求行列式,就会变得非常容易。

在线性代数中已经证明,如果方阵是非奇异的,即的行列式不为0,LU分解总是存在的。

参考: https://blog.csdn.net/qq_30981697/article/details/71545519

https://blog.csdn.net/eric_e/article/details/80354834

来自为知笔记(Wiz)

原文地址:https://www.cnblogs.com/jins-note/p/9637693.html

时间: 2024-10-29 04:38:18

矩阵分解---QR正交分解,LU分解的相关文章

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分解

矩阵的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

矩阵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

机器学习中的矩阵方法04:SVD 分解

机器学习中的矩阵方法04:SVD 分解 前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出更有意思的信息.奇异值分解( SVD, Singular Value Decomposition ) 在计算矩阵的伪逆( pseudoinverse ),最小二乘法最优解,矩阵近似,确定矩阵的列向量空间,秩以及线性系统的解集空间都有应用. 1. SVD 的形式

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分解

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:

矩阵的QR分解(三种方法)

Gram-Schmidt正交化 假设原来的矩阵为[a,b],a,b为线性无关的二维向量,下面我们通过Gram-Schmidt正交化使得矩阵A为标准正交矩阵: 假设正交化后的矩阵为Q=[A,B],我们可以令A=a,那么我们的目的根据AB=I来求B,B可以表示为b向量与b向量在a上的投影的误差向量: $$B=b-Pb=b-\frac{A^Tb}{A^TA}A$$

矩阵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 -

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