线性方程组的类型及求解(一)(备份草稿)

本专题总结和归纳了本学期笔者所学的《矩阵理论》和《数值分析》课程中,可以用来求解线性方程组的方法和技巧。由于篇幅有限,不得不一分为二,本文涉及相容线性方程组的解法,而不相容线性方程组的解法可参见《线性方程组的类型及求解》(二)。
目录
预备工作
一. Gramer法则
二. 高斯消元法
三. 矩阵分解法

  1. 三角分解
    1.1 形式一:满秩方阵 1.1.1 QR分解; 1.1.2 LU分解; 1.1.3 Cholesky分解
    1.2 形式二: 行满秩矩阵 1.2.1 QR分解; 1.2.2 LU分解
    1.3 形式三: 列满秩矩阵 1.3.1 QR分解; 1.3.2 LU分解
    1.4 形式四: 任意矩阵 1.4.1 QR分解
    四. 迭代解法
  2. 迭代思想
    1.1 不动点迭代法 1.1.1 迭代格式; 1.1.2 收敛性; 1.1.3 收敛速度
    1.2 牛顿迭代法 1.2.1 迭代格式; 1.2.2 收敛性; 1.2.3 收敛速度; 1.2.4 变形
    1.3 Gauss–Newton迭代法
  3. Jacobi迭代法 2.1 迭代格式; 2.2 收敛性; 2.3 终止准则
  4. Gauss-Seidel迭代法 3.1 迭代格式; 3.2 收敛性; 3.3 终止准则
  5. SOR迭代法 4.1 迭代格式; 4.2 收敛性;
  6. 最速下降法
    五. 最小二乘解法 1. 模型; 2. 定理; 3. 应用场景
    六. 广义逆解法
    七. 附录
  7. 矩阵分解
  8. 向量与矩阵的范数
  9. 特征值的估计

预备工作:
(1)线性方程组类型的判断:首先我们要先判断出待解线性方程组是相容的还是不相容的;
一个方程组若至少存在一个解能够严格满足该方程组,则称为相容方程组(充要条件: rank([A,b])=rank(A) );无解的方程组称为不相容方程组;方程个数多于未知数个数的方程组称为超定方程组。

