第三章 高斯消去法与LU分解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩阵形式为
Ax = b
A R
m ( n 1)
其增广矩阵记为
A
A, b
a 11 a 21 am1
a 12 a 22 am 2

a1n a2n amn
b1 b2 bm
数值求解方法主要有以下两条途径
直接法:利用Gauss消元或矩阵分解,cksub(A, b); %回代求解
MATLAB For Gaussian Elimination
function X=gauss(A,b) %Input—A is an n×n nonsingullar matrix % ---b is an n×1 matrix %Output—X is the solution to the system AX=b
[n n]=size(A); % 确定A的维数 X=zeros(n,1); for k=1:n-1 for i=k+1:n % 消元过程 m=A(i,k)/ A(k,k); % A(k,k) ≠0 A(i,k+1:n)= A(i,k+1:n)-m*A(k,k+1:n); b(i)= b(i)-m*b(k); end
“回代”解 得
bn xn a nn x 1 [b k k a kk
a
j k 1
n
kj
x j]
其中a
返回变量
ii
0
( i 1, 2 ,......, n )
( k n 1 , n 2 , ,1 )
函数名
function X=backsub(A,b) 参数表 %Input—A is an n×n upper- triangular nonsingullar matrix % ---b is an n×1 matrix %Output—X is the solution to the system AX=b n=length(b); A的第i行中第i+1列到第n列 X=zeros(n,1); 元素构成的行向量 X(n)=b(n)/A(n,n); for i=n-1:-1:1 X(i)=(b(i)-A(i,i+1:n)* X(i+1:n))/A(i,i); end
x 1 b1 / a 11 i 1 x ( b i a ik x k ) / a ii ( i 2 , 3 , , n ) i k 1 如上解三角形方程组的 方法称为回代法 .
2.高斯消元法(Gaussian Elimination)
高斯消元法的求解过程,可大致分为两个阶段:首 先,把原方程组化为上三角形方程组,称之为“消元” 过程;然后,用逆次序逐一求出上三角方程组(原方程 组的等价方程组)的解,称之为“回代”过程. 符号约定: 1. (λEi )(Ei ): 2. (Ei +λEj )(Ei ): 第i个方程乘以非零常数λ。 第j个方程乘以非零常数λ 加到第i个方程。
消去法的特点就是通过消元将一般线性方 程组的求解问题转化为三角方程组的求解问题。
1.三角形方程组的解法

a 11 x 1 a 12 x 2 a 1 n x n b 1 a 22 x 2 a 2 n x n b 2 a n1n1 x n1 a n1n x n bn1 a nn x n b n
故解为(
x1 , x 2 , x 3 , x 4 )
T
(1, , ,) 2 0 1
T
A=[1 1 0 1;0 -1 -1 -5;0 0 3 13;0 0 0 -13] b=[4;-7;13;-13] X=backsub(A,b)
下三角方程组的一般形

