施密特正交化QR分解求逆矩阵与MATLAB仿真

发布于:2024-03-29 ⋅ 阅读:(39) ⋅ 点赞:(0)

利用Schmidt 正交化QR分解求逆矩阵与MATLAB仿真

目录

前言

一、QR分解

二、Q矩阵求逆

三、R矩阵(上三角)求逆

四、A矩阵求逆

五、计算量分析

六、MATLAB仿真

七、参考资料

总结


前言

        在线性代数中,QR 分解是将一个矩阵分解为一个正交矩阵(Q)与一个上三角矩阵(R)的乘积的过程。由于Q是正交矩阵,那么其逆矩阵就等于其共轭转置。求逆矩阵,分解之后便只需要去求R的逆矩阵进而就能求出待求矩阵的逆矩阵。


提示:以下是本篇文章正文内容,希望能帮助到各位,转载请附上链接。

一、QR分解

        若\mathbf{A}=[\boldsymbol{\alpha }_1\,\boldsymbol{\alpha}_2\,\cdots\,\boldsymbol{\alpha}_N]是一个N×N阶列无关矩阵,则矩阵A可进行QR分解。

\boldsymbol\beta_{1}=\boldsymbol\alpha_1\quad\left|\boldsymbol\beta_1\right|=\operatorname{norm}(\boldsymbol\beta_1)

\mathcal{\boldsymbol\beta}_2=\boldsymbol\alpha_2-\frac{\left(\boldsymbol\alpha_2,\boldsymbol\beta_1\right)}{\left|\boldsymbol\beta_1\right|^2}\mathcal{\boldsymbol\beta }_1\quad\left|\boldsymbol\beta_2\right|=\mathrm{norm}(\mathcal{\boldsymbol\beta }_2)

\boldsymbol\beta_3=\boldsymbol\alpha_3-\frac{(\boldsymbol\alpha_3,\boldsymbol\beta_2)}{|\boldsymbol\beta_2|^2}\boldsymbol\beta_2-\frac{(\boldsymbol\alpha_3,\boldsymbol\beta_1)}{|\boldsymbol\beta_1|^2}\boldsymbol\beta_1\quad|\boldsymbol\beta_3|=\mathrm{norm}(\boldsymbol\beta_3)

\textbf{\vdots }

其他依次计算。其中norm表示求2范数。

那么可以得到矩阵Q

\mathbf{Q}=\left(\frac{\mathbf{\boldsymbol\beta}_1}{\mid\mathbf{\boldsymbol\beta}_1\mid},\frac{\mathbf{\boldsymbol\beta}_2}{\mid\mathbf{\boldsymbol\beta}_2\mid},\cdots,\frac{\mathbf{\boldsymbol\beta}_N}{\mid\mathbf{\boldsymbol\beta}_N\mid}\right)

其中Q满足\textbf{Q}^{H}\textbf{Q}=\textbf{I}[\;]^{H}表示共轭转置。R可以由以下式子得到

\textbf{R}=\textbf{Q}^{H}\textbf{A}

因为\mathbf{A}=\mathbf{QR},则\mathbf{Q}^H\mathbf{A}=\mathbf{Q}^H\mathbf{QR}=\mathbf{R}\Rightarrow\mathbf{R}=\mathbf{Q}^H\mathbf{A}

二、Q矩阵求逆

        由于Q是正交矩阵(酉矩阵),所以\textbf{Q}^{-1}=\textbf{Q}^{H},即

\textbf{Q}^{-1}=\textbf{Q}^{H}=\begin{bmatrix} Q_{11}^{*} &Q_{21}^{*} & \cdots &Q_{N1}^{*} \\ Q_{12}^{*} &Q_{22}^{*} & \cdots &Q_{N2}^{*} \\ \vdots &\vdots & \ddots & \vdots \\ Q_{1N}^{*} & Q_{2N}^{*} & \cdots & Q_{NN}^{*} \end{bmatrix}

其中[\;]^{*}表示共轭。

三、R矩阵(上三角)求逆

        R是个上三角矩阵,求逆方法可以参照下面这篇文章。

