数值计算08-线性方程组数值解法(优选.)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0
而精确值为
x1
1, 3
x2
2 3
显然该解与精确值相差
太远,为了控制误差,采用另一种消元过程。
解法二 为了避免绝对值很小的元素作为主元,先交 换两个方程,得到 1.0000x1 1.0000x2 1.0000
0.0003x1 3.0000x2 2.0001
消去第二个方程中的 x1 ,得
Anx bn
也即
a111
a112 a222
a11n a22n
x1 x2
bb1212
annn
xn
bnn
这是一个与原方程组等价的上三角形方程组。把 经过 n-1次消元将线性方程组化为上三角形方程组的 计算过程称为消元过程。
Page 16
当 annn 0时,对上三角形方程组自下而上逐步回
解 用第一个方程削去后两个方程中的 x1 , 得
2 x1 8 x2 2x3 14
2x2 2x3 6
9x2
9
再用第2个方程消去第3个方程中的 x2 ,得
2 x1 8x2 2 x3 14
2x2 2x3 6
9x3 18
最后,经过回代求得原方程组的解为
18 x3 9 2
8.1 消去法
Page 7
消去法在线性代数中已有详细的讨论,在此只 给出一些说明以及算法的具体描述。
消去法的基本思想:是通过将一个方程乘或除以
某个常数,以及将两个方程相加减,逐步减少方程中
的变元数,最终使每个方程只含一个变元,从而得出
所求的解。
高斯消去法
消去法常用方法: 选主元消去法
高斯-约旦消去法
其中 A 为系数矩阵,x 为解向量,b 为右端常向量P。age 3
a11 a1n
A
an1 ann
x1
x
xn
b1
b
bn
若矩阵A非奇异,即A 的行列式 det A 0 ,根据
克莱姆(Gramer)法则,方程组有唯一 解:
xi
Di D
i 1,2,, n
其中D 表示 det A ,Di 表示 D 中第 i 列换成 b 后
Page 5
线性代数方程组的计算机解法常用方法:
直接法 迭代法
消去法 矩阵三角分解法
Page 6
直接法:经过有限步算术运算,可求得方程组
的精确解的方法(若在计算过程中没有舍入误差)
迭代法:用某种极限过程去逐步逼近线性方程
组精确解的方法 迭代法具有占存储单元少,程序设计简单,原
始系数矩阵在迭代过程中不变等优点,但存在收 敛性及收敛速度等问题
解法一 用高斯消元法求解(取5位有效数字),用第 一个方程消去第二个方程中的 x1 ,
0.0003
x1
3.0000x2 9999.0x2
2.0001 6666.0
因而再回代,得
Page 31
x2
6666.0 9999.0
.06667
2.0001 3.0000 .06667
x1
0.0003
注:当n = 20时约为2670次,比克莱姆法则9.71020次 大大减少。
Matlab求解
Page 24
当系数矩阵A为N*N的方阵时,MATLAB会自行用高斯 消去法求解线性代数方程组。
在MATLAB中的求解 命令有:
x A\b x inv( A) * b x A ^ (-1) * b x b '/ A' x b '* inv( A')
如:求解
3 1
2 1
x1 x2
1
1
设:A=[3, 2;1, -1];
b [-1,1]';
则: x A \ b
得: x
0.2000
- 0.8000
Matlab求解
Page 25
当系数矩阵A为N*N的方阵时,MATLAB会自行用高斯 消去法求解线性代数方程组。
若系数矩阵的秩r<n,则可能有无穷解; 线性方程组的无穷解 = 对应齐次方程组的通解+非齐次
高斯消去法的计算量
以乘除法的次数为主
(1) 消元过程:
a ( k 1) ij
a(k) ij
likai(jk )
b( k 1) i
bi(k )
likbk(k )
j k 1, k 2,..., n
i k 1, k 2,..., n 第k步时(n – k) + (n – k) (n – k + 1)
方程组的一个特解
1 1 1 1
设 A 2 5 3
2
7 7 3 11
5 B 4
7
求线性方程组Ax=B的通解。
解法1: 利用除法 \ 和 null 函数
Page 26
在命令窗口输入以下命令: (注意:这里给出的 A不 是方阵)
A=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];
= (n – k) (n – k + 2)
共有
n1
n3 n2 5
(n k)(n k 2) n
k 1
3 26
Page 21
高斯消去法的计算量
Page 22
以乘除法的次数为主
(1) 消元过程:n1
n3 n2 5
(n k)(n k 2) n
k 1
3 26
(2)
回代过程: xn
8.1.1 高斯消去法 ——按自然顺序进行的消元法
Page 8
高斯消去法属于直接法,一般由“消元过程” 和“回代过程”两部分组成。先举几个简单实例,
再对一般n阶方程组说明高斯消去法的基本思想。
例 1 用高斯消元法求解方程组
Page 9
2 x1 8 x2 2x3 14
x1
6 x2
x3
13
2 x1 x2 2 x3 5
代解方程组,计算 xn , xn1,, x1 ,即
xn
bn n annn
n
,
xi
bii
aiji x j
ji1
aiii
a111
a112 a222
a11n a22n
x1 x2
bb1212
annn
xn
bnn
i n 1,,2,1
akkk, k 1,2,, n ,称为各次消元的主元素,
a(k) ik
a(k) kk
aijk
mik
a
k
kj
bik1 bik mikbkk
xn
bnn annn
bii
n
a
i
ij
x
j
,
xi
ji1
aiii
i, j k 1, k 2,, n
i n 1,,2,1
高斯消元法的条件
Page 20
定理1
如果在消元过程中A的主元素
a(k) kk
Page 23
以乘除法的次数为主
(1) 消元过程:n1
n3 n2 5
(n k)(n k 2) n
k 1
3 26
(2) 回代过程: n1
n
n2 n
1 (n i 1) (n i 1)
i 1
i 1
22
(3) 总次数为
MD n3 n2 n n3 O(n3 )
3
33
x2
6
2x3 2
1
x1
14
8 x2 2
2 x3
5
例 2 解方程组
2x1 x2 x3 7 4 x1 5x2 x3 11 x1 2 x2 x3 0
Page 10
解:消元
Page 11
2 4
1 5
1 1
7 11
42r1
r2
2 0
1 3
1 7 3 3
1 2 1
0
bn( n ) a(n)
nn
bi(i )
n
ai(ji ) x j
xi
ji1
a(i) ii
i n 1, n 2,...,1
求xi中, 乘n–i次,除1次,共n–i+1次(i = 1,…,n–1)
共有
n1
n
n2 n
1 (n i 1) (n i 1)
i 1
i 1
22
高斯消去法的计算量
在求解线性方程组时其系数矩阵绝大部分都是非奇
异的,但可能出现主元素
a(k) kk
0
消去法无法进行;
或| akk(k) |<<1时,带来舍入误差的扩散。如何处理?
8.1.2 高斯主元素消元法
Page 30
例 1 解方程组
10..00000003xx11
3.0000 x2 1.0000 x2
2.0001 1.0000
即:
a111
a112 a222
a11n a22n
x1 x2
bb1212
an22
an2n
xn
bn2
其中:
abiij22
aij1 bi1
mi1a11j mi1b11
i, j 2,3,, n
Page 14
第 k 次消元 2 k n 1 时,设第 k 1 次消元
所得的行列式。
Page 4
当阶数较高时用这种方法求解是不现实的。n 阶
n 行列式有n!项,每项又是 个数的乘积。对较大
的n ,其计算量之大,是一般计算机难以完成的。 而且,这时的舍入误差对计算结果的影响也较大。
例如,求解一个20阶线性方程组,用加减消元法需 3000次乘法运算,而用克莱姆法则要进行 9.7 1020次 运算,如用每秒1亿次乘法运算的计算机要30万年。
分别记为
a
1
ij
和
bi1
,i, j 1,2,, n ,系数上标 1
代表第1次消元之前的状态。
第1次消元时,设 a111 0
对每行计算乘数
mi1
ai11 a111
,
i 2,3,, n
Page 13
用 mi1 乘以第1个方程,加到第 i 个方程,消去
第 2个方程到第 n个方程的未知数x1 ,得 A2x b2
0
(k=1,2,…,n) ,则可通过高斯消元法求出Ax=b 的解。
引理
A的主元素
a(k) kk
0
(k=1,2,…,n) 的充要条件
是矩阵A的各阶顺序主子式不为零,即
a11
a1k
D1 a11 0 Dk
0, k 2, 3, , n
ak1
akk
定理2 Ax=b 可用高 斯消元法求解的充分必要条件是: 系数矩阵 A 的各阶顺序主子式均不为零。
1 2
r1
r3
0 2.5 0.5 3.5
2 1 1 7
32.5 r2 r3
0
3
3
3
0 0 2 6
回代得
6 x3 2 3,
x2
3 3x3 3
2,
Baidu Nhomakorabea
x1
7
x2 2
x3
1
Pa消ge去12法
下面讨论一般 n 阶线性方程组的高斯消去法。
记 Ax b 为 A1x b1 ,A1 和 b1 的元素
解法2:利用 rref 函数
Page 27
在命令窗口输入以下命令:
format rat
A=[1 1 -1 -1;2 -5 3 2;7 -7 3 1];
B=[5; -4; 7]; %用初等行变换将增广矩阵 [A B] 化成最简行阶梯形T
T=rref([A B])
输出结果: T =
1 0 0
0 -2/7 -3/7
已完成,即有 Akx bk 其中:
a111
a112 a222
a223
a11n a22n
Ak
akkk
akkn
ankk
ankn
b11 b22
bk
bkk
bnk
设 akkk 0 ,计算乘数
mik
aikk akkk
,
i k 1,, n
只要 akkk 0,消元过程就可以进行下去,直到Pa经ge 15 过 n 1 消元之后,消元过程结束,得
程序如下:
A=[5 6 0 0 0 15600 01560 00156 0 0 0 1 5];
R_A=rank(A) X=A\B
B=[1 0 0 0 1]'; %求秩 %求解
Page 28
高斯消去法的计算量
Page 29
定理:高斯消去法求解 n 阶线性方程组共需乘除法
次数近似为 n3 。 3
讨 论:
3
1 -5/7 -4/7
2
0
0
0
0
于是可得方程组Ax=B的通解为:
3 2/7 3/7
X
2
00
k1
5
/7 1 0
k2
4/7 0 1
例2:用Gauss消去法求解方程组:
5 x1 6 x2
1
x1
5x2 x2
6x3 5x3
6
x4
0 0
x3 5x4 6x5 0
x4 5x5 1
数值计算 第八章 线性方程组 的数值解法
第八章 线性方程组的数值解法 Page 2
• 问题的提出:
n阶线性代数方程组的一般形式为:
a11x1 a12 xx a1n xn b1
a2
1
x1
a22xx
a2n xn
b2
an1 x1 an2 xx ann xn bn
写成矩阵-向量形式 Ax b
B=[5; -4; 7];
format rat
x1=A\B
%求得非齐次方程组Ax=B的一个特解x1
Y=null(A,’r’) %求得齐次方程组Ax=0 的基础解系Y
输出结果: x1 =
3 2 0 0
Y=
2/7 3/7
5/7 4/7
1
0
0
1
则方程组Ax=B的通解为: x=x1+k1*Y(:,1)+k2*Y(:,2)
主元素所在的行称为主行。
高斯消去法的计算步骤为:
Page 17
1〉消元过程 设 ,对 akkk 0
k 1,2,, n 1 ,计算
a111
a112 a222
a11n a22n
x1 x2
bb1212
annn
xn
bnn
2〉回代过程
mik aijk 1