3第三章数值分析解线性方程组的直接解法
数值分析第三章 解线性方程组的直接方法 ppt课件
对算每一一次行。计以算后每s注i一意数步m 1:学考j这上a虑n两|严x子a个格i列j |方等。 a程价为...kk 组。省中在时as间iki 最,s大i 只的在ai初k 为始主时元计。
a nk
注:稳定性介于列主元法和全主元法之间。
§2 三角分解法 /* Matrix Factorization */
A(2) b(2)
其中
a(2) ij
b(2) i
a(1) ij
b(1) i
mi
a(1)
1 1j
mi1b1(1)
(i, j 2, ...,n)
Step
k:设
a(k) kk
, 0计算因子
m ik a i(k k )/a k (k )k(i k 1 ,..n ) .,
且计算
a(k1) ij
➢ 高斯消元法的矩阵形式 /* Matrix Form of G.E. */:
Step 1: m i1a i1/a 11(a 1 10 )
1
记 L1 =
m 21 ...
1
m n1
a1(1)1...a1(1n) b1(1)
A b ,则 L 1 [A (1 ) b (1 )]
(2) (2)
1
Step n 1:
Ln1Ln2 ...L1
Ab
a1(11)
a(1) 12
a(2) 22
...
a(1) 1n
...
a(2) 2n
... ...
bb12((12))
...
其中 Lk =
1
a(n) nn
bn(n)
1
m k 1,k ...
m n ,k
1
1
数值计算_第3章 解线性方程组的直接法
第3章解线性方程组的直接法在近代数学数值计算和工程应用中,求解线性方程组是重要的课题。
例如,样条插值中形成的关系式,曲线拟合形成的法方程等,都落实到解一个元线性方程组,尤其是大型方程组的求解,即求线性方程组(3.1)的未知量的数值。
(3.1)其中ai j,bi为常数。
上式可写成矩阵形式Ax = b,即(3.2)其中,为系数矩阵,为解向量,为常数向量。
当detA=D0时,由线性代数中的克莱姆法则,方程组的解存在且惟一,且有为系数矩阵的第列元素以代替的矩阵的行列式的值。
克莱姆法则在建立线性方程组解的理论基础中功不可没,但是在实际计算中,我们难以承受它的计算量。
例如,解一个100阶的线性方程组,乘除法次数约为(101·100!·99),即使以每秒的运算速度,也需要近年的时间。
在石油勘探、天气预报等问题中常常出现成百上千阶的方程组,也就产生了各种形式方程组数值解法的需求。
研究大型方程组的解是目前计算数学中的一个重要方向和课题。
解方程组的方法可归纳为直接解法和迭代解法。
从理论上来说,直接法经过有限次四则运算,假定每一步运算过程中没有舍入误差,那么,最后得到方程组的解就是精确解。
但是,这只是理想化的假定,在计算过程中,完全杜绝舍入误差是不可能的,只能控制和约束由有限位算术运算带来的舍入误差的增长和危害,这样直接法得到的解也不一定是绝对精确的。
迭代法是将方程组的解看作某种极限过程的向量极限的值,像第2章中非线性方程求解一样,计算极限过程是用迭代过程完成的,只不过将迭代式中单变量换成向量而已。
在用迭代算法时,我们不可能将极限过程算到底,只能将迭代进行有限多次,得到满足一定精度要求的方程组的近似解。
在数值计算历史上,直接解法和迭代解法交替生辉。
一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。
一般说来,对同等规模的线性方程组,直接法对计算机的要求高于迭代法。
对于中等规模的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。
第3章线性方程组的直接解法1PPT课件
(3.5)
u x n1,n1 n1 un1,nxn bn1
unnxn bn
n
u iixi b i (u i,i 1 xi 1 u inxn) b i u ijxj
j i 1
xnbn/unn,
xi bijn i1uijxj/uii8,in1,n2,
返回LU
,2,1. 返回(3.20)
3.2.2 消去法的基本思想
(3.4)
返回式3.19
i1
liixi bi (li1x1li2x2 li,i1xi1)bi lijxj j1
i1
xi bi lijxj /lii, i 1,2, ,n.
j1
7
三、上三角方程组(返回Gauss)
u11x1 u12x2 u13x3 u1nxn b1
uiixi ui,i1xi1 uinxn bi
x3
78 26
3
x2 -28 10x3 -28 10(3)
x 1
16
(x2
2
4x 3 )
2
10
16
2 2
4(3)
1
3.2.3 高斯消元过程(即初等行变换) 记方程组(3.1)为
返回矩阵的三角分解
aa12((1111))xx11
a1(12)x2 a2(12)x2
an(11)x1an(12)x2
2
3.1 引 言
自然科学和工程计算中的很多问题的解决常常 归结为求解线性方程组。如三次样条插值函数问 题、用最小二乘原理确定拟合曲线、求解微分方 程的数值解等,最终都要转化为求解线性方程组。
求解线性方程组可采用:
1、直接法——经有限步算术运算可求得方 程组的精确解的方法(若计算过程无舍入误差)。
数值分析第三章线性方程组解法
数值分析第三章线性方程组解法在数值分析中,线性方程组解法是一个重要的主题。
线性方程组是由一组线性方程组成的方程组,其中未知数的次数只为一次。
线性方程组的解法包括直接解法和迭代解法两种方法。
一、直接解法1.1矩阵消元法矩阵消元法是求解线性方程组的一种常用方法。
这种方法将方程组转化为上三角矩阵,然后通过回代求解得到方程组的解。
1.2LU分解法LU分解法是将系数矩阵A分解为一个下三角矩阵L和一个上三角矩阵U的乘积,然后通过解两个三角方程组求解线性方程组。
这种方法可以减少计算量,提高计算效率。
1.3 Cholesky分解法Cholesky分解法是对称正定矩阵进行分解的一种方法。
它将系数矩阵A分解为一个下三角矩阵L和它的转置的乘积,然后通过解两个三角方程组求解线性方程组。
Cholesky分解法适用于对称正定矩阵的求解,具有较高的精度和稳定性。
二、迭代解法2.1 Jacobi迭代法Jacobi迭代法是一种迭代求解线性方程组的方法。
它通过分解系数矩阵A为一个对角矩阵D和一个余项矩阵R,然后通过迭代更新未知数的值,直至达到一定精度要求为止。
Jacobi迭代法简单易懂,容易实现,但收敛速度较慢。
2.2 Gauss-Seidel迭代法Gauss-Seidel迭代法是一种改进的Jacobi迭代法。
它通过使用新计算出的未知数值代替旧的未知数值,达到加快收敛速度的目的。
Gauss-Seidel迭代法是一种逐步逼近法,每次更新的未知数值都会被用于下一次的计算,因此收敛速度较快。
2.3SOR迭代法SOR迭代法是一种相对于Jacobi和Gauss-Seidel迭代法更加快速的方法。
它引入了一个松弛因子,可以根据迭代的结果动态地调整未知数的值。
SOR迭代法在理论上可以收敛到线性方程组的解,而且收敛速度相对较快。
三、总结线性方程组解法是数值分析中的一个重要内容。
直接解法包括矩阵消元法、LU分解法和Cholesky分解法,可以得到线性方程组的精确解。
数值分析解线性代数方程组的直接解法省公开课一等奖全国示范课微课金奖PPT课件
i 2, , n, j 2, , n
b (2) i
b (1) i
mi1b1(1) ,
i 2, , n
对方程组A(1) x b(1)从左边乘以L1 L1 A(1) x L1b(1)
数值分第析18页
数值分析
第二步:设a2( 22 )
0,取mi 2
a(2) i2
a(2) 22
,i
3, ..., n
数值分第析4页
数值分析
数值求解方法有以下三条路径(三种框架)
直接法:利用Gauss消元或矩阵分解,经过有限次运 算可求出准确解。
迭代法:结构迭代格式,产生迭代序列,经过无限 次迭代过程求解。有限次截断得近似解。
极小化方法:结构二次模函数,用迭代过程求二次
模函数极小化问题,即变分法(经
n次运算,理论上得准确解)要求A
数值分析
将方程组Ax=b系数矩阵与右端项合并为
a11 a12
A, b
a21
a22
an1
an2
a1n b1
a2n
b2
A
ann
bn
记A
(1)
A
a1(11)
...
a(1) 1n
b(1) 1
1(1)
,
(1) 2
,
...,
(1) n
,
b(1)
an(11)
...
a(1) nn
b(1) n
第一步:设a1(11) 0, 取mi1 aa( (1i1111) ),
6 3 3
x1
2x2 x2
3x3 2x3 3x3
6 3 3
回代求得 x3 3 / 3 1
x2 (3 2 x3 ) (3 2 1) 1
数值分析-线性方程组的直接解法
算法 Gauss(A,a,b,n,x)
1. 消元 For k=1,2, … , n-1 1.1 if akk=0 , stop; 1.2 For i=k+1,k+2, …, n 1.2.1 l ik=aik /akk => aik 1.2.2 For j=k+1,k+2, … ,n ai j -aik ak j =>aij 1.2.3 bi -aik bk=> bi 2. 回代 2.1 bn / an=>xn; 2.2 For i=n-1,n-2, …, 2,1 2.2.1 bk => S 2.2.2 For j=k+1,k+2, … ,n S –akj xj =>S 2.2.3 S/ akk => xk a1 1 a1 2 a13 a2 1 a2 2 a23
线性方程组的直接解法
刘 斌
线性方程组的直接解法
§1 Gauss消去法 1.1 顺序Gauss消去法
1.2
§2 2.1 2.2 2.3
列主元Gauss消去法
Gauss消去法的矩阵运算 Doolittle分解法 平方根法
直接三角分解方法
2.4
追赶法
引入
在科学计算中,经常需要求解含有n个未知量 的n个方程构成的线性方程组 a11 x1 a12 x2 a1n xn b1 a21 x1 a22 x2 a2 n xn b2 (1) an1 x1 an 2 x2 ann xn bn
(1) a12 ( 2) a22 0
(1) (1) a13 a1 n ( 2) ( 2) a23 a2 n ( 3) ( 3) a33 a3 n
0
数值分析小论文线性方程组的直接解法
数值分析小论文线性方程组的直接解法线性方程组的直接解法是指通过一系列的代数运算直接求解线性方程组的解。
线性方程组是数值分析中非常重要的问题,广泛应用于工程、科学、计算机图形学等领域。
在线性方程组的直接解法中,最常用的方法是高斯消元法,它是一种基于矩阵变换的方法。
高斯消元法将线性方程组表示为增广矩阵,并通过一系列的行变换将增广矩阵转化为行阶梯形矩阵,从而得到方程组的解。
高斯消元法的主要步骤包括消元、回代和得到方程组的解。
消元是高斯消元法的第一步,通过一系列的行变换将增广矩阵的元素转化为上三角形式。
在消元过程中,我们首先找到主元素,即矩阵的对角线元素,然后将其它行的元素通过消元操作转化为0,从而使得矩阵逐步变成上三角形矩阵。
回代是高斯消元法的第二步,通过一系列的回代操作求解线性方程组。
回代操作是从上三角形矩阵的最后一行开始,通过依次求解每个未知数的值,最终得到方程组的解。
高斯消元法的优点是算法简单易于实现,可以在有限的步骤内求解线性方程组,适用于一般的线性方程组问题。
但是高斯消元法也存在一些问题,例如当矩阵的主元素为0时,无法进行消元操作,此时需要通过行交换操作来避免这种情况。
另外,高斯消元法对病态矩阵的求解效果较差,容易引起舍入误差累积,导致解的精度下降。
在实际应用中,为了提高求解线性方程组的效率和精度,人们常常使用一些改进的直接解法,例如列主元高斯消元法和LU分解法。
列主元高斯消元法通过选择最大主元来避免主元为0的情况,进一步提高了求解线性方程组的精度。
LU分解法将矩阵表示为两个矩阵的乘积,从而将线性方程组的求解问题转化为两个三角形矩阵的求解问题,提高了求解效率。
综上所述,线性方程组的直接解法是一种基于矩阵变换的方法,通过一系列的代数运算求解线性方程组的解。
高斯消元法是最常用的直接解法之一,它简单易于实现,适用于一般的线性方程组问题。
在实际应用中,可以通过改进的直接解法来进一步提高求解效率和精度。
第三章解线性方程组直接法
第三章 解线性方程组的直接法3.1 引言许多科学技术问题要归结为解含有多个未知量x 1, x 2, …, x n 的线性方程组。
例如,用最小二乘法求实验数据的曲线拟合问题,三次样条函数问题,解非线性方程组的问题,用差分法或有限元法解常微分方程、偏微分方程的边值等,最后都归结为求解线性代数方程组。
关于线性方程组的数值解法一般有两类:直接法和迭代法。
1. 直接法直接法就是经过有限步算术运算,可求得线性方程组精确解的方法(假设计算过程中没有舍 入误差)。
但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解。
本章将阐述这类算法中最基本的高斯消去法及其某些变形。
2. 迭代法迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法,迭代法需要的计算机存储 单元少、程序设计简单、原始系数矩阵在计算过程中不变,这些都是迭代法的优点;但是存在收敛性和收敛速度的问题。
迭代法适用于解大型的稀疏矩阵方程组。
为了讨论线性方程组的数值解法,需要复习一些基本的矩阵代数知识。
3.1.1 向量和矩阵 用nm ⨯R表示全部n m ⨯实矩阵的向量空间,nm C⨯表示全部n m ⨯复矩阵的向量空间。
()⎪⎪⎪⎪⎪⎭⎫⎝⎛==⇔∈⨯nn n n n n ij nm a a a a a aa a a a ΛΛΛΛΛΛ212222111211A R A 此实数排成的矩形表,称为m 行n 列矩阵。
⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⇔∈n n x x x M 21x R x x 称为n 维列向量矩阵A 也可以写成)(n 21a ,,a ,a A Λ= 其中 a i 为A 的第i 列。
同理⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=T T T n 21b b b A M其中Ti b 为A 的第i 行。
矩阵的基本运算:(1) 矩阵加法 )( ,n m n m R C ,R B ,R A B A C ⨯⨯⨯∈∈∈+=+=n m ij ij ij b a c . (2) 矩阵与标量的乘法 ij j a ci αα== ,A C (3) 矩阵与矩阵乘法 p nk kj ikb acij ⨯⨯⨯=∈∈∈==∑m p n n m R C ,R B ,R A AB C ( ,1(4) 转置矩阵 ji ij T nm a c ==∈⨯ , ,A C RA(5) 单位矩阵 ()nn ⨯∈=Re ,,e ,e I n 21Λ,其中()Tk e 0,0,1,0,0ΛΛ= k=1,2,…,n(6) 非奇异矩阵 设n n ⨯∈R A ,n n ⨯∈R B 。
线性方程组的直接解法
线性方程组的直接解法
线性方程组(linear equation system)是一类几何问题,也是解决线性系统和代数问题的重要方法,线性方程组由多个联立方程组成,这些方程中也可能含有未知量。
直接解法是把数学模型转换为数值模型,并给出实现其解题步骤的算法,它不同于间接求解的方法,既不做任何假设,也不处理不确定性问题,只是简单地直接求解线性方程组。
解线性方程组的直接解法主要分为三种,分别是高斯消元法、列主元消去法和列坐标变换法。
高斯消元法是一种比较常用的方法,主要是把线性方程组的未知量从左到右一步步求出来,其中用到的主要技术是把矩阵中部分元素消去为零,以便求解不定线性方程组的未知量。
而列主元消去法则是以一列为主元,去消除其他联立方程中出现的此列中的变量,从而最终求出其他未知变量的值。
最后,列坐标变换法是将线性方程组转换为一个更有利于求解的矩阵,其中未知量可以直接求得解答。
除了这三种常见方法外,还有一些更特殊的直接解法,比如要解常微分方程的未知函数,可以用拉格朗日方法和分部积分方法,再比如求解雅各比方程的根,可以通过主副方程互解求解,这种方法也叫作特征根法。
综上,解线性方程组的直接解法有高斯消元法、列主元消去法、列坐标变换法等;特殊问题可以采用拉格朗日方法、分部积
分法和特征根法等。
每种方法都有自己的优势,因此在使用时,可以根据问题的特点,选择适合的方法来解决。
数值分析 第三章解线性方程组的直接法
T T A LDU 0 , AT U 0 DT LT , A AT U 0 L A LDLT
由于A是正定矩阵,所以D中的元素都大于零,可以把D也再分解
14
d11 d11 1 1 1 d 22 D2 D2 , D2 D d nn
lii 1,lik 0 k i , ukj 0 k j
11
ai1 由此得算法: u1 j a1 j , j 1, 2,, n; li1 a ,i 1, 2,, n 11
uij aij lik ukj , j i, i 1,, n; lij
还可以进一步用标度化的选主元(相对最大)
6
第三节 矩阵的三角分解
消元法求解方程组是通过行初等变换把系数矩阵化为对角阵,由 线性代数知识可知,左乘一个初等矩阵,就相当于做一次行变换.
1 a 21 a11 a 记 L = 31 1 a11 an1 ห้องสมุดไป่ตู้ 11
第三章 解线性方程组的直接法
第一节 引言
解线性方程组的方法可分为两大类:直接法和迭代法. 直接法的基本原理就是高斯消元法,再根据数值计算的特点 做一些适当的处理而得到的一类算法.直接法的特点是没有 截断误差,只有计算误差(舍入误差). 迭代法是类似于上一章单个方程那样,以某种方式构造一 个向量序列,使得这个向量序列收敛到解向量.因此迭代 法既有截断误差又有舍入误差.
0.01000 0.01200 0 0.100 103 0 0 .
8.010 44.41 1175 105 6517 105 x3 5.546; x2 100.0; x1 104.0 0.1670 0.6781
计算方法第三章线性方程组的直接解法
5 3
3 1
r3
r1 6
6 1 18 2
1 0
4 5 1 3
3 1
r3 r225
1 0
4 1
5 3
3 1
0 25 48 16
0 0 27 9
林龙
计算方法
6
化原方程组为三角方程组的过程为消元过程. 解三角方程组的过程为回代过程.
也可将上边的增广矩阵进一步化简.
1 4 5 3
1 0 7 1
xi
Di D
(i
1, 2,3,
),由于方程含有n 1个
行列式.如对每个行列式按展开定理来计算.
用克莱姆法则求解,所需要的乘除运算量为
n!(n2 1) n次,若n 20用每秒一千万次的
计算机要三百万年,所以并不是凡直接法都
可以用来做实际运算.
林龙
计算方法
4
设有
§3.1直接法
a11x1 a12 x2 a21x1 a22 x2
解 : 10
7
0
7
r1 r2
5 1 5 6
林龙
计算方法
16
10 3 5
7 2 1
0 6 5
7 4 6
r2
3 10
r1
r3
5 10
r1
10
0
0
7 0.1 2.5
0 7 6 6.1 5 2.5
r2 r3
r3
1 25
r2
10 7 0 7 x3 1
0
2.5
5
2.5
x2
2.5 5x
nn
a11 a12 .... a1n 1 0 0
a21
a22
解线性方程组的直接法和迭代法
数值分析方法中方程求解的直接法和迭代法第3章 解线性方程组的直接法一、消元法1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。
11121121222212n n n n nnn a a a b a a a b a a a b ⎛⎫⎪ ⎪⎪⎪⎝⎭ (1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()00000n n nn n nnn a a a a b a a a b a a b a b ⎛⎫⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭步骤如下:第一步:1111,2,,i a i i n a -⨯+=第行第行11121121222212n n n n nnn a a a b a a a b a a a b ⎛⎫⎪ ⎪⎪⎪⎝⎭ 111211(2)(2)(2)2222(2)(2)(2)200n nn nnn a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪⎝⎭第二步:(2)2(2)222,3,,i a i i n a -⨯+=第行第行 111211(2)(2)(2)2222(2)(2)(2)200nnn nnn a a a b a a b a a b ⎛⎫⎪ ⎪ ⎪ ⎪⎝⎭11121311(2)(2)(2)(2)222322(3)(3)(3)3333(3)(3)(3)300000n n n n nn n a a a a b a a a b a a b a a b ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭类似的做下去,我们有:第k 步:()()k ,1,,k ikk kka i i k n a -⨯+=+第行第行。
n -1步以后,我们可以得到变换后的矩阵为:11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()00000n n nn n nnn a a a a b a a a b a a b a b ⎛⎫ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪⎝⎭注意到,计算过程中()k kk a 处在被除的位置,因此整个计算过程要保证它不为0。
第3章 线性方程组直接求解
x1 x2 1 0.003 x1 3x2 2.001
12
3.3 列主元高斯消元法
列主元高斯消元法对应的程序(1/2)
#include <stdio.h> #include <math.h> #define MAXSIZE 50 void input(double a[MAXSIZE][MAXSIZE+1],long n); void output(double x[MAXSIZE],long n); void main(void) { double a[MAXSIZE][MAXSIZE+1],x[MAXSIZE],s,max,t; long n,i,j,k,maxi; printf("\n请输入原方程组的阶数:"); scanf("%ld",&n); input(a,n); for(k=0;k<=n-2;k++) { max=a[k][k];maxi=k; for(i=k+1;i<=n-1;i++) if(fabs(a[i][k])>fabs(max)){max=a[i][k];maxi=i;} if(max==0) break; if(maxi!=k) for(j=k;j<=n;j++) {t=a[k][j];a[k][j]=a[maxi][j];a[maxi][j]=t; } for(i=k+1;i<=n-1;i++) { a[i][k]/=-a[k][k]; for(j=k+1;j<=n;j++) a[i][j]+=a[i][k]*a[k][j];}}
克莱姆法则并不实用。常用的数值解法主要分为两类: ① 直接求解方法是指经过有限次四则运算,求出线性方程组精确解的方法。 ② 迭代求解方法是指构造一种迭代方法,由某个(套)迭代初值(粗略解), 得到近似解序列,用序列极限逐步逼近线性方程组精确解的方法。
数值分析线性代数方程组的直接解法公开课一等奖优质课大赛微课获奖课件
Step2 Step4 Step6
u1n Step1 u2n Step3 u3n Step5
unn Step2n-1
Step2(n-1)
对方程组求解,只要得到了系数矩阵三角分解形式,再利 用前代算法和回代算法解两个三角方程组即得.
第22页
例1:用Gauss消去 6 x1 2 x2 x3 x4 6
a (1) 11
0
A(1)
a (1) 11
c1
r1T A1
高斯变换
a (1) 11 0
r1T
第15页
取 L1 I l1e1T l1 (0, l21, , ln1 )T
其中
li1
a (1) i1
a (1) 11
i 2,3,
,n
记 A(2) L11 A(1)
1
A( 2 )
c1
a (1) 11
L11 I l1e1T
0
a (1) 11
r1T
I
n1
c1
A1
第16页
A( 2 )
a1(11) 0
A1
r1T c1r1T
a (1) 11
(ai(j2)
)
a(2) ij
a (1) ij
a a (1) (1) i1 1 j
a (1) 11
i, j 2,3,
,n
第12页
三、 三角分解计算
➢ Gauss消去法
设给定矩阵
1 4 7
A 2 5
8
取Gauss变换矩阵 3 6 10
1 0 0 L1 2 1 0
3 0 1
1 4 7
则有 L1A 0
3
6
第3章线性方程组的直接解法1
b1(1) (1) (3.6) b2 (1) bn
若 a 第一步消元: 11 0,
1
(1) 利用主元素(即为消元过程中的主对角线元素)a11 (1) a 消去下面的 i1 , i 2,3,, n
取消元因子 消元计算得到
li1 a / a , i 2,3,, n 用第 i 行减去第一行的 l a(1) / a(1) , i 2,3,, n倍 i1 i1 11
i 1
三、上三角方程组(返回Gauss)
u11 x1 u12 x 2 u13 x3 u1n x n b1 u ii xi u i ,i 1 xi 1 u in x n bi u n 1,n 1 x n 1 u n 1,n x n bn 1 u nn x n bn n uii xi bi (ui ,i 1 xi 1 uin xn ) bi uij x j
阶线性方程组消元过程可描述为经过
步消元化成上三角方程组.
A
(1)
,b
(1)
A
k 1
( 2)
,b
( 2)
A
k 2
(k )
,b
(k )
A
k n 1
(n)
, b( n )
三、高斯消去法的算法公式
(上三角形式).
总结上述消元与回代过程,得到高斯消去法的算法公式如下
或写成矩阵形式:
(3.1)
返回
a11 a12 a a 21 22 a a n1 n 2
或简单地记为:
a1n x1 b1 a 2 n x 2 b2 b a nn x n n Ax b,
数值分析第三章 解线性方程组的直接方法
§1 Gaussian Elimination – The Method
回代
( n) ( n) xn bn / ann
bi( i ) xi
a
j i 1 (i ) ii
(i ) a ij x j
n
( i n 1, ..., 1)
Then must find the Whatwe if we can’t (n i) smallest integer k i with ( ) 0 定理 若A的所有顺序主子式 a /* determinant of leading What if ? find such k ? ii No No unique unique a 0 What if ? (i ) nn , and interchange a ki 0 exists. solution solution exists. principal submatrices */ k 均不为 ,则高斯消元无需换行即可 the -th row0 with the i-th row.
. a nk
si
注:稳定性介于列主元法和全主元法之间。
§2 三角分解法 /* Matrix Factorization */
高斯消元法的矩阵形式 /* Matrix Form of G.E. */:
Step 1: mi 1 ai 1 / a11
1 m21 1 . . . m n1
1步 共进行 n ?
(1) (1) ) (1) a11 x a12 ... a1(1 b 1 n 1 ( 2) ( 2) ( 2) a22 ... a2 n x2 b2 . . . . . ... . . . . ( n) ( n) ann xn bn
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3.1)
线性方程组的数值解法可以分为直接法和迭代法两 类。所谓直接法,就是不考虑舍入误差,通过有限步骤 四则运算即能求得线性方程组(3.1)准确解的方法。如 克莱姆法则,但通过第一章的分析,我们知道用克莱姆 法则来求解线性代数方程组并不实用,因而寻求线性方 程组的快速而有效的解法是十分重要的。 本章讨论计算机上常用而有效的直接解法――高斯 消去法和矩阵的三角分解等问题。为方便计,设所讨论 的线性方程组的系数行列式不等于零。
把方程(I)乘( −
3 2
)后加到方程(II)上去,把方程
4 (I)乘( − )后加到方程(III)上去,即可消去方程 2
(II)、(III)中的x1,得同解方程组
2 x1 + 3 x 2 + 4 x 3 = 6 0.5 x 2 − 4 x 3 = − 4 − 3 x + 22 x = 20 2 3
综上所述,高斯消去法分为消元过程与回代过程,消 元过程将所给方程组加工成上三角形方程组,再经回代过 程求解。
消元公式
( ( k ) akjk −1) j = k , k + 1,⋯ , n + 1 akj = ( k −1) akk ( (k ) aikk ) ( k −1) ( k −1) mik = aij = aij − mik ⋅ akj ; akk j = k + 1,⋯ , n + 1; i = k + 1,⋯ n (3.9)
x = b1 1 a11 x k = (bk − a k1 x1 − a k 2 x2 − ⋯ − a k , k −1 xk −1 ) / a kk
k = 2, 3,…, n (3.4)
此过程称为前推过程。 此过程称为前推过程。 同样地,若aii ≠ 0, i = 1, 2,…, n,则(3.3)的解为
n − (n − k )
次乘除法,在(3.9)
第二个式子中,每执行一次需要 次乘除法。因此在消元过程中,共需要
[n − (k − 1)] × (n − k )
∑ [(n − k + 1) × (n − k ) + (n − k + 1)]
k =1 n
n
1 = ∑ ( n − k + 1) = n( n + 1)( 2n + 1) 6 k =1
x 2 = 1.00
造成这个现象的原因是:第一步主元素太小,使得消元 后所得的三角形方程组很不准确所致。
如果我们选第二个方程中x1 的系数1.00为主元素来 消去第一个方程中的x1,则得出如下方程式: 1.00 x1 = 1.00 x1 = 1.00
这是真解的三位正确舍入值。 从上述例子中可以看出,在消元过程中适当选取主元 素是十分必要的。误差分析的理论和计算实践均表明:顺 序消元法在系数矩阵A为对称正定时,可以保证此过程对 舍入误差的数值稳定性,对一般的矩阵则必须引入选取主 元素的技巧,方能得到满意的结果。
(3.7)
(1) aij = aij − mi1 ⋅ a1(1) i = 2, ⋯ , n 其中 j 1 ai(1 ) mi1 = j = 2, 3,⋯, n + 1 a11
由方程(3.6)到(3.7)的过程中,a11 元素起着重要的作 用,特别地,把 a11 称为主元素。 如果(3.7)中
(1 a 22) ≠ 0
x = bn n a nn x k = (bk − a k ,k +1 x k +1 − ⋯ − a kn x n ) / a kk k = n − 1, n − 2, ⋯ ,1
(3.5)
此过程称为回代过程。 此过程称为回代过程。
算法复杂性分析
从上面的公式来看,求出xk,需要作k – 1次乘法和 加减法及一次除法,总共完成 + 2 + ⋯ + n 1 次乘法、加法及n次除法。
例
0.0001x1 + 1.00 x 2 = 1.00 1.00 x1 + 1.00 x 2 = 2.00
它的精确解为:
10000 ≈ 1.00010 9999 9998 x2 = ≈ 0.99990 9999 x1 =
用顺序消去法,第一步以0.0001为主元,从第二个方程 中消x1后可得: − 10000 x 2 = −10000 回代可得 x1 = 0.00 显然,这不是解。
(3.2)
a11 x1 + a12 x2 + ⋯ + a1n xn = b1 a 22 x2 + ⋯ + a 2 n xn = b2 ⋯ a nn x n = bn
(3.3)
方程组(3.2)叫做下三角形方程组,方程组(3.3) 叫做上三角形方程组,三角形方程组的求解是很简单的。 如果aii≠ 0,i = 1, 2,…, n,则(3.2)的解为
§1
高斯消去法
高斯(Gauss)消去法是解线性方程组最常用的方法 之一,它的基本思想是通过逐步消元,把方程组化为系 数矩阵为三角形矩阵的同解方程组,然后用回代法解此 三角形方程组得原方程组的解。 下面先讨论三角形方程组的解法。
1.三角形方程组的解法
= b1 a11 x1 a x + a x = b2 21 1 22 2 ⋯ ⋯ ⋯ a n1 x1 + an 2 x2 + ⋯ + ann xn = bn
列主元消去法 在列主元消去法中,未知数仍然是顺序地消去的,但 是把各方程中要消去的那个未知数的系数按绝对值最大值 作为主元素,然后用顺序消去法的公式求解。
列主元消去法计算步骤: 列主元消去法计算步骤: 1、输入矩阵阶数 输入矩阵阶数n,增广矩阵 A(n,n+1); 输入矩阵阶数 增广矩阵 2、对于 k = 1,2, ⋯ , n 对于 (1) 按列选主元:选取 l 使 按列选主(2) 如果 l ≠ k ,交换 A(n,n+1) 的第 行与底 行元素 的第k行与底 行与底l (3) 消元计算 :
按照上述步骤进行n次后,将原方程组加工成下列形式:
(1 (1 1 x1 + a12) x 2 + a13) x3 + ⋯ + a1(n) x n = a1(,1n)+1 (2 ( ( x 2 + a 23) x3 + ⋯ + a 22 ) x n = a 22n)+1 n , ⋯ (n ( − x n −1 + a nn −1) x n = a nn 1,1n)+1 − ( x n = a nnn)+1 ,
n( n + 1) = 2
从(3.4)、(3.5)可以看出,求解三角形方程组是 很简单的,只要把方程组化成了等价的三角形方程组,求 解过程就很容易完成。
2.高斯消去法 下面先以一个三阶线性方程组为例来说明高斯消去法的 基本思想。
( Ι) 2 x1 + 3x 2 + 4 x3 = 6 ( ΙΙ) 3x1 + 5 x2 + 2 x3 = 5 4 x + 3x + 30 x = 32 ( III) 2 3 1
(3.8)
( = a n 2 )n +1 ,
针对(3.8) 继续消元,重复同样的手段,第k步所要加工的 方程组是:
(1 (1 x1 + a12) x 2 + a13) x3 +⋯ + a1(1) x n = a1(,1n)+1 n (2 ( ( x 2 + a 23) x3 +⋯ + a 22 ) x n = a 22)n +1 n , ⋯ ( − (k ( − x k −1 + a k k 11) x k + ⋯ + a kn −1) x n = a kk 1,1)n +1 − − (k (k ( a kk −1) x k + ⋯ + a nn −1) x n = a k k −1)1 , n+ ⋯ (k (k ( − a nk −1) x k + ⋯ + a nn −1) x n = a nk n1)1 , +
a11 a12 ⋯ a 21 a 22 ⋯ A= ⋯ ⋯ a n1 a n 2 ⋯ a1n a2n ⋯ a nn x1 x2 X = ⋮ x n b1 b2 b= ⋮ b n
第三章 解线性方程组的直接法
a11 x1 + a12 x 2 + ⋯ + a1n x n = b1 a x + a x + ⋯ + a x = b 21 1 22 2 2n n 2 ⋯ ⋯ ⋯ a n1 x1 + a n 2 x 2 + ⋯ + a nn x n = bn
AX = b
将方程(II)乘( 组:
3 0 .5
( Ι) ( ΙΙ ) ( III)
)后加于方程(III),得同解方程
2 x1 + 3 x 2 + 4 x 3 = 6 0 .5 x 2 − 4 x 3 = − 4 − 2 x 3 = −4
(Ι ) (ΙΙ ) (III)
x2 = 8 x1 = -13
,则以
(1 a 22) 为主元素,又可以
把方程组(3.7)化为:
(1 1 x1 + a 12 ) x 2 + ⋯ + a 1(n) x n (2 ( x 2 + a 23 ) x 3 + ⋯ + a 2 2 ) x n n (2 ( a 33 ) x 3 + ⋯ + a 3 2 ) x n n ⋮ ( (2 a n 2 ) x 3 + ⋯ + a nn ) x n 3 ) = a 1(,1n +1 ( ) = a 2 2 n +1 , ( ) = a 3 3 n +1 ,