一种基于约化因子上三角矩阵求逆方法与MATLAB仿真:http://t.csdnimg.cn/aHPmd

四、A矩阵求逆

        由于A=QR,所以\textbf{A}^{-1}=\textbf{QR}^{-1}=\textbf{R}^{-1}\textbf{Q}^{-1}=\textbf{R}^{-1}\textbf{Q}^{H}

五、计算量分析

        计算\boldsymbol\beta _{n}需要的乘法次数为2N(n-1),除法次数为n-1,加法次数为

(N-1)(n-1)+N(n-1)=(2N-1)(n-1)

计算\left | \boldsymbol\beta _{n} \right |需要的乘法次数为N,加法次数为N-1,还需要一次开方。

注意计算\boldsymbol\beta _{n}时直接用的\left | \boldsymbol\beta _{n} \right |的值,不需要对其统计运算量。

计算所有的\boldsymbol\beta _{n}需要的乘法次数为:

\sum_{n=1}^N(2N(\text{n-}1))=N^2(N-1)

加法次数为:

\sum_{n=1}^N\left((2N-1)(n-1)\right)=\frac{(2N-1)N(N-1)}2

除法次数为:

\sum_{n=1}^N(n-1)=\frac{N(N-1)}2

计算所有的\left | \boldsymbol\beta _{n} \right |需要的乘法次数为N^{2},加法次数为N(N-1),还需要N次开方。

根据

\mathbf{Q}=\left(\frac{\mathbf{\boldsymbol\beta}_1}{\mid\mathbf{\boldsymbol\beta}_1\mid},\frac{\mathbf{\boldsymbol\beta}_2}{\mid\mathbf{\boldsymbol\beta}_2\mid},\cdots,\frac{\mathbf{\boldsymbol\beta}_N}{\mid\mathbf{\boldsymbol\beta}_N\mid}\right)

计算Q还需要N^{2}次除法。

        计算\mathbf{R}=\mathbf{Q}^{H}\mathbf{A}(由于R是三角矩阵,相比于普通矩阵乘法,运算量会小)需要的乘法次数为:

\frac{N(N+1)}2N

加法次数为:

\frac{N^2(N-1)}2

        然后还需要计算R的逆矩阵,根据 http://t.csdnimg.cn/aHPmd 中的方法,需要的乘法次数为:

\frac{N^3+3N^2-4N}6

加法次数为:

\frac{N^3-3N^2+2N}6

除法次数为:

N

        最后求\mathbf{A}^{-1}=\mathbf{R}^{-1}\mathbf{Q}^H(由于\textbf{R}^{-1}是三角矩阵,相比于普通矩阵乘法,运算量会小),

需要的乘法次数为:

\frac{N(N+1)}2N

加法次数为:

\frac{N^2(N-1)}2

所以通过QR分解求解逆矩阵总共需要的运算次数如下:

乘法:

(N^3-N^2)+N^2+\frac{(N^3+N^2)}2+\frac{N^3+3N^2-4N}6+\frac{(N^3+N^2)}2=\frac{10N^3+9N^2-N}6

加法:

\begin{aligned} &\frac{(2N-1)N(N-1)}2+N(N-1)+\frac{N^2(N-1)}2+ &\frac{N^3-3N^2+2N}6+\frac{N^2(N-1)}2=\frac{13N^3-12N^2-N}6 \end{aligned}

除法:

\frac{N(N-1)}2+N^2+N=\frac{3N^2+N}2

开方:

N

六、MATLAB仿真

  以MATLAB自带求逆函数inv为对比,仿真得出以下结果:

七、参考资料

参考资料:https://download.csdn.net/download/m0_66360845/89029773


总结

        以上介绍了一种基于施密特正交化将矩阵分解为正交Q矩阵和上三角矩阵R,进而求解逆矩阵的方法与MATLAB仿真。对于Q矩阵而言,其列向量是标准正交的,也就是说列向量的模长为1,并且彼此正交,在复数域中,Q矩阵又被称为酋矩阵。小伙伴们认真看完此文章必定有所收获。

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到