(2)解的存在性判断:对于相容的线性方程组,我们在解线性方程组之前,一定要先判断其存在性,否则倘若该线性方程组无解,那么我们后面所尝试的一切,都是徒劳和浪费生命!判断一个线性a方程组是否有解的方法如下: 对于 Ax=b ,如果 rank[A] 首先,我们来复习一下相容线性方程组的解法。
一. Gramer法则
设 n 阶矩阵 A 可逆,则线性方程组 Ax=b 有唯一解 x^T=(x_1,x_2,…,x_n) ,其中 x_i=\frac{detA_i}{detA}(i=1,2,…,n) 。
二. 高斯消元法
此处不再赘述,在接下来的1.1.2的分解方法2中有复习到,高斯消元法的本质可以看成是LU分解。
三. 矩阵分解法
矩阵分解是将一个矩阵分解为比较简单的或具有某种特性的若干矩阵的和或乘积。矩阵分解一方面可以反映原矩阵的某些数值特征,另一方面其分解方法与过程往往为某些有效的数值计算方法和理论分析提供了重要的依据,因而使其对分解矩阵的讨论和计算带来了极大的方便。在这里,我们主要运用矩阵分解来有效地进行线性方程组的求解运算。

  1. 三角分解
    思路:首先将待求解的线性方程组抽象成 Ax=b 的形式。比如矩阵 A 能够被分解为 A=UR ,那么可以将原问题转化为 URx=b ,即 Rx=U^Hb 。由于 R 是一个上三角矩阵,则我们可以很容易地先求解出最后一行的 x_n ;然后借助x_n代入倒数第二行,求解出 x_{n-1} ;继续借助 x_n 、 x_{n-1} 代入倒数第三行,求解出倒 x_{n-2} ,以此类推。(话说三角分解应该还可以用数组来存储和还原稀疏矩阵,极大降低了空间占用,这应该是也是它的一个应用吧)
    分解方法的选择:为了让读者直观地感受我们为什么可以用三角分解来简化线性方程组的求解,上述只列举了诸多三角分解方法中的一种。那么问题来了,给定一个线性方程组,我们抽象成 Ax=b 的形式后,该怎么选择合适的三角分解方法呢?答案是:首先判断矩阵 A 的秩,得出它的形式,然后再继续判断它的一些结构特征。
    1.1 形式一: 满秩方阵( A\in \mathbb{C}n^{n \times n}或 A\in \mathbb{R}n^{n \times n} )
    1.1.1 QR分解
    分解形式:若A\in \mathbb{C}n^{n \times n}(A\in \mathbb{R}n^{n \times n}),则可以唯一地分解为 A=UR 或 A=LU( A=QR 或 A=LQ )。
    U 是酉矩阵, Q是正交矩阵,R 是正线上三角复(实)矩阵, L 是正线下三角复(实)矩阵。(注意:上(下)三角矩阵、正线上(下)三角复(实)矩阵和单位上(下)三角复(实)矩阵的定义)
    在这里首先就要注意: L 的意思是lower, U 的意思是upper。
    分解方法:
    分解矩阵 A 为 A=UR (A=QR):
    (1)首先对 A 进行列分块,得列分块向量 (\alpha_1,\alpha_2,…,\alpha_n) ;
    (2)对列分块向量施密特正交化,得到正交向量 (\beta_1,\beta_2,…,\beta_n) ;
    \beta_1=\frac{\alpha_1}{||\alpha_1||} , \beta_2=\frac{\alpha_2-(\alpha_2,\beta_1)\beta_1}{||\alpha_2-(\alpha_2,\beta_1)\beta_1||} , \beta_3=\frac{\alpha_3-(\alpha_3,\beta_1)\beta_1-(\alpha_3,\beta_2)\beta_2}{||\alpha_3-(\alpha_3,\beta_1)\beta_1-(\alpha_3,\beta_2)\beta_2||} , … , \beta_i=\frac{\alpha_i-\sum
    {j=1}{i-1}(\alpha_i,\beta_j)\beta_j}{||\alpha_i-\sum_{j=1}{i-1}(\alpha_i,\beta_j)\beta_j||} 。
    (3)令系数 k
    {ij} 和 k
    {ii} ,用正交向量表示列分块向量,得出 U ( Q )和 R 。
    \left{ \begin{array}{1} k
    {ij}=(\alpha_i,\beta_j) \quad i=2,3,…,n;j=1,2,…,i-1\ k_{ii}=\left{\begin{array}{1}||a_{ij}|| \quad i=1 \ ||a_i-\sum_{j=1}^{i-1}(\alpha_i,\beta_j)\beta_j|| \quad i=2,3,…,n \end{array}\right. \end{array} \right. ,
    A=(\alpha_1,\alpha_2,…,\alpha_n)=(k_{11}\beta_1,k_{21}\beta_1+k_{22}\beta_2,…,k_{n1}\beta_1+k_{n2}\beta_2+…+k_{nn}\beta_n)\=(\beta_1,\beta_2,…,\beta_n) \begin{Bmatrix} k_{11} &k_{21}&…&k_{n1}\ 0 &k_{22} &…&k_{n2}\ &…\ 0 &0 &… &k_{nn} \end{Bmatrix}
    (A=LU 或 A=LQ分解方法类似,即一开始进行行分块,此处不再赘述)(待解决问题1:如何深刻理解施密特正交化,而非硬记公式)
    例如:求 A=\begin{pmatrix}1&0&2\1&1&0\1&2&3 \end{pmatrix} 的QR分解,结果为
    \begin{pmatrix} \sqrt{3}/3 &-\sqrt{2}/2&\sqrt{6}/6\ \sqrt{3}/3 &0 &-\sqrt{6}/3\ \sqrt{3}/3 &\sqrt{2}/2 &\sqrt{6}/6 \end{pmatrix} \begin{pmatrix} \sqrt{3}&\sqrt{3}&5\sqrt{3}/3\ 0&\sqrt{2}&\sqrt{2}/2\ 0&0&5\sqrt{6}/6 \end{pmatrix}
    1.1.2 LU分解( A 的各阶顺序主子式的行列式均不为零)
    分解形式:若A\in \mathbb{C}n^{n \times n}(\mathbb{R}n^{n \times n}),且 A 的各阶顺序主子式行列式不为零,则可以唯一地分解为 A=LR*=LR=L*DR (都要求主对角线上元素不为0)。(待解决问题2:证明这4个命题相互等价)
    R 为上三角复(实)矩阵, L 为下三角复(实)矩阵, R^* 为单位上三角复(实)矩阵, L^* 为单位下三角复(实)矩阵, D 为对角矩阵
    分解方法1(待定系数法):
    分解矩阵 \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix} 为 L^*R :
    (1)写出含待定系数的分解形式;
    \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix}= \begin{pmatrix} 1\l
    {21}&1\l
    {31}&l_{32}&1\l_{41} &l_{42}&l_{43}&1 \end{pmatrix} \begin{pmatrix} u_{11}&u_{12}&u_{13}&u_{14}\&u_{22}&u_{23}&u_{24}\&&u_{33}&u_{34}\&&&u_{44} \end{pmatrix}
    (2)按照规则“ 先行后列”、“列除行不除”、“旧元素减去其所在行和列前(k-1)个元素的对应乘积然后求和”,对照上式一步步地写出待定系数。
    \begin{align} \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix}&= \begin{pmatrix} 1\3/2&1\1&l_{32}&1\2 &l_{42}&l_{43}&1 \end{pmatrix} \begin{pmatrix} 2&4&4&2\&u_{22}&u_{23}&u_{24}\&&u_{33}&u_{34}\&&&u_{44} \end{pmatrix}&\&=\begin{pmatrix} 1\3/2&1\1&0&1\2&-2&l_{43}&1 \end{pmatrix} \begin{pmatrix} 2&4&4&2\&-3&6&3\&&-5&0\&&&u_{44} \end{pmatrix}\&=\begin{pmatrix} 1\3/2&1\1&0&1\2&2&19/5&1 \end{pmatrix} \begin{pmatrix} 2&4&4&2\&-3&6&3\&&-5&0\&&&-9 \end{pmatrix} \end{align}
    分解方法2(高斯消元法抽象):
    分解对象同上:
    (1)搭建框架;
    \begin{pmatrix}1\&1\&&1\&&&1\end{pmatrix}\begin{pmatrix}2&4&4&2\3&3&12&6\2&4&-1&2\4&2&1&1\end{pmatrix}=\begin{pmatrix}&\&\&\&&&&&\end{pmatrix}
    (2)提取高斯消元(即初等行变换)过程中的乘子和结果。(注意行列的对应,第 i 行对第 j 行做初等行变换的乘子,对应到结果矩阵的 A_{ji} 元素)
    \begin{pmatrix}1\-3/2&1\-1&&1\-2&&&1\end{pmatrix}\begin{pmatrix}2&4&4&2\3&3&12&6\2&4&-1&2\4&2&1&1\end{pmatrix}=\begin{pmatrix}2&4&4&2\0&-3&6&3\0&0&-5&0\0&-6&-7&-3\end{pmatrix}\ \Rightarrow\begin{pmatrix}1\-3/2&1\-1&0&1\-2&-2&&1\end{pmatrix}\begin{pmatrix}2&4&4&2\3&3&12&6\2&4&-1&2\4&2&1&1\end{pmatrix}=\begin{pmatrix}2&4&4&2\0&-3&6&3\0&0&-5&0\0&0&-19&-9\end{pmatrix}\ \Rightarrow\begin{pmatrix}1\-3/2&1\-1&0&1\-2&-2&-19/5&1\end{pmatrix}\begin{pmatrix}2&4&4&2\3&3&12&6\2&4&-1&2\4&2&1&1\end{pmatrix}=\begin{pmatrix}2&4&4&2\0&-3&6&3\0&0&-5&0\0&0&0&-9\end{pmatrix}\ \Rightarrow\begin{pmatrix}2&4&4&2\3&3&12&6\2&4&-1&2\4&2&1&1\end{pmatrix}=\begin{pmatrix}1\3/2&1\1&0&1\2&2&19/5&1\end{pmatrix}\begin{pmatrix}2&4&4&2\0&-3&6&3\0&0&-5&0\0&0&0&-9\end{pmatrix}\
    注意三点:
    (1)利用高斯消元法对矩阵 A 进行 LU 矩阵分解时,绝对值小的主元可能产生麻烦,因此一般在进行前先判断是否对行进行调整。假设调整后的矩阵是 B ,对其分解为 B=L^U ,那么, A 的分解又该表示为什么形式呢?我们用一个单位矩阵 I 来表征这种变换,如果要交换矩阵 A 中的一些行,那我们就对单位矩阵 I 中相应的行进行交换,得到矩阵 P 。因此有 PA=L^U\Rightarrow A=P{-1}LU ;
    (2)得到 A=L^U 后,我们可以很容易地基于此得到 A=L*DU 和A=LU^
    ,接着上面的例子:
    \begin{align} \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix} &=\begin{pmatrix} 1\3/2&1\1&0&1\2&2&19/5&1 \end{pmatrix} \begin{pmatrix} 2&4&4&2\&-3&6&3\&&-5&0\&&&-9 \end{pmatrix} \end{align} =L^U ;则能够很容易地将 U 拆成 DU^ 的形式,从而写出它的 L*DU
    分解为 \begin{align} \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix} &=\begin{pmatrix} 1\3/2&1\1&0&1\2&2&19/5&1 \end{pmatrix} \begin{pmatrix} 2&&&\&-3&&\&&-5&\&&&-9 \end{pmatrix}\begin{pmatrix}1&2&2&1\&1&-2&-1\&&1&0\&&&1\end{pmatrix} \end{align} ;将上述中的 L^D 合为一项 L ,从而写出它的 LR^ 分解为 \begin{align} \begin{pmatrix} 2&4&4&2 \3&3&12&6\2&4&-1&2\4&2&1&1 \end{pmatrix} &=\begin{pmatrix} 2\3&-3\2&0&-5\4&-6&-19&-9\end{pmatrix}\begin{pmatrix}1&2&2&1\&1&-2&-1\&&1&0\&&&1\end{pmatrix} \end{align}
    (3)对于三对角矩阵,如果它的非零系数在主对角线上和两条次对角线上,那么可以对其进行 LU 分解,上述的两种分解方法都可以使用。
    (待解决问题3:单位上(下)三角矩阵的逆变换为:对角线外的其余元素取相反数,位置不变吗?)(已解决问题4:三对角矩阵的LU分解)
    1.1.3 Cholesky分解(A是实对称正定矩阵或Hermite正定矩阵)
    分解形式:若A\in \mathbb{C}_n^{n \times n}(\mathbb{R}_n^{n \times n}),且 A 同时还是Hermite正定矩阵(实对称正定矩阵),则可以唯一地分解为 A=R^HR (A=R^TR )
    R 是正线上三角复(实)矩阵。对于 A 同时还是Hermite正定矩阵的情况,它还可以分解为 A=R{*H}DR
    ,这里的 R^* 为单位上三角复矩阵, D 为对角阵)
    分解方法(待定系数法):
    分解矩阵 \begin{pmatrix} 4&-2&2\ -2&2&-4\ 2&-4&11 \end{pmatrix} 为 R^TR :
    (1)写出含待定系数的分解形式;
    \begin{pmatrix}4&-2&2\-2&2&-4\2&-4&11\end{pmatrix}=\begin{pmatrix}l_{11}\l_{12}&l_{22}\l_{13}&l_{23}&l_{33}\end{pmatrix}\begin{pmatrix}l_{11}&l_{12}&l_{13}\&l_{22}&l_{23}\&&l_{33}\end{pmatrix}=\begin{pmatrix}l_{11}2&l_{11}l_{12}&l_{11}l_{13}\l_{11}l_{12}&l_{12}2+l_{22}2&l_{12}l_{13}+l_{22}l_{23}\l_{11}l_{13}&l_{12}l_{13}+l_{22}l_{23}&l_{13}2+l_{23}2+l_{33}2\end{pmatrix}
    (2)对照上式一步步地写出待定系数;
    \begin{align} \begin{pmatrix}4&-2&2\-2&2&-4\2&-4&11\end{pmatrix}&=\begin{pmatrix}2\-1&l_{22}\1&l_{23}&l_{33}\end{pmatrix}\begin{pmatrix}2&-1&1\&l_{22}&l_{23}\&&l_{33}\end{pmatrix}\&= \begin{pmatrix}2\-1&l_{22}\1&l_{23}&l_{33}\end{pmatrix}\begin{pmatrix}2&-1&1\&l_{22}&l_{23}\&&l_{33}\end{pmatrix} \end{align}
    接着算,就迎刃而解了
    (已解决问题5: 此处算出来的结果不止一种哟!(定理中分解结果是正线三角阵!所以以后分解,对角元素就直接取正数吧!)
    (待解决问题6:如何判断正定矩阵,实对称正定矩阵?)(待解决问题7:证明这两个结论)
    1.2 形式二: 行满秩矩阵( A\in \mathbb{C}m^{m \times n}或 A\in \mathbb{R}m^{m \times n} )
    1.2.1 QR分解
    分解形式:设 A\in \mathbb{C}m^{m \times n} ,则存在 n 阶酉矩阵 U 及 m 阶正线下三角矩阵 L ,使得 A=[L,O]U 。
    其中 O 为零矩阵。
    分解方法:
    证明:教材P92页,这里先选取了与行向量组 \alpha_1,\alpha_2,…,\alpha_m 线性无关的向量组 \alpha
    {m+1},\alpha
    {m+2},…,\alpha_n 补全,为的就是的到一个 n 阶的酉矩阵 U,但特别注意的是,因为 L 是 m 阶的,所以它的系数还是通过计算前 m 阶的酉矩阵过程中得到的
    分解矩阵 \begin{pmatrix}2&1&-2&3\0&4&1&1\2&5&-2&4\end{pmatrix} :
    方法就和满秩方阵的QR分解一样,施密特正交化后得到酉矩阵 U , k
    {ij} 可能不够,所以最后在下面补0就是了。但特别要注意的是:
    (1)一定不要行满秩用列分块!否则分解出来就成了 \begin{pmatrix}\sqrt2/2&-\sqrt 6/6&\sqrt 3/3&0\0&\sqrt 6/3&\sqrt3/3&0\\sqrt2/2&\sqrt6/6&-\sqrt3/3&0\\end{pmatrix} \begin{pmatrix}2\sqrt2&3\sqrt3&-2\sqrt2&7\sqrt2/2\&2\sqrt6&-\sqrt6/3&\sqrt6/2\&&\sqrt3/3&0\&&&0\end{pmatrix} ,什么鬼东西…所以一定要根据秩的情况选对分解的形式;
    (2)选好分解形式后,就把框架先放上来,然后边做边填元素!尤其是 k_{ij} ,否则最后找很难受,也很容易出错。
    1.2.2 LU分解
    分解形式:设 A\in \mathbb{C}_m^{m \times n},则 A 可以唯一地分解为 A=LU ,其中 L 是 m 阶正线下三角矩阵, U\in U_m^{m\times n } 。
    为了方便叙述,我们用 U_m^{m\times n } 表示以 m 个两两正交的单位向量为行组成的矩阵的集合。
    分解方法:从证明过程中感受
    证明:教材P93页
    1.3 形式三: 列满秩矩阵( A\in \mathbb{C}_n^{m \times n}或 A\in \mathbb{R}_n^{m \times n} )
    1.3.1 QR分解
    分解形式:设 A\in \mathbb{C}_n^{m \times n} ,则存在 m 阶酉矩阵 U 及 n 阶正线上三角矩阵 R ,使得 A=U \begin{bmatrix}R\O \end{bmatrix} 。
    其中 O 为零矩阵。
    分解方法:
    不再赘述。
    1.3.2 LU分解
    分解形式:设 A\in \mathbb{C}_n^{m \times n},则 A 可以唯一地分解为 A=UR ,其中 U\in U_n^{m\times n } ,R 是 n 阶正线上三角矩阵,。
    为了方便叙述,我们用 U_n^{m\times n } 表示以 n 个两两正交的单位向量为列组成的矩阵的集合。
    分解方法:从证明过程中感受
    证明:教材P93页
    1.4 形式四: 任意矩阵( A\in \mathbb{C}_r^{m \times n}或 A\in \mathbb{R}_r^{m \times n} )
    1.4.1 QR分解
    分解形式:设 A\in \mathbb{C}_r^{m \times n} ,则存在酉矩阵 U \in \mathbb{C}^{m \times m},V\in\mathbb{C}^{n \times n} 及 r 阶正线下三角矩阵 L ,使得 A=U\begin{bmatrix}L&O\O&O\end{bmatrix} V
    其中 O 为零矩阵。
    分解方法:貌似不好手算,从证明过程中感受思想,咋一看要进行两次施密特正交化来得到U和V,而L则是在第二次施密特正交化的时候得到的。
    证明:教材P94页,注意,调换行向量的时候是左乘P,这里调换列向量的时候则是右乘P了。
    推论:设 A\in \mathbb{C}_r^{m \times n} ,则存在酉矩阵 U \in \mathbb{C}^{m \times m},V\in\mathbb{C}^{n \times n} 及 r 阶正线上三角矩阵 R ,使得 A=U\begin{bmatrix}R&O\O&O\end{bmatrix} V 。
    四. 迭代解法
  2. 迭代思想
    首先让我们来感受数值分析中迭代解法的思想,从“不动点迭代法”和“牛顿迭代法”讲起,它们主要用来求解非线性方程(或方程组),我们一般围绕着“迭代格式”、“收敛性”和“收敛速度”三个方面来进行讨论。
    1.1 不动点迭代法
    1.1.1 迭代格式
    思想很简单: f(x^)=0\Leftrightarrow x*=\varphi(x)\Rightarrow x_n=\varphi(x_{n-1}) ,即 f(x) 的根 \Leftrightarrow \varphi(x) 的不动点。具体操作为:选择适当的初始值 x_0 按照如下的迭代格式计算: x=\varphi(x)\Rightarrow x_{n+1}=\varphi(x_n), n=0,1,2,… ,如果数列 {x_n} 有极限 x^=\lim_{n \to \infty} x_n ,则称迭代是收敛的, x^ 是非线性方程组的根和 \varphi(x) 的不动点。
    教材P43页习题4:先证数列有界、单调递增,则得到必有极限,即不动点存在,然后把迭代格式两边的x都换成不动点,就可以解出来了。注意:这里初始值有题目可知为 \sqrt{2} 。
    1.1.2 收敛性
    对于方程 x3+4x2-10=0 ,小试牛刀可以发现,构造出多种不同的迭代格式,有的收敛,有的却不收敛。那么问题来了,我们要写成什么样的迭代格式是可收敛的呢?有如下几个定理。
    (1)(存在唯一性)设 \varphi(x) \in C[a,b], 且 a \leq \varphi(x) \leq b 对一切 x \in [a,b] 成立,则 \varphi(x) 在 [a,b] 上一定有不动点。进一步设 \varphi(x) \in C^1(a,b), 且存在常数 0 这个定理说明了不动点存在唯一的充分条件。证明:教材P25-26页,要知道C[a,b],C^1[a,b] 记号的意义,以及罗尔中值定理,拉格朗日中值定理。
    (2)(全局收敛性)设 \varphi(x) \in C^1[a,b] 且满足(1) a \leq \varphi(x) \leq b 对一切 x \in [a,b] 成立;(2)存在常数 0 证明:教材P26页,即证明 \lim_{n \to \infty}(x_n-x^)=0 ,构造 |\varphi(x_{n-1})-\varphi(x^)| ,用中值定理弄出 L 来,再递推出 L^n ,用到了|x^-x_n|\leq L|x^-x_{n-1}| (压缩映像);。且注意, |\varphi’(x)|<1 包含了两个意思,上界为1,下界为-1,一个都不能漏掉哟!
    (3)(全局收敛性的误差估计)设 \varphi(x) \in C^1[a,b] 且满足(1) a \leq \varphi(x) \leq b 对一切 x \in [a,b] 成立;(2)存在常数 0-x_n|\leq \frac{1}{1-L}|x_{n+1}-x_n| \leq \frac{L}{1-L}|x_n-x_{n-1}| 和 |x^-x_n|\leq \frac{L^n}{1-L}|x_1-x_0| 。
    证明:教材P26-27页,用到“差的绝对值大于等于绝对值的差”(但“和的绝对值小于等于绝对值的和”);该定理不仅可以用来估计迭代n次的误差,还可以用来估计达到给定的精度要求 \varepsilon 所需的迭代次数,即 \frac{1}{1-L}|x_{n+1}-x_n|\leq \varepsilon 。
    (4)(局部收敛性)设 x^* 为 \varphi(x) 的不动点, \varphi ‘(x) 在 x^* 连续且 |\varphi ‘(x^)|<1 ,则存在 x^ 的某邻域对任意 x_0 属于该邻域,迭代格式 x_{n+1}=\varphi(x_n) 产生的序列 {x_n} 收敛到不动点 x^* 。
    教材P44页习题8:利用局部收敛性定理判断迭代格式的收敛性,注意定理中是绝对值。
    (5)(局部保号性)若函数 f 在点 x^* 连续且 f(x^)>0, 则对任何正数 r), 存在某个邻域 R:|x-x^|<\delta, 使得对一切 x\in R 有 f(x)>r 。
    1.1.3 收敛速度
    既然我们能够根据上述收敛性定理来构造出收敛的迭代格式,但可能的结果也会有很多种,如果我们要选择其中收敛速度最快的那一种形式,又该如何判断呢?
    (1)定义
    设 \lim_{n \to \infty} x_n=x^
    (即序列 {x_n} 收敛于 x^* ),如果存在 a>0,p \geq1 使得 \lim_{n \to \infty} \frac{|x_{n+1}-x*|}{|x_n-x|^p}=a ,则称数列 {x_n} 为 p 阶收敛。特别地:当 p=1(a<1)时,称为线性收敛; 当 p>1时,称为超线性收敛; 当 p=2时,称为平方收敛。序列的收敛阶数越高,则收敛速度越快。
    (2)定理
    设 x^
    为方程 x=\varphi(x) 的根。如果迭代函数 \varphi(x) 满足条件:(1)\varphi(x)在 x^* 邻近是 p 次连续可微的 (p \geq 2) ;(2) \varphi’(x*)=\varphi’’(x)=…=\varphi{(p-1)}(x)=0 而 \varphi{§}(x) \neq0 ,则当初值 x_0 取得充分靠近 x^ 时,迭代格式 x_{n+1}=\varphi(x_n) 是 p 阶收敛的。
    教材P44页习题11:用定理判断阶数,且 x^* 为第(2)问算出的近似值。
    1.2 牛顿迭代法
    1.1.1 迭代格式
    x_{n+1}=x_n-\frac{f(x_n)}{f’(x_n)}\quad (n=0,1,2,…) 。
    推导:教材P30-31页,以及它的几何意义。
    1.1.2 收敛性
    (局部收敛定理)假设 f(x) 在 x^* 的某邻域内具有连续的二阶导数,且设 f(x*)=0,f’(x) \neq 0 ,则对充分靠近 x^ 的初始值 x_0 ,牛顿迭代法产生的序列 {x_n} 至少平方收敛于 x^* 。
    注意:
    (1)需要构造迭代格式时,如果没指明需要构造的形式,往往我们可以首先考虑牛顿迭代法。
    (2)牛顿迭代法至少二阶收敛的前提是没有重根,但如果遇到有重根的情况则需要更加仔细地代入公式进去算,因为在计算过程中,能够导致为0的元素可能分子分母消去,比如 f(x)=(x2-a)2 。(详情参见总复习PPT或笔记)
    (3)牛顿迭代法擅长处理非线性方程,所以在对于实际问题构造时往往要往非线性方程构造,比如对于同一个问题构造为 f(x)=x-\frac{1}{a} 是无法使用牛顿迭代法的,应该构造为 f(x)=\frac{1}{x}-a 。(详情参见总复习PPT或笔记)
    (推论)设 x^* 是 f(x)=0 的二重根,则牛顿迭代法只具有一阶收敛。
    对于计算重根的修正后的牛顿迭代法,参见教材P38页
    1.1.3 收敛速度
    给定方程 f(x)=0 ,如果函数 f(x) \in C^2[a,b],且在 [a,b] 满足条件:(1) f(a)f(b)<0; (2) f’(x),f’’(x) 在 [a,b] 上连续且不变号(恒为正或恒为负);(3)取 x_0 \in [a,b] 使得 f(x_0)f’’(x_0)>0 ,则方程 f(x)=0 在 [a,b] 上有唯一根 x^* ,且由初值 x_0 按牛顿迭代公式 x_{n+1}=x_n-\frac{f(x_n)}{f’(x_n)} \quad(n=0,1,2,…) 求得的序列 {x_n} 二阶收敛于 x^* 。
    证明:教材P34-35页
    1.1.4 变形
    (1)牛顿下山法
    当初始值选择有困难时,可改用如下迭代格式以扩大初值的选择范围: x_{n+1}=x_n-\lambda \frac{f(x_n)}{f’(x_n)} \quad(n=0,1,2,…) ,其中 \lambda 称为a下山因子,他的选取应该满足单调条件|f(x_{n+1})|<|f(x_n)| 。
    (2)弦截法
    用差商 \frac{f(x_n)-f(x_{n-1})}{x_n-x_{n-1}} 代替导数 f’(x_n) 得 x_{n+1}=x_n-\frac{f(x_n)}{f(x_n)-f(x_{n-1})}(x_n-x_{n-1}) \quad(n=0,1,2,…) 。
    1.3 Gauss–Newton迭代法
    前面提到的两种方法都用来处理非线性方程的,而这一个方法则可以用来处理非线性方程组,也是一种迭代思想的极好体现。将非线性方程组抽象为 x=[x_1,…,x_n]^T 和 F(x)=[f_1(x_1,…,x_n),…,f_n(x_1,…,x_n)]T=[f_1(x),…,f_n(x)]T ,类比牛顿迭代 f’(xk)(x-xk)=-f(x^k) \Rightarrow x{k+1}=xk-\frac{f(xk)}{f’(xk)} 可得 F’(xk)(x-xk)=-F(x^k)\Rightarrow x{k+1}=xk-[F’(xk)]{-1}F(x^k) ,其中
    \begin{aligned} F’(x)= \begin{bmatrix} \frac{\partial f_1(x)}{\partial x_1} &\frac{\partial f_1(x)}{\partial x_2}&…&\frac{\partial f_1(x)}{\partial x_n}\ \frac{\partial f_2(x)}{\partial x_1} &\frac{\partial f_2(x)}{\partial x_2}&…&\frac{\partial f_2(x)}{\partial x_n}\ …&…&&…\ \frac{\partial f_n(x)}{\partial x_1}&\frac{\partial f_n(x)}{\partial x_2}&…&\frac{\partial f_n(x)}{\partial x_n} \end{bmatrix} \end{aligned} 。
    注意需要使用多元函数的一阶泰勒展开,类比 f(x) \approx f(xk)+f’(xk)(x-x^k)=0 ,以二元函数为例进行一阶泰勒展开: f_1(x_1,x_2)\approx f_1(x_1k,x_2k)+\begin{pmatrix} \frac{\partial f_1(x_1k,x_2k)}{\partial x_1k}(x-x_1k)\\frac{\partial f_1(x_1k,x_2k)}{\partial x_2k}(x-x_2k) \end{pmatrix}=\frac{\partial f_1(x_1k,x_2k)}{\partial x_1k}(x-x_1k)+\frac{\partial f_1(x_1k,x_2k)}{\partial x_2k}(x-x_2k)=0
    f_1(x_1,x_2)\approx f_2(x_1k,x_2k)+\begin{pmatrix} \frac{\partial f_2(x_1k,x_2k)}{\partial x_1k}(x-x_1k)\\frac{\partial f_2(x_1k,x_2k)}{\partial x_2k}(x-x_2k) \end{pmatrix}=\frac{\partial f_2(x_1k,x_2k)}{\partial x_1k}(x-x_1k)+\frac{\partial f_2(x_1k,x_2k)}{\partial x_2k}(x-x_2k)=0
    其本质就是“化”为线性方程组,参见上面的形式能够很容易构造出迭代格式:
    \begin{pmatrix}f_1(x_1,x_2)\f_2(x_1,x_2) \end{pmatrix}=\begin{pmatrix} f_1(x_1k,x_2k)\f_2(x_1k,x_2k) \end{pmatrix}+\begin{pmatrix} \frac{\partial f_1(x_1,x_2)}{\partial x_1^k} &\frac{\partial f_1(x_1,x_2)}{\partial x_2^k}\\frac{\partial f_2(x_1,x_2)}{\partial x_1^k} &\frac{\partial f_1(x_1,x_2)}{\partial x_2^k} \end{pmatrix} \begin{pmatrix} x-x_1k\x-x_2k \end{pmatrix}=0 ,后面的迭代构造不再赘述。
    PPT第5章的例题3。
  3. Jacobi迭代法
    2.1 迭代格式
    已知线性方程组 \sum_{j=1}^{n}a_{ij}x_j=b_i \quad(i=1,2,…,n) ,其Jacobi迭代的:
    (1)代数表示为 a_{ii}x_i{(k+1)}=[b_i-\sum_{j=1}{i-1}a_{ij}x_j{(k)}-\sum_{j=i+1}na_{ij}x_j^{(k)}] ;
    (2)矩阵表示为 Dx{(k+1)}=(L+U)x{(k)}+b ,即
    x{(k+1)}=D{-1}(L+U)x{(k)}+D{-1}b ,其中
    A=D-L-U\quad D=\begin{bmatrix}a_{11}\&a_{22}\ &&…\&&&a_{nn} \end{bmatrix}\quad L=-\begin{bmatrix} 0\ a_{21} &0 \… &…&…\ a_{n1}&…&a_{n,n-1}&0 \end{bmatrix} \quad
    U=-\begin{bmatrix} 0 &a_{12}&…&a_{1n}\ &…&…&…\ &&0&a_{n-1,n}\ &&&0 \end{bmatrix} 。
    要注意区分几个概念: A 为系数矩阵, D^{-1}(L+U)=B 为迭代矩阵,整个 后面的式子记为\varphi(x) ,称为迭代格式。
    2.2 收敛性
    (1)设有迭代格式 x{(k+1)}=Bx{(k)}+f \quad (k=0,1,2,…) ,则迭代法产生的序列收敛的充分必要条件是 \lim_{k \to \infty}B^k=0 。
    证明:教材P82页。注意此处的 B,f 是Jacobi迭代和Gauss-Seidel迭代法的矩阵迭代格式中对应元素得来的
    (2)设有迭代格式 x{(k+1)}=Bx{(k)}+f \quad (k=0,1,2,…) ,则它收敛的充分必要条件是迭代矩阵的谱半径 \rho(B)<1 (充要条件)。
    证明:教材P83页,其中 \rho(B)=\operatorname*{max}_{1\leq k\leq n}|\lambda_k| 。
    教材P102页习题4:这种求范围千万不要用充分条件,必须充要条件的哈!
    (3)设 |\cdot| 为 R^{n \times n} 上任意相容的矩阵范数,则对任意的 A \in R^{n \times n} ,有 \rho(A) \leq |A| 。谱半径小于1是迭代收敛的充要条件,但它不易计算,所以在实际中通常并不好用。则我们得到如下推论:若 |B| \leq 1 ,则对任意的 f 和任意的初始向量 x^{(0)} ,迭代法 x{(k+1)}=Bx{(k)}+f 收敛(充分条件)。
    (4)若 Ax=b 的系数矩阵 A 是严格对角占优矩阵,则Jacobi迭代和Gauss-Seidel迭代均收敛(充分条件,注意这里是系数矩阵,而前面的3个定理是迭代矩阵!)。
    证明:教材P86页,严格对角占优矩阵的每行主对角线元素的绝对值,大于该行其余元素的绝对值的和。(在科学工程计算中,实际求解的线性方程组的系数矩阵往往都具有某种特殊性质,我们可以从系数矩阵本身得出收敛条件,而不必求迭代矩阵及其特征值或范数)。
    教材P101页习题1(1):充分条件的使用套路,如果满足充分条件则直接秒解,如果不满足,因为是充分条件,所以不能否认,因此继续用其他充分条件甚至最终的充要条件去判断。
    2.3 终止准则
    若|B|<1 ,则对于迭代格式 x{(k+1)}=Bx{(k)}+f\quad (k=0,1,2,…) 有: |x*-x{(k)}| \leq \frac{|B|}{1-|B|}|x{(k)}-x{(k-1)}|,\quad|x*-x{(k)}| \leq \frac{|B|k}{1-|B|}|x{(1)}-x^{(0)}|, 其中 x^* 为方程组 Ax=b 的精确解。
    证明:教材P85页。该形式很好记忆,类比到不动点迭代的误差估计公式就ok了!还是用类比不动点那个来证明比较好理解,从 |x{(k+1)}-x{(k)}| 开始!注意分误差和压缩映像,后者全是以 x^* 为对照的!
  4. Gauss-Seidel迭代法
    3.1 迭代格式
    已知线性方程组 \sum_{j=1}^{n}a_{ij}x_j=b_i \quad(i=1,2,…,n) ,其Gauss-Seidel迭代的:
    (1)代数表示为 a_{ii}x_i{(k+1)}=[b_i-\sum_{j=1}{i-1}a_{ij}x_j{(k+1)}-\sum_{j=i+1}na_{ij}x_j^{(k)}] ;
    (2)矩阵表示为 (D-L)x{(k+1)}=Ux{(k)}+b ,即
    x{(k+1)}=(D-L){-1}Ux{(k)}+(D-L){-1}b 。
    Jacobi迭代法更加简单实用,Gauss-Seidel迭代法常用于收敛速度分析。此外,如果系数矩阵稀疏度为k,迭代法每次迭代花费O(kn)阶运算。关于Jacobi迭代法和Gauss-Seidel迭代法的算法步骤参见教材P81页
    3.2 收敛性
    同2.2,除此之外,还可以得到如下定理:
    (1)若 A 为对称正定矩阵,则Gauss-Seidel迭代收敛(充分条件)。
    证明:教材P87页,判断对称矩阵 A 正定的充分必要条件是 A 的 n 个特征值全为正数。
    3.3 终止准则
    同2.3,此处不再赘述
  5. SOR迭代法
    全名:逐次超松驰迭代法(Successive Over Relaxation) ,它是对Gauss-Seidel迭代法的推广和加速。
    4.1 迭代格式
    令 \overline{x_i}{(k+1)}=\frac{1}{a_{ii}}[b_i-\sum_{j=1}{i-1}a_{ij}x_j{(k+1)}-\sum_{j=i+1}{n}a_{ij}x_j^{(k)}] ,则利用松弛技术 x{(k+1)}=(1-\omega)xk+\omega \overline{x}^{(k+1)} 可以得到SOR的迭代格式为:
    {x_i}{(k+1)}=(1-\omega)x_i{(k)}+\omega\frac{1}{a_{ii}}[b_i-\sum_{j=1}{i-1}a_{ij}x_j{(k+1)}-\sum_{j=i+1}{n}a_{ij}x_j{(k)}] 。(矩阵形式可对照写出)
    松弛因子为1时迭代法是GS迭代法;松弛因子大于1时, 称为逐次超松弛方法;松弛因子小于1时, 称为逐次欠松弛方法。
    教材P102页习题7:注意 \omega 是安在Gauss-Sediel上的!实际上就是写出高斯赛德尔迭代后再加一个,写的时候为了避免糊涂,先方程组,再矩阵!
    4.2 收敛性
    (1)SOR迭代收敛的充要条件是 \rho(L_{\omega})<1 。
    这里的 L_{\omega}=(D-\omega L)^{-1}((1-\omega)D+\omega U) ,是迭代矩阵,从SOR的矩阵形式能够很容易得到。
    教材P102页习题8:先把迭代矩阵提取出来,在用充要条件分析。
    (2)SOR方法收敛的必要条件是 0<\omega<2 。
    证明:教材P90页
    (3)若 A 为严格对角占优矩阵,则当 0<\omega \leq 1 时,SOR迭代收敛。
    (4)若 A 是对称正定矩阵,则当 0<\omega<2 时,SOR迭代收敛。
    证明:教材P90页
  6. 最速下降法(针对一类特殊矩阵)
    5.1 初等变分原理
    设 A=(a_{ij}){n \times n} 为实对称正定矩阵, b,x\in \mathbb{R}^n ,则 x 使得二次函数 f(x)=\frac{1}{2}xTAx-bTx 取极小值的充分必要条件是 x 是线性方程组 Ax=b 的解(即二次函数的全局极小值点就是线性方程组的解)。
    即将求解方程组的过程与一个多元二次函数的极小值点相联系,但使用该定理的前提一定要注意是实对称正定阵!
    5.2 最速下降法
    最速下降法是求解二次函数极小点的一种简单而直观的方法,其思想是在 x 处,梯度方向是 f(x) 增长最快方向负梯度方向是 f(x) 下降最快方向,因此可以得到迭代格式 f(x)=f(x_k)+(\operatorname{grad}f(x_k))^T(x-x_k) ,其最速下降方向 r=-\operatorname{grad}f(x)=b-Ax ,选取每步的步长 t_k=\frac{r_kTr_k}{r_kTAr_k} 。(具体推导见复习PPT1-53页)
    算法步骤:
    (1)给定初始解 x^{(0)}\in \mathbb{R}^n ,计算 r_0=b-Ax^{(0)} ,置 k=0 ;
    (2)计算步长 t_k ,进行迭代 x{(k+1)}=x{(k)}+t_k r_k ,并计算 r
    {k+1}=b-Ax^{(k+1)} ;
    (3)重复(2),直到 |r_{k+1}| 在给定的精度以内。
    复习PPT1-54页例题11。

你可能感兴趣的:(科研数学基础)