《数值分析与算法》 第三讲-线性方程组的直接解法
数值分析第三章 解线性方程组的直接方法 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
解线性方程组的直接方法

解线性方程组的直接方法一、高斯消元法高斯消元法是解线性方程组最常用的方法之一、它通过一系列的消元操作,将线性方程组转化为阶梯型方程组,从而求解未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成增广矩阵的形式。
增广矩阵是一个n行n+1列的矩阵,其中前n列是线性方程组的系数矩阵,第n+1列是等号右边的常数。
3.通过初等行变换(交换行、数乘行、行加行)将增广矩阵化为阶梯型矩阵。
具体步骤如下:a.首先,找到第一个非零元素所在的列,将它所在的行视为第一行。
b.将第一行的第一个非零元素(主元)变成1,称为主元素。
c.将主元所在列的其他元素(次元素)变为0,使得主元所在列的其他元素只有主元素是非零的。
d.再找到第一个非零元素所在的列,将它所在的行视为第二行,并重复上述步骤,直到将增广矩阵化为阶梯型矩阵。
4.根据阶梯型矩阵求解未知数的值。
具体步骤如下:a.从最后一行开始,依次求解每个未知数。
首先,将最后一行中非零元素所在的列作为含有该未知数的方程,将该未知数的系数设为1b.将含有该未知数的方程中其他未知数的系数设为0,并对其他方程进行相应的变换,使得该未知数所在列的其他元素都为0。
c.重复上述步骤,直到求解出所有未知数的值。
高斯消元法的优点是简单易懂、容易实现,但当线性方程组的系数矩阵接近奇异矩阵时,计算精度可能会降低。
二、矩阵求逆法矩阵求逆法是解线性方程组的另一种直接方法。
它通过对系数矩阵求逆,然后与常数矩阵相乘,得到未知数的值。
1.确定线性方程组的阶数和未知数的个数。
设线性方程组中有n个未知数。
2.将线性方程组写成矩阵方程的形式,即Ax=b,其中A是一个n阶方阵,x和b分别是n维列向量。
3.求系数矩阵A的逆矩阵A^-1a. 首先,计算系数矩阵A的行列式det(A)。
b. 判断det(A)是否为0,如果det(A)=0,则该线性方程组无解或有无穷多解;如果det(A)≠0,则系数矩阵A可逆。
数值分析--解线性方程组的直接方法

值 为A的特征值,x为A对应的特征向量,A的全体特征值
分 析
称为A的谱,计作 ( A),即 ( A) {i ,i 1,2,, n}, 则称
》
( A)
max
1in
|
i
|
为矩阵A的谱 半 径.
三、特殊矩阵
第5章 解线性方程组的直接方法
1) 对角矩阵
2) 三对角矩阵
3) 上三角矩阵
4) 上海森伯(Hessenberg)阵
分 析
1.00x 1.00y 2.00
》 解法1: 1.00105 x 1.00 y 1.00
(1.00 1.00105) y (2.00 1.00105)
1.00105 x 1.00 y 1.00
1.00
105
y
1.00
105
x 0.00,
y 1.00
第5章 解线性方程组的直接方法
1
Ly b y 3,Ux y x 1.
2
1
第5章 解线性方程组的直接方法
§3 高斯主元素消去法
若ak(kk) 0,或ak(kk)很接近于0,会导致其他元素数量级严重 增长和舍入误差的扩散,使得计算结果不可靠.
《例3’采用3位十进制,用消元法求解
数 值
1.00105 x 1.00y 1.00
L21L1 U2U11
L21L1
U
U 1
21
I
(因为上式右边为上三角矩阵,左边为单位下三角矩阵
从而上式两边都必须等于单位矩阵)
《 数
L1 L2 , U1 U2
1 1 1
值分例2
析
.例1中,A
0
4
-1,将A作LU分解。
第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分解法,可以得到线性方程组的精确解。
数值分析报告讲义——线性方程组解法

