数值分析:线性方程组的直接解法

本篇文章适合个人复习翻阅,不建议新手入门使用
本专栏:数值分析复习 的前置知识主要有:数学分析、高等代数、泛函分析

线性方程组的直接解法

Gauss(高斯)消元法

设有线性方程组
{ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋮ a n 1 x 1 + a n 2 x 2 + ⋯ + a n n x n = b n \begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1\\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2\\ \vdots\\ a_{n1}x_1+a_{n2}x_2+\cdots+a_{nn}x_n=b_n\\ \end{cases} a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2an1x1+an2x2++annxn=bn

或写为矩阵形式
( a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ a n 1 a n 2 ⋯ a n n ) ( x 1 x 2 ⋮ x n ) = ( b 1 b 2 ⋮ b n ) \begin{pmatrix} a_{11}&a_{12}&\cdots&a_{1n}\\ a_{21}&a_{22}&\cdots&a_{2n}\\ \vdots\\ a_{n1}&a_{n2}&\cdots&a_{nn}\\ \end{pmatrix}\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix}=\begin{pmatrix} b_1\\b_2\\\vdots\\b_n \end{pmatrix} a11a21an1a12a22an2a1na2nann x1x2xn = b1b2bn

简记为 A x = b Ax=b Ax=b

解线性方程组的经典算法是以下所称的“Guass消元法”

定义:Guass(高斯)消元法
从第一列开始,依次将系数矩阵 A A A 每列对角线以下的元素变为零,得到一个上三角阵;方法是用该列对角线元素所在的行乘以相应倍数消去下面几行;
方程组化为
( a 11 ( 1 ) a 12 ( 1 ) ⋯ a 1 n ( 1 ) a 22 ( 2 ) ⋯ a 2 n ( 2 ) ⋱ a n n ( n ) ) ( x 1 x 2 ⋮ x n ) = ( b 1 ( 1 ) b 2 ( 2 ) ⋮ b n ( n ) ) \begin{pmatrix} a_{11}^{(1)}&a_{12}^{(1)}&\cdots&a_{1n}^{(1)}\\ &a_{22}^{(2)}&\cdots&a_{2n}^{(2)}\\ &&\ddots&\\ &&&a_{nn}^{(n)}\\ \end{pmatrix}\begin{pmatrix} x_1\\x_2\\\vdots\\x_n \end{pmatrix}=\begin{pmatrix} b_1^{(1)}\\b_2^{(2)}\\\vdots\\b_n^{(n)} \end{pmatrix} a11(1)a12(1)a22(2)a1n(1)a2n(2)ann(n) x1x2xn = b1(1)b2(2)bn(n)

这一步称为消元

然后依次计算 x n , x n − 1 , … , x 1 x_n,x_{n-1},\dots,x_1 xn,xn1,,x1,得到求解公式
{ x n = b n ( n ) a n n ( n ) x k = ( b k ( k ) − ∑ j = k + 1 n a k j ( k ) x j ) / a k k ( k ) , k = n − 1 , n − 2 , … , 1 \begin{cases} x_n=\frac{b_n^{(n)}}{a_{nn}^{(n)}}\\ x_k=(b_k^{(k)}-\sum\limits_{j=k+1}^na_{kj}^{(k)}x_j)/a_{kk}^{(k)},k=n-1,n-2,\dots,1 \end{cases} xn=ann(n)bn(n)xk=(bk(k)j=k+1nakj(k)xj)/akk(k),k=n1,n2,,1

这一步称为回代

Guass消元法的改进:选(列)主元的高斯消元法
一般的Guass消元法的缺点是:无法处理对角线元素为零的矩阵,原因是零无法做分母;并且如果对角线上的元素绝对值较小,可能会产生数量级较大的数,计算结果可能不稳定,从而造成较大误差;因此采用如下称为选主元的高斯消元法,其在原先方法的基础上,在对第 k k k 列进行消元时,考虑第 k k k 列的从第 k k k 行到最后一行的元素,选出绝对值最大的元素,将该元素所在的行与第 k k k 行交换,再进行消元

高斯消元法与矩阵的LU分解

高斯消元法的矩阵表示

高斯消元法的消元过程相当于对 A A A 依次左乘 n − 1 {n-1} n1 个下三角阵 L 1 , … , L n − 1 L_1,\dots,L_{n-1} L1,,Ln1,使其成为上三角阵U,记 L − 1 = L n − 1 ⋯ L 1 L^{-1}=L_{n-1}\cdots L_1 L1=Ln1L1
L 1 = ( 1 ∗ 1 ∗ 1 ⋮ ⋱ ∗ 1 ) , L 2 = ( 1 1 ∗ 1 ⋮ ⋱ ∗ 1 ) , … , L n − 1 = ( 1 1 ⋱ 1 ∗ 1 ) L_1=\begin{pmatrix} 1&&&&\\ *&1&&&\\ *&&1&&\\ \vdots&&&\ddots&\\ *&&&&1\\ \end{pmatrix},L_2=\begin{pmatrix} 1&&&&\\ &1&&&\\ &*&1&&\\ &\vdots&&\ddots&\\ &*&&&1\\ \end{pmatrix},\dots,L_{n-1}=\begin{pmatrix} 1&&&&\\ &1&&&\\ &&\ddots&&\\ &&&1&\\ &&&*&1\\ \end{pmatrix} L1= 1111 ,L2= 111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值