《数值分析》-2-方程组

0.背景

在上一章中,我们研究单变量方程的求解方法。在这一章中,将研究同时求解多个多变量方程,并将大量注意力放在未知变量个数和方程个数相同的问题上。

高斯消去法是求解合适规模的线性方程的有用工具。

1. 高斯消去法

高斯消去可以有效地求解具有n个未知数的n个方程。

高斯消去主要由两个不等同的部分组成,相对计算代价庞大的消去过程,和相对计算代价小的回代过程。

n个方程n个未知数的消去计算,可以在\frac{2}{3}n^3+\frac{1}{2}n^2-\frac{7}{6}n次操作后完成。 

2. LU分解

LU分解是高斯消去的矩阵形式,它包含把系数矩阵A写做下三角矩阵L和上三角矩阵U的乘积。如果说高斯消去解决的问题为Ax=b,那么经过LU分解后该问题转化为LUx=b。

其中,U矩阵是由传统的高斯消去过程得到上三角矩阵,而对应的L矩阵则是:把1放在主对角线上,然后乘子按消去时它们的特定位置放在下三角矩阵得到。

如何利用LU分解转化回代步骤?

Ax=b ---> LUx=b --->c=Ux Lc=b 求c---> Ux=c 求x

因为L和U都是三角矩阵,这两步的运算非常直接。

为什么要进行LU分解?

一般我们遇到的Ax=b求解问题往往是一组不同问题,通常矩阵A为常量,而b经常变动,所以通过LU分解将b从包含A的计算中孤立出来,只进行一次消去过程,就能求解这类问题。

但是,并不是所有的矩阵都可以进行LU分解,我们需要在LU分解前做一些工作:部分主元。

3.误差

无穷范数 

向量x=(x_1,x_2,...,x_n)的无穷范数或者最大范数为{\left | \left | x \right | \right |}_\infty=max \left | x_i \right |,即x所有元素中的最大绝对值。

x_a是线性方程组Ax=b的近似解,余项是向量r=b-Ax_a.后向误差是余项的范数{\left \| b-Ax_a \right \|}_\infty,前向误差是{\left \| x-x_a \right \|}_\infty,相对后向误差是\frac{​{\left \| r \right \|}_\infty }{​{\left \| b \right \|}_\infty },相对前向误差\frac{​{\left \| x-x_a \right \|}_\infty }{​{\left \| x \right \|}_\infty }

误差放大因子为:

\frac{\frac{​{\left \| x -x_a \right \|}_\infty }{​{\left \| x \right \|}_\infty }}{\frac{​{\left \| r \right \|}_\infty }{​{\left \| b \right \|}_\infty }}

矩阵的条件数

矩阵A的条件数cond(A)为求解Ax=b时,对于所有右侧向量b,可能出现的最大误差放大因子

矩阵范数

nxn矩阵A的矩阵范数为{\left \| A \right \|}_\infty=每行元素绝对值之和的最大值,即对每行元素绝对值求和,并把n行求和的最大值作为矩阵A的范数。

令人惊讶的是,对于方阵有一个关于条件数的紧致的公式:

cond(A)=\left \| A \right \|\left \| A^{-1} \right \|

矩阵的1-范数

nxn矩阵A的矩阵1-范数是{\left \| A \right \|}_1=最大绝对列和,即列向量的1-范数的最大值。

 4.PA=LU分解

由于两个严重的障碍:0主元(导致消元无法进行)和淹没问题(乘子太大导致底部方程被抑制),之前我们考虑的高斯消去法称为“朴素”问题。对于一个非奇异矩阵,二者可以通过改进算法避免。改进策略的重点是交换系数矩阵的行,该方法称为部分主元。

部分主元

部分主元的思想是在每一步消除步骤之前,找到第一列中最大的一个元素,其对应行和主元行进行交换,即PA=LU。其中P为每步进行主元选择最终累计的置换矩阵。

运用部分主元法就讲Ax=b问题进一步转化为PAx=Pb -->LUx=Pb

再由Lc=Pb得到c,Ux=c得到x.

高斯列主元法的优势在于它有一个选主元的过程,这样做可以避免程序在进行消去操作时选取的主元素为0的情况,也减小了计算的舍入误差,从而提高了程序的普适性和结果的准确性。

5.迭代方法

高斯方法是求解线性方程组的直接方法。理论上,直接方法在有穷步里可以得到精确解。

迭代方法也可以用来求解线性方程组系统,和不动点迭代类似,方法从初始估计开始,然后在每步中不断精化估计,最后收敛到解向量。

雅可比方法 

雅可比方法是方程组系统中的一种形式的不动点迭代。

雅可比方法按照如下标准方式进行:

求解第i个方程得到第i个未知量;

然后使用不动点迭代,从初始估计开始,进行迭代。

但是雅可比方法并不总能成功得到解,了解该方法可以工作的条件有助于我们的理解。

首先来了解一下严格对角占优矩阵的概念。

严格对角占优矩阵的定义

对角元素在对应行占优,其对应值(绝对值)在数量上比该行其他元素的和还要大。

严格对角占优矩阵的性质

如果nxn矩阵A是严格对角占优矩阵,则A:

1)是非奇异矩阵;

2)对于所有向量b和初始估计,对Ax=b应用雅可比方法都能收敛到唯一解。

雅可比具体算法

矩阵A可以写成A=L+D+U,求解方程可以写为Lx+Dx+Ux=b可进一步化为x=D^{-1}(b-(L+U)x_k)

则雅可比迭代过程为:

x_0=初始向量;

x_{k+1}=D^{-1}(b-(L+U)x_k)

高斯-塞德尔方法

高斯-塞德尔方法和雅可比方法的差异在于,高斯-塞德尔方法更新的未知变量的值在每一步总都使用更新,即使更新发生在当前步骤。

高斯-塞德尔方法迭代过程为:

x_0=初始向量;

x_{k+1}=D^{-1}(b-Ux_k-Ux_{k+1})

连续过松弛方法(SOR)

连续过松弛方法使用高斯-塞德尔方法的求解方向,并使用过松弛加快收敛速度。

SOR可看作将Ax=b乘上w并重新组织方程:

(wL+wD+wU)x=wb

(wL+D)x=wb-wUx+(1-w)Dx

x=(wL+D)^{-1}[(1-w)Dx-wUx]+w(wL+D)^{-1}b

猜你喜欢

转载自blog.csdn.net/weixin_44307969/article/details/128049556