凸优化有关的数值线性代数知识二:求解已经因式分解的矩阵的线性方程组

本文主要探讨求解已因式分解的矩阵的线性方程组。先讨论了矩阵A为可逆矩阵时,对角、下三角、上三角、正交、排列矩阵等容易求解的线性方程组的解法及计算次数,接着介绍因式分解求解算法,还提及求解多个右边项方程组的方法及总计算量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、求解已经因式分解的矩阵的线性方程组

  1. 容易求解的线性方程组
  2. 因式分解求解方法

容易求解的线性方程组

先讨论矩阵A是n维可逆矩阵的情况,即x=A^{-1}b

对角矩阵

假设A是非奇异对角矩阵,线性方程组Ax=b可以写成a_{ii}x_i=b_i,i=1,\cdots,n,方程组的解为x_i=b_i/a_{ii},即经过n次浮点运算即可。

下三角矩阵

矩阵A是n维非奇异下三角矩阵:即\forall j >i,a_{ij}=0,下三角矩阵非奇异的充要条件是对所有的i成立a_{ii}\neq 0

此时Ax=b可以写成:

\begin{bmatrix} a_{11} &0 &\cdots &0 \\ a_{12} &a_{22} &\cdots &0 \\ \vdots &\vdots & \ddots & \vdots \\ a_{n1} &a_{n2} &\cdots & a_{nn} \end{bmatrix}\, \, \begin{bmatrix} x_1\\ x_2\\\vdots \\ x_n\end{bmatrix}=\begin{bmatrix} b_1\\ b_2\\\vdots \\ b_n\end{bmatrix}

可推出:

\begin{matrix} x_1=b_1/a_{11}\\ x_2=(b_2-a_{12}x_1)/a_{22}\\ x_3=(b_3-a_{31}x_1-a_{32}x_2)/a_{33}\\ \vdots \\ x_n=(b_n-a_{n1}x_1-\cdots -a_{nn-1}x_{n-1})/a_{nn} \end{matrix}

共需要的计算次数:1+3+5+\cdots +(2n-1),即为等差数列前n项和,1+3+5+\cdots +(2n-1)=n*1+\frac{n(n-1)}{2}*2=n^2

上三角矩阵

矩阵A是非奇异上三角矩阵,即A^T是非奇异下三角矩阵,Ax=b可以写成:

\begin{bmatrix} a_{11} &a_{12} &\cdots &a_{1n} \\ 0 &a_{22} &\cdots &a_{2n} \\ \vdots &\vdots & \ddots & \vdots \\ 0 &0 &\cdots & a_{nn} \end{bmatrix}\, \, \begin{bmatrix} x_1\\ x_2\\\vdots \\ x_n\end{bmatrix}=\begin{bmatrix} b_1\\ b_2\\\vdots \\ b_n\end{bmatrix}

可推出:

\begin{matrix} x_n=b_n/a_{nn}\\ x_{n-1}=(b_{n-1}-a_{n-1n}x_{n-1})/a_{n-1n-2}\\ x_{n-2}=(b_{n-2}-a_{n-2n-1}x_{n-1}-a_{n-2n}x_n)/a_{n-2n-2}\\ \vdots \\ x_1=(b_1-a_{1n}x_n-\cdots -a_{12}x_{2})/a_{11} \end{matrix}

跟下三角矩阵同理,需要n^2次计算。

正交矩阵

矩阵A为正交矩阵的条件是A^TA=I \Leftrightarrow A^{-1}=A^T,求解Ax=b\Leftrightarrow x=A^{-1}b=A^Tb,即计算2n^2次。

如果A具有特殊结构,也可以减少计算量,比如A =I -2uu^T,\begin{Vmatrix} u\end{Vmatrix}_2=1,此时x=A^Tb=(I-2uu^T)^Tb=(I-2uu^T)b=b-2uu^Tb,只需要4n次计算。

排列矩阵

\pi =(\pi _1,\cdots,\pi _n)(1,2,\cdots,n)的一种排列,相应的排列矩阵A \in R^{n\times n}定义为:

A_{ij}=\left\{\begin{matrix} 1 &j=\pi_i \\ 0 & otherwise \end{matrix}\right.

排列矩阵的每行(每列)只有一个元素等于1,所有其他元素都为0。排列矩阵的逆矩阵就是逆排列对应的排列矩阵。实际上就是A^T,而与1相乘不需要运算。该排列矩阵的方程组的求解需要0个运算。

因式分解求解算法

将A表示为一系列非奇异矩阵的乘积,A=A_1A_2\cdots A_kx=A^{-1}b=A_k^{-1}A_{k-1}^{-1}\cdots A_1^{-1}b,可推出:

z_1=A_1^{-1}b\\ z_2=A_2^{-1}z_1=A_2^{-1}A_1^{-1}b\\ \vdots \\ z_{k-1}=A_{k-1}^{-1}z_{k-2}=A_{k-1}^{-1}\cdots A_1^{-1}b\\ z_k=A_k^{-1}z_{k-1}=A_k^{-1}A_{k-1}^{-1}\cdots A_1^{-1}b\\

可以通过这种方法求解:

A_1x_1=b,A_2x_2=x_1,\cdots ,A_kx=x_{k-1}

求解多个右边项的方程组

考虑求解方程组Ax_b_1,Ax_2=b_2,\cdots ,Ax_m=b_m,A \in R^{n \times n}是非奇异矩阵,将方程组等价于计算矩阵X=A^{-1}B,其中X=\begin{bmatrix} x_1 &x_2 &\cdots &x_m \end{bmatrix}\in R^{n \times m}, B =\begin{bmatrix} b_1 &b_2 &\cdots &b_m \end{bmatrix}\in R^{n \times m}

求解先对A进行因式分解,成本为f,然后对i=1,\cdots ,m通过过求解步骤计算A^{-1}b_i,总计算量是f+ms。

 

来源:https://blog.youkuaiyun.com/wangchy29/article/details/87903699

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值