数值分析讲义第三章线性方程组的解法§3.0 引言§3.1 雅可比(Jacobi)迭代法§3.2 高斯-塞德尔(Gauss-Seidel)迭代法§3.3 超松驰迭代法§3.7 三角分解法§3.4 迭代法的收敛性§3.8 追赶法§3.5 高斯消去法§3.9 其它应用§3.6 高斯主元素消去法§3.10 误差分析§3 作业讲评3 §3.11 总结§3.0 引言重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用.如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题.分类:线性方程组的解法可分为直接法和迭代法两种方法.(a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解.最基本的直接法是Gauss消去法,重要的直接法全都受到Gauss消去法的启发.计算代价高.(b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列.收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题.简单实用,诱人.§3.1 雅可比Jacobi 迭代法 (AX =b )1基本思想:与解f (x )=0 的不动点迭代相类似,将AX =b 改写为X =BX +f 的形式,建立雅可比方法的迭代格式:X k +1=BX (k )+f ,其中,B 称为迭代矩阵.其计算精度可控,特别适用于求解系数为大型稀疏矩阵(sparse matrices)的方程组. 2问题:(a) 如何建立迭代格式?(b) 向量序列{X k }是否收敛以及收敛条件? 3 例题分析:考虑解方程组⎪⎩⎪⎨⎧=+--=-+-=--2.453.82102.7210321321321x x x x x x x x x (1)其准确解为X *={1, 1.2, 1.3}. 建立与式(1)相等价的形式:⎪⎩⎪⎨⎧++=++=++=84.02.01.083.02.01.072.02.01.0213312321x x x x x x x x x (2) 据此建立迭代公式:⎪⎩⎪⎨⎧++=++=++=+++84.02.01.083.02.01.072.02.01.0)(2)(1)1(3)(3)(1)1(23)(2)1(1k k k k k k kk k x x x x x x x x x (3) 取迭代初值0)0(3)0(2)0(1===xxx,迭代结果如下表.JocabiMethodP31.cpp迭代次数 x1 x2 x30 0 0 01 0.72 0.83 0.842 0.971 1.07 1.153 1.057 1.1571 1.24824 1.08535 1.18534 1.282825 1.095098 1.195099 1.2941386 1.098338 1.198337 1.2980397 1.099442 1.199442 1.2993358 1.099811 1.199811 1.2997779 1.099936 1.199936 1.29992410 1.099979 1.199979 1.29997511 1.099993 1.199993 1.29999112 1.099998 1.199998 1.29999713 1.099999 1.199999 1.29999914 1.1 1.2 1.315 1.1 1.2 1.34Jocobi迭代公式:设方程组AX=b, 通过分离变量的过程建立Jocobi迭代公式,即),,2,1()(1),,2,1(0,11n i x a b a x n i a b x a n ij j j ij i iii ii ni i j ij =∑-==≠∑=≠== 由此我们可以得到Jacobi 迭代公式:),,2,1()(11)1(n i x a b a xn ij j k i ij i iik i=∑-=≠=+[Jacobi 迭代公式的算法] 1: 初始化. n , (a ij ), (b j ), (x 1) , M . 2: 执行k =1直到M 为止. ① 执行i =1直到n 为止.ii nij j j ij i i a x a b u /)(1∑-←≠= ;② 执行i =1直到n 为止.i i u x ← ;③输出k , (x i ).另外,我们也可以建立Jacobi 迭代公式的矩阵形式. 设方程组AX =b ,其中,A =(a ij )n 为非奇异阵,X =(x 1,x 2,…,x n )T , b =(b 1,b 2,…,b n )T将系数阵A 分解为: A =U +D +L ,U 为上三角矩阵,D 为对角矩阵,L 为下三角矩阵.于是AX =b 可改写为 (U +D +L )X =b⇔ X =D -1b -D -1(U +L )X由此可得矩阵形式的Jocobi 迭代公式: X k +1=BX (k )+f □§3.2 高斯-塞德尔Gauss-Seidel 迭代法注意到利用Jocobi 迭代公式计算)1(+k ix 时,已经计算好)(1)(2)(1,,,k i k k x x x - 的值,而Jocobi 迭代公式并不利用这些最新的近似值计算,仍用)(1)(2)(1,,,k i k k x x x - .这启发我们可以对其加以改进,即在每个分量的计算中尽量利用最新的迭代值,得到),,2,1()(1111)1()1(n i x a x a b a xn i j k jij i j k j ij i iik i=∑-∑-=+=-=++上式称为Gauss-Seidel 迭代法. 其矩阵形式是X =-(D +L )-1UX +(D +L )-1b , X k +1=BX (k )+f .迭代次数 x1 x2 x3 0 0 0 0 1 0.72 0.902 1.1644 2 1.04308 1.167188 1.282054 3 1.09313 1.195724 1.2977714 1.099126 1.199467 1.2997195 1.09989 1.199933 1.2999656 1.099986 1.199992 1.2999967 1.099998 1.199999 1.2999998 1.1 1.2 1.3§3.3 超松驰迭代法SOR 方法1基本思想:逐次超松弛迭代法(Successive Over Relaxation Method,简写为SOR)可以看作带参数ω的高斯-塞德尔迭代法,是G-S 方法的一种修正或加速.是求解大型稀疏矩阵方程组的有效方法之一. 2 SOR 算法的构造:设方程组AX =b , 其中,A =(a ij )n 为非奇异阵,X =(x 1,x 2,…,x n )T , b =(b 1,b 2,…,b n )T . 假设已算出x (k ),),,2,1()(1111)1()1(n i x a x a b a xn i j k j ij i j k j ij i iik i=∑-∑-=+=-=++ (1)相当于用高斯-塞德尔方法计算一个分量的公式. 若对某个参数ω,作)1(+k ix与)(k i x 加权的平均,即)()1()()1()()1()(1k i k ik i k ik ik ix xx xxx-+=+-=+++ωωω (2)其中,ω称为松弛因子.用(1)式代入(2)式,就得到解方程组AX =b 的逐次超松弛迭代公式:⎪⎩⎪⎨⎧=∑-∑-=∆∆+==-=++),,2,1()()(11)1()()1(n i x a x a b a x x x x n ij k j ij i j k j ij i iii i k i k i ω (3) 显然,当取ω=1时,式(3)就是高斯-塞德尔迭代公式. 3 例题分析:利用SOR 方法解方程组⎪⎩⎪⎨⎧=+---=-+-=--3322242024321321321x x x x x x x x x (1) 其准确解为X *={1, 1, 2}. 建立与式(1)相等价的形式:⎪⎪⎩⎪⎪⎨⎧++=-+=+=132315.05.05.025.05.021*******x x x x x x x x x (2) 据此建立迭代公式:⎪⎪⎩⎪⎪⎨⎧++=-+=+=+++132315.05.05.025.05.0)(2)(1)1(3)(3)(1)1(23)(2)1(1k k k k k k kk k x x x x x x x x x (3)利用SOR 算法,取迭代初值1)0(3)0(2)0(1===x x x ,ω=1.5,迭代结果如下表.逐次超松弛迭代法次数 x1 x2 x3 1 0.625000 0.062500 1.750000 2 0.390625 0.882813 1.468750 3 1.017578 0.516602 1.8085944 0.556885 0.880981 1.7104495 1.023712 0.743423 1.8681036 0.746250 0.908419 1.8387377 0.997715 0.860264 1.9138948 0.864050 0.936742 1.9086059 0.986259 0.922225 1.94552310 0.928110 0.958649 1.94749311 0.985242 0.955944 1.96619812 0.961661 0.973818 1.96952113 0.988103 0.974699 1.97928914 0.979206 0.983746 1.98217215 0.991521 0.985318 1.98741616 0.988509 0.990038 1.98951317 0.994341 0.991414 1.99239718 0.993538 0.993946 1.99380619 0.996367 0.994950 1.99542420 0.996313 0.996342 1.99633121 0.997724 0.997018 1.99725422 0.997871 0.997798 1.99782223 0.998596 0.998234 1.998355GS迭代法须迭代85次得到准确值X*={1, 1, 2};而SOR方法只须55次即得准确值.由此可见,适当地选择松弛因子ω,SOR法具有明显的加速收敛效果. □§3.4 迭代法的收敛性1. 向量和矩阵范数 (a) 向量范数R n 空间的向量范数 || · || ,对任意n R y x ∈,, 满足下列条件:00||||;0||||)1(=⇔=≥x x x (正定性)||||||||||)2(x x⋅=αα (齐次性)||||||||||||)3(y x y x+≤+ (三角不等式)常见的向量范数有: (1) 列范数:(2) 谱范数:(欧几里德范数或向量的长度,模)(3) 行范数:(4) p 范数:上述范数的几何意义是:∞||||x =max(|x 2-x 1|,|y 2-y 1|) ; 1||||x =|x 2-x 1|+|y 2-y 1| ;2122122)()(||||y y x x x -+-=.向量序列}{)(k x依坐标收敛于向量x * 的充要条件是向量序列}{)(k x 依范数收敛于向量x *,即0||||lim *)(=-∞→x x k k .(b) 矩阵范数n m R ⨯空间的向量范数 || ·|| ,对任意 n m R B A ⨯∈,, 满足下列条件:|||||||| || AB || (4)||||||||||||)3(||||||||||)2(00||||;0||||)1(B A B A B A A A A A A ≤+≤+⋅==⇔=≥αα常见的矩阵范数有:∑==∞≤≤nj ij a A ni 1||max ||||1 (行和范数)∑==≤≤ni ij a A nj 11||max ||||1 (列和范数))(||||m ax 2A A A T λ= (谱范数)若A 对称,则有)()(2m ax m ax A A A T λλ=.矩阵A 的谱半径记为)(||||2A A ρ=,ρ(A ) =||m ax 1i ni λ≤≤,其中λi 为A 的特征根。
数值分析-线性方程组的直接解法

算法 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
数值分析 第三章解线性方程组的直接法

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
数值计算方法-第3章--线性方程组的解法PPT课件

个顺序主子式
a a (1)
(1)
11
12
Dk
a(1) 21
a(1) 22
a(1) 1k
a(1) 2k
0
(k 1, 2,..., n 1).
a a (1)
(1)
k1
k2
a(1) kk
.
13
顺序Gauss消去法计算过程中的 akk(k) 称为主元素,在 第k步消元时要用它作除数,则可能会出现以下几种情况
.
是原方程组 Ax=b 的解向量。
27
对于
Ly =b
1
由
l21
1
l31
l32 1
y1 b1
y2
b2
y3
b3
ln1 ln2 lnn1 1 yn bn
.
解得
y1 yk
b1 bk
k 1 i 1
lki
yi
,
k 2,3,, n
28
对于 Ux =y
u11 u12 u1n x1 y1
2x3 6
⑤
x1 6 (x2 x3 ) 1
x2 x3 5 / 4 2
x3 (6) / (2) 3
用x3, x2的值求x1 把x3的值代入②求x2
.
8
从下向上逐步求解
对应的增广矩阵的变化
1 1 1 6 1 1 1 6
( A | b) 0
4
1 5 0
4
1
5
2 2 1 1 0 4 1 11
0.8334
5.910
12.10
0.0120 0.0100 0.1670 0.6781
3200
1200
4.200 981.0
计算方法第三章线性方程组的直接解法

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。
数值分析线性代数方程组的直接解法公开课一等奖优质课大赛微课获奖课件

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
【VIP专享】数值分析课件 第三章 线性代数方程组的直接解法19

L1 n1
L
l31
l32 1
ln1 ln2
1 ln,n1
1
l2,1
1
即单位下三角阵
L
l3,1 M
l3,2 M
O M
1
ln,1 ln,2 L ln,n1 1
可以分解为一系列初等下三角阵的乘积
L L11L21 L
L L 1 1 n2 n1
三、 三角分解的计算
➢ Gauss消去法
设给定矩阵
r1T A1
高斯变换
a(1) 11 0
r1T
取 L1 I l1e1T l1 (0, l21,L , ln1)T
其中
li1
a (1) i1
a (1) 11
i 2,3,L , n
记 A(2) L11 A(1)
1
A( 2 )
c1
a(1) 11
L11 I l1e1T
0
a (1) 11
end
b(n) b(n) l(n, n)
➢考虑上三角形方程组
Ux y
u11 u12 ... u1n
x1 y1
U
u22
...
u2n
x
x2
,
y
y2
O
M M
unn
xn yn
xi 的计算公式为:
1
n
xi
uii
yi
uij x j , i
ji 1
n, n 1,L
,1;
算法3.1.2 上三角形方程组的回代法:
for j n : 1: 2
y( j) y( j) u( j, j) y(1: j 1) y(1: j 1) y( j)u(1: j 1, j)
数值分析-线性代数方程组的直接解法PPT学习教案

,
a (1) 31
,,
a (1) n1
mi1
a (1) i1
a (1) 11
,
(i 2,3,, n)
用 mi1 乘以第1个方程后加到第 i 个方程上去,消去
第2~n个方程的未知数 x1 ,得到 A(2) x b(2) 即
a (1) 11
a (1) 12
a (2) 22
a (2) n2
a (1) 1n
第21页/共108页
设方程组系数矩阵 A (aij )n ,其顺序主子式
数值分析-线性方程组的直接解法

U =
Columns 1 through 7
16.0000 10.0000 -11.0000 -9.0000 17.0000 34.0000 2.0000
0 4.5000 3.2500 -3.2500 10.2500 15.5000 -2.5000
0 0 -3.2222 10.2222 -3.7778 -3.4444 1.5556
fori=2:n
t=0;
fork=1:i-1
t=t+L(i,k)*b(k);
end;
b(i)=b(i)-t;
end;
y=b
x(n)=b(n)/U(n,n);
fori=n-1:-1:1
t=0;
fork=i+1:n
t=t+U(i,k)*x(k);
end;
x(i)=(y(i)-t)/U(i,i);
end;
ifk~=1
A(k:n,k)=A(k:n,k)-A(k:n,1:k-1)*A(1:k-1,k);
end
t=find(abs(A(k:n,k))==max(abs(A(k:n,k))));
t=t(1)+k-1;
flag(k)=t;
ift~=k
p=A(k,:); A(k,:)=A(t,:); A(t,:)=p;
A=[4 2 -3 -1 2 1 0 0 0 0;
8 6 -5 -3 6 5 0 1 0 0;
4 2 -2 -1 3 2 -1 0 3 1;
0 -2 1 5 -1 3 -1 1 9 4 ;
-4 2 6 -1 6 7 -3 3 2 3;
8 6 -8 5 7 17 2 6 -3 5;
0 2 -1 3 -4 2 5 3 0 1;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行交换
消去
验证
Wenjian Yu
39
采用部分主元的LU分解算法 (算法3.7)
(Matlab命令: lu)
Wenjian Yu 40
部分主元技术与其他主元技术
(见演示3.5)
41
Wenjian Yu
算法的稳定性
(思考题)
Wenjian Yu
42
对称正定矩阵的 Cholesky分解
Wenjian Yu
稀疏的对角阵 较稠密的带状方阵 上三角或下三角矩阵 对三角矩阵作行排列 形成的矩阵 对称矩阵, 且对角线元 素大于零
求解算法
右端项元素除以矩阵对角元 部分主元的带状矩阵LU分解 (LAPACK软件包) 回代法或前代法 重排序后用回代或前代法
尝试Cholesky分解算法(稠密矩阵: LAPACK, 稀 疏矩阵: CHOLMOD), 若稠密、且不正定使用 选主元的对称矩阵求解算法(LAPACK) 稠密上Hessenberg矩阵 消为上三角矩阵再回代求解 针对稀疏矩阵的直接解法(UMFPACK) 一般的稀疏方阵 部分主元LU分解(LAPACK) 一般的稠密方阵 通过矩阵的QR分解得到最小二乘解 不是方阵
稀疏矩阵
广泛用于非结 构化稀疏阵
Wenjian Yu
56
稀疏矩阵
思考: 按稀疏矩阵存 储格式写相应程序
X X 0 0
Wenjian Yu
0 X 0 X X X X 0 X X 0 X 0 X X
57
X
X
X
Matlab中的相关技术
Wenjian Yu
58
Matlab中的矩阵
数 值 分 析 (3)
Numerical Analysis
第三章 线性方程组的直接解法
线性方程组求解是一个基本的数学问题
新的挑战:
方程的规模大,例如变量数>106 困难: 存储、计算速度、舍入误差 是数值线性代数的基础 (我们分两章讨论)
本章内容
基本概念与问题敏感性
高斯消去法
27
矩阵的LU分解
算法3.5 用高斯消去过程做LU分解
乘子的相反数
Wenjian Yu
28
矩阵的LU分解
Wenjian Yu
29
直接LU分解算法 (算法3.6)
u
l u
l
l
u
• 数学上等价算法3.5 • 算法描述不同,存 取、计算的顺序不同 • 对于稠密矩阵(二维 数组)计算效率一样, 但对于稀疏矩阵(特殊 数据结构),效率可能 有较大差别
美国TAMU, Prof. Davis, 2004, /davis/
Wenjian Yu 61
Wenjian Yu
62
非线性方程组求解
Wenjian Yu
63
非线性方程组的求解
最大特征值<1
Wenjian Yu
牛顿法解非线性方程组
交互演示2.6
向量有关的定理
(Hint: 利用范数,课后思考)
Wenjian Yu
8
矩阵的范数
(不满足交换律)
Wenjian Yu
9
Hale Waihona Puke 矩阵的范数后面只考虑 算子范数
0
1
思考: 如何证明?
Wenjian Yu
10
矩阵的范数
Wenjian Yu
11
问题的敏感性
Wenjian Yu
12
线性方程组求解问题的敏感性
非奇异矩阵, 线性方程组解的存在性与唯一性
Wenjian Yu 4
线性方程组与矩阵的基本概念
表示稀疏矩阵的Wilkinson图
Wenjian Yu
5
向量的范数
(正定条件)
(三角不等式)
Wenjian Yu
6
向量的范数
(曼哈顿范数)
(欧氏范数=内积范数)
(“最大”范数)
观看演示3.1
Wenjian Yu 7
30
Wenjian Yu
LU分解的用途
也可求矩阵的逆
Wenjian Yu
31
选主元技术与稳定性
Wenjian Yu
32
主元为零的可能性
单位下三角阵
Wenjian Yu
33
主元为零的可能性
无LU分解 高斯消去中断
?
? ?
无穷多LU分解
思考:这三条性质 可以互相推出吗?
34
矩阵奇异
矩阵不可LU分解
1 R4
4 5
0
Wenjian Yu
44
对称矩阵的LU分解
希望快速求解对称 或对称正定矩阵
Wenjian Yu
45
对称矩阵的LU分解
Wenjian Yu
46
Cholesky分解算法
也叫平方根法. 下面按直接LU分解思想推导算法
l 11 0 L l 21 l 22 O M M O l l L n1 n2 0 l 11 M 0 0 M l nn 0 l 21 L l n 1 l 22 L l n 2 O O M L 0 l nn
压缩稀疏行 (CSR格式)
aa 1 2 3 4 5 6 7 8 9 10 11 col 1 3 1 2 4 1 3 5 2 4 5 prow 1 3 6 9 11 12 非零元按第1行, 第2行, …, 第n行的顺序存储 prow为各行在数组中的开始位置 如何得每行非零元数目?
Wenjian Yu 55
a1n a2 n a3n ann
Wenjian Yu
21
矩阵的LU分解
Wenjian Yu
22
高斯消去法
Wenjian Yu
23
矩阵的LU分解
高斯消去过程对矩阵A的变换 (3阶矩阵为例)
行倍加变换
等价于左乘消去矩阵:
乘子
两次倍加变换 单位下三角阵
=
算法3.10 (按从1到n的顺序逐列算出L的元素值)
For j =1 to n
a jj
2 a jj l j21 L l jj
a jj
2 a jk k 1
j 1
{对角元}
{当前列}
For i = j+1 to n
a ij (a ij a ika jk ) / a jj
18
Wenjian Yu
高斯消去法
Wenjian Yu
19
高斯消去法
行倍乘变换 行倍加变换
(此小节不要求)
Wenjian Yu
20
高斯消去法
算法3.1
a11 a21 a 31 解线性方程组的高斯消去过程 an1
a12 a22 a32 an 2
a13 a23 a33 an3
Wenjian Yu
24
矩阵的LU分解
第2步消去
行倍加变换
等价于左乘消去矩阵
一次倍加变换
Wenjian Yu
25
矩阵的LU分解
逆矩阵也是消 去矩阵
注: 矩阵的下标指 示了消去矩阵的 类型数(定义3.12)
定理 3.13
Wenjian Yu
26
矩阵的LU分解
(充要条件)
Wenjian Yu
Wenjian Yu
牛顿法解非线性方程组
解方程
解方程
Wenjian Yu
存储方式
稠密矩阵(二维数组) 、稀疏矩阵(压缩稀疏列) 以相同的方式支持一般的矩阵操作/运算; 通过whos
命令看两者区别
稠密矩阵的命令
生成矩阵:
ones(m,n), zeros(m,n), eye(m,n), rand(m,n) 矩阵维数等: size(A), diag(A)/diag(v), tril(A), triu(A) 载入/导出数据文件 (ascii或binary格式): load, save
43
应用实例
R4
V3
R5 R3
V1
R1
V2
R2
is1
1 1 R R 1 R 1 R
1
2
1 R4
2
1 R2 1 1 R2 R3
4
0
V1 0 V 0 0 2 1 1 i V s 1 3 R R
Wenjian Yu
13
矩阵的条件数
Wenjian Yu
14
矩阵的条件数
符合上界的意义
Wenjian Yu 15
矩阵的条件数
良态问题!
见pp. 68
Wenjian Yu
16
矩阵条件数的性质
0
1
(演示3.2)
Wenjian Yu 17
矩阵条件数的性质
p-范数下等号成立!
正交变换不改条件数!
1
2 max lij
m ax a ii
1
(Matlab演示)
48
Wenjian Yu
带状矩阵解法与 稀疏矩阵简介
Wenjian Yu
49
带状线性方程组
Wenjian Yu
50
带状线性方程组
计算量: M.D.= 2n-2