[Math]常见矩阵分解及复杂度 Cholesky QR LU

本篇尝试介绍几个常见的矩阵分解及其数值方法,探究其算法复杂度及不稳定性来源,能够让我们更好的理解工具,使用工具。常见的矩阵分解可以在维基中找到

Cholesky

定义

正定的矩阵(如果不能分解的对称矩阵,一定是有非正的特征值),分解为对称的up down矩阵的乘积
即对于
A ∈ S ( R ) N × N + + A \in \mathcal{S}(\mathbb{R})^{++}_{N\times N} AS(R)N×N++
一定存在 L一个下三角矩阵(left bottom) 矩阵,能够使得有
A = L L T A = L L^T A=LLT
对于复数依旧成立,但是会要求A是一个Hermitian矩阵(即共轭转置等于自己)

数值方法

对于Cholesky求解有两种方法,参考维基的内容,第一种是利用高斯消元法,这种方法称为Chelosky 算法,第二种主要精神是首先假设这样的L存在,并反解,称为The Cholesky–Banachiewicz and Cholesky–Crout算法。

  1. Chelosky算法
    对于一个矩阵A,我们希望通过迭代的方式逐渐消掉A的元素,假设在第i步迭代我们已经有了如下矩阵(当然左上角的那个Id矩阵可以是size 0,这就使得这个矩阵和原矩阵A完全一样)。
    A ( i ) = ( I i − 1 0 0 0 a i , i b i ∗ 0 b i B ( i ) ) , \mathbf{A}^{(i)}=\begin{pmatrix} \mathbf{I}_{i-1} & 0 & 0 \\ 0 & a_{i,i} & \mathbf{b}_{i}^{*} \\ 0 & \mathbf{b}_{i} & \mathbf{B}^{(i)} \end{pmatrix}, A(i)=Ii1000ai,ibi0biB(i),
    因为A是一个 S ( R ) N × N + + \mathcal{S}(\mathbb{R})^{++}_{N\times N} S(R)N×N++, 因此 a i , i a_{i,i} ai,i一定是一个严格大于零的数字(如果非严格大于零,我们可以找到一个基底函数 x = ( 0 , . . , 1 , . . 0 ) T x=(0,..,1,..0)^T x=(0,..,1,..0)T,只在i行有数值,这样 x T A x = a i , i x^T A x = a_{i,i} xTAx=ai,i,根据A的正定定义,这个数值必须大于零)。
    如果我们定义一个矩阵 L i L_i Li有如下形式
    L i : = ( I i − 1 0 0 0 a i , i 0 0 1 a i , i b i I n − i ) \mathbf{L}_{i}:= \begin{pmatrix} \mathbf{I}_{i-1} & 0 & 0 \\ 0 & \sqrt{a_{i,i}} & 0 \\ 0 & \frac{1}{\sqrt{a_{i,i}}} \mathbf{b}_{i} & \mathbf{I}_{n-i} \end{pmatrix} Li:=Ii1000ai,i ai,i 1bi00Ini
    那么就会有如下关系
    A ( i ) = L i A ( i + 1 ) L i ∗ \mathbf{A}^{(i)} = \mathbf{L}_{i} \mathbf{A}^{(i+1)} \mathbf{L}_{i}^{*} A(i)=LiA(i+1)Li
    其中
    A ( i + 1 ) = ( I

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值