式为: b1 b2
i k 1, k 2 , , n a ik / a kk m ik a ij m ik a kj a ij ( j k 1 , k 2 , , n ) b i m ik b k b i
1 .2 .1 1 .2 .2 1 .2 .3 2 3
bn / a n x n For 3 .1 k n 1 , n 2 , ,1 ( bk
Gauss 消元法算法: 说明 输入 输出 步骤 1 For 1 .1 1 .2 If For k 1, 2 , , n 1 a kk 0 then 输出“不能消元”, stop 本算法用 Gauss 消元法来求线性方程组 的解。
n , a ij , b i , ( i , j 1 , 2 , , n ) x1 , x 2 , , x n
注意: aij随着消 元过程而改变, 旧值被新值冲掉
a 11 0
Ei a i1 a 11 E1 Ei
(i=2,3,…,n)
a 11 x 1 a 12 x 2 a 1 n x n b 1 a 22 x 2 a 2 n x n b 2 a n 2 x 2 a nn x n b n
3.(Ei )(Ej ):
交换第i个方程与第j个方程。
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 x a x ... a x b n2 2 nn n n n1 1
a 22 0
Ei
ai2 a 22
E2 Ei
(i=3,…,n)
继续下去到第k-1步,可将线性方程组化为如下上三角方程组:
a 11 x 1 a 12 x 2 a 1 n x n b1 a 22 x 2 a 2 n x n b 2 a kk x k a kn x n b k a nk x k a nn x n b n
a 11 x 1 a 12 x 2 a 1 n x n b1 a 22 x 2 a 2 n x n b 2 a nn x n b n
由上述分析可知,将第k列对角线以下的元素化为零时 即
E i E i ( a ik / a kk ) E k ( i k 1, , n )
用回代法求解线性方程组
x1 x2 x2 x3 3 x3 x4 5 x4 13 x 4 13 x 4 4 7 13 13

x4 1 x 3 (13 13 x 4 ) / 3 0 x2 (7 5 x4 x3 ) (7 5 0) 2 x1 4 x 4 x 2 4 1 2 1
a
j 1
n
kj
x j ) / a kk x k
4
End
MATLAB For Gaussian Elimination
function X=gauss(A,b) %Input—A is an n×n nonsingullar matrix % ---b is an n×1 matrix %Output—X is the solution to the system AX=b
[n n]=size(A); % 确定A的维数 X=zeros(n,1); for k=1:n-1 for i=k+1:n % 消元过程 A(i,k) =A(i,k)/ A(k,k); % A(k,k) ≠0 A(i,k+1:n)= A(i,k+1:n)- A(i,k) *A(k,k+1:n); b(i)= b(i)- A(i,k) *b(k); end
end
X=backsub(A, b); %回代求解
消元法是解线性方程组的基本方法,具有计算简单的优点, 但有时由于主元过小,使得计算结果严重失真,实际中常采用 选主元高斯消元法。 例如,解下列方程组(假设是在四位浮点十进制数的条件下) 0.0001x1+x2=1 a22 = 0.1000 101-104 0.1000 101 x1+x2=2 = -0.1000 105 解:本题用机器数系表示为 0.100010-3 x1+0.1000101 x2=0.1000 101 0.1000 101 x1+0.1000 101x2=0.2000 101 0.100010-3 x1+0.1000101 x2 = 0.1000 101 -0.1000105 x2 = -0.1000 105 回代解得x2=1,x1=0。严重失真!
列主元素法的精度虽稍低于全主元素法但其计算简单工作量大为减少且计算经验与理论分析均表明它与全主元素法同样具有良好的数值稳定性列主元素法是求解中小型稠密性方程组的最好方法之一
第三章
(一)引言
线性代数方程组的解法
线性代数方程组的一般形式
a 1 1 x 1 a 1 2 x 2 a 1 n x n b1 a 21 x 1 a 22 x 2 a 2 n x n b2 a x a x a x b m2 2 mn n m m1 1
k
k
如果在第k步消去前,在第k个方程到第n个方程所有的xk到xn 的系数 a ij (i=k ,…,n ;j=k,…,n)中,找出绝对值最大者,例如
a 11 x 1 a 12 x 2 a 1 n x n b 1 a 22 x 2 a 2 n x n b 2 a 33 x 3 a 3 n x n b 3 a n 3 x 3 a nn x n b n
a 11 x 1 a 21 x 1 a 22 x 2
a n 1 x 1 a n 2 x 2 a nn x n b n
其中 a ii 0 , i 1 , 2 , , n 下三角形方程组可以参 下三角形方程组的求解 的顺序,依次解出: 照上三角形方程组的解 顺序是从第一个方程开 x 1 , x 2 , , x n , 其计算公式为: 法来求解, 始,按从上到下
(本题的准确解为x1=10000/9999,x2=9998/9999)
= 0.00001 105-0.1000 105
选主元基本思想
用高斯消元法求解线性方程组时,为避免小的主元.在进行第k 步消去前,应该在第k列元素 a ik (i=k,…,n)中找出绝对值最大者,例 如| a i k | max | a ik | ,再把第ik个方程与第k个方程组进行交换,使 a i k k i n 成为主元.我们称这个过程为选主元.由于只在第k列元素中选主元, 通常也称为按列选主元.
m ik a ik / a kk a ij a ij m ik a kj b i b i m ik b k
( i k 1, , n ) ( i k 1, , n ; j k , , n ) ( i k 1, , n )
迭代法:构造迭代格式,产生迭代序列,通过无限
次迭代过程求解。有限次截断得近似解。
高斯消元法与选主元
高斯消元法是一个古老的方法,是求解 线性方程组 Ax=b 和满秩矩阵的逆矩阵 A-1 的一种直接方法。尽管它比较古老,但它具 有演算步骤,推算公式都系统化的特点。而 由它改进得到的选主元的消元法,还可以证 明是稳定的。因此,它至今仍然是求解方程 组的一种有效的方法。
相关文档
最新文档