计算方法(3)第三章 线性代数方程组的解法

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

“回代”解得

xn

bn ann


xk

1 akk
[bk

n
akj x j ]
j k 1

其中aii 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
x1

xi

b1 / a11
i 1
(bi aik
k 1
xk ) / aii
(i

2,3,
, n)
如上解三角形方程组的方法称为回代法.
二. 高斯消元法(Gaussian Elimination)
高斯消元法的求解过程,可大致分为两个阶段:首先, 把原方程组化为上三角形方程组,称之为“消元”过 程;然后,用逆次序逐一求出上三角方程组(原方程组的 等价方程组)的解,称之为“回代”过程.
符号约定:
1. (λEi )(Ei ): 第i个方程乘以非零常数λ。 2. (Ei +λEj )(Ei ): 第j个方程乘以非零常数λ
加到第i个方程。
3.(Ei )(Ej ): 交换第i个方程与第j个方程。
a11 x1 a12 x2 ... a1n xn b1
a21
x1 4 x4 x2 4 1 2 1
故解为(x1,x2 ,x3 ,x4 )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)
下三角方程组的一般形式为:
a11 x1
Gauss消元法算法:
说明 本算法用Gauss消元法来求线性方程组的解。
输入 输出 步骤
n,aij ,bi ,(i, j 1,2, , n) x1, x2 , , xn
1 For k 1,2, ,n 1 1.1 If akk 0 then 输出“不能消元”,stop 1.2 For i k 1,k 2, ,n
第三章 线性代数方程组的解法
线性代数方程组的一般形式
a11 x1 a12 x2 L a1n xn b1

a21 x1 a22 x2 L L LL
a2n xn L
b2 L
am1 x1 am2 x2 L amn xn bm
矩阵形式为 Ax = b
red =
0.4400 eri =
2.6829e-015
0.0469
rei =
0.0047
数值求解方法本章主要介绍以下两类
直接法:利用Gauss消元或矩阵分解,通过有限 次
运算可求出精确解。 迭代法:构造迭代格式,产生迭代序列,通过无限
次迭代过程求解。有限次截断得近似解。
3.1 解线性方程组的直接法 高斯消元法与选主元
r( A) r( A%)方程组Ax b无解(即不相容)。 常见是m n,称为超定方程组(又称矛盾方程组) 此时,向量b不在A的列空间R( A)之中,原方程组
无解,但可求出最小二乘意义下的解 x。
即求 x使 || b Ax ||22 min
MATLAB实现: x=A\b
本章介绍求解n阶线性方程组的数值方法
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);
注:系数矩阵A必须是行满秩或列满秩
【例】“求逆”法和“左除”法解恰定方程的性能
对比
(1)构造一个条件数很大的高阶恰定方程
randn('state',0);
A=gallery('randsvd',100,2e13,2);
x=ones(100,1);
b=A*x;
cond(A)
ans =
1.9990e+013 (2)用“求逆”法求解 tic xi=inv(A)*b; ti=toc eri=norm(x-xi)
end
用回代法求解线性方程组
x1 x2
x4 4

x2 x3 5x4 7 3x3 13x4 13

13x4 13
解 x4 1
x3 (13 13x4 ) / 3 0
x2 (7 5x4 x3 ) (7 5 0) 2
一. 三角形方程组的解法
a11 x1 a12 x2 a1n xn b1
a22 x2 a2n xn b2 a x n1n1 n1 an1n xn bn1 ann xn bn
end
X=backsub(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
其增广矩阵记为 A Rm(n1)
a11 a12 L
A


A, b


a21 L
a22 L
L L
am1 am2 L
a1n b1
a2n
b2

L L
amn
bm

结论1 (线性代数方程组有解判别定理)线性方程组 Ax b有解的充分必要条件是:秩(A)=秩(A%)
高斯消元法是一个古老的方法,是求解 线性方程组 Ax=b 和满秩矩阵的逆矩阵 A-1 的一种直接方法。尽管它比较古老,但它具 有演算步骤,推算公式都系统化的特点。而 由它改进得到的选主元的消元法,还可以证 明是稳定的。因此,它至今仍然是求解方程 组的一种有效的方法。
消去法的特点就是通过消元将一般线性方程 组的求解问题转化为三角方程组的求解问题。



akk xk akn xn bk



ank xk ann xn bn

a11x1 a12 x2 a1n xn b1

a22 x2 a2n xn b2


[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
结论2 线性方程组Ax b有解(即相容)时, (1)秩( A) 秩( A%) r n,则方程组Ax b存在唯一解。
(2)r( A) r( A%) r n, 方程组Ax b有无穷多解。 通解 原方程组一个特解 对应齐次方程组的基
础解系的线性组合。
常见是m n,称为欠定方程组(方程数少于未知数) 此时,从Ax b的无穷多个解中需求出2 范数最小的解。 即求 x,使 || x ||2 min || x ||2 ,x满足Ax b。
1.2.1 aik / akk mik 1.2.2 aij m aik kj aij ( j k 1, k 2, , n) 1.2.3 bi mikbk bi 2 bn / an xn 3 For k n 1,n 2, ,1
n
3.1 (bk akj x j ) / akk xk j 1
%Output—X is the solution to the system AX=b
n=length(b); X=zeros(n,1); X(n)=b(n)/A(n,n);
A的第i行中第i+1列到第n 列元素构成的行向量
for i=n-1:-1:1
X(i)=(b(i)-A(i,i+1:n)* X(i+1:n))/A(i,i);

ann xn bn

由上述分析可知,将第k列对角线以下的元素化为零时
Ei Ei (aik / akk )Ek (i k 1, , n) 即
amijikaaij ik/makikkakj bi bi mikbk
(i k 1, ,n) (i k 1, ,n ; j k, ,n) (i k 1, ,n)

a22 x2 a2n xn b2

an2 x2 ann xn bn
a22 0
Ei

ai 2 a22

E2

Ei
(i=3,…,n)

a11
x1

a12 x2 a22 x2




a1n xn a2n xn
ti = 0.4400
eri = 0.0469
rei = 0.0047
rei=norm(A*xi-b)/norm(b)
(3)用“左除”法求解
tic;xd=A\b;
td=toc,
erd=norm(x-xd),
red=norm(A*xd-b)/norm(b)
td = 0.0600
ti =
erd = 0.0078

b1 b2

a33 x3 a3n xn b3



an3 x3 ann xn bn
继续下去到第k-1步,可将线性方程组化为如下上三角方程组:
a11x1 a12 x2 a1n xn b1

a22 x2 a2n xn b2
-2x+2y=2
-x+y=0
-x+y=1
2x-y=0
A1=[-1 1;-2 2], b1=[1;2],x1=A1\b1 A10=[-1 1], b10=[1],x10=A10\b1],x2=A2\b2
A3=[1 2;-1 1;2 -1], b3=[-2;1;0],x3=A3\b3
x1
a22
x2

... a2n
xn

b2
an1 x1 an2 x2 ... ann xn bn
注意: aij随着消 元过程而改变, 旧值被新值冲掉
a11 0
Ei

ai1 a11

E1

Ei
(i=2,3,…,n)
a11 x1 a12 x2 a1n xn b1
a11 x1 a12 x2 L a1n xn b1

a21 x1 a22 x2 L L LL
a2n xn L
b2 L
an1 x1 an2 x2 L ann xn bn
x=A\b应用中应注意的问题
例:考察下面三个线性方程组的解
(A1) -x+y=1 (A2) -x+y=1 (A3) x+2y=-2
b1


a21 x1

a22 x2
b2










an1 x1 an2 x2

ann xn
bn
其中aii 0, i 1,2, , n
下三角形方程组可以参照上三角形方程组的解法来求解,
下三角形方程组的求解顺序是从第一个方程开始,按从上到下
的顺序,依次解出:x1, x2 , , xn ,其计算公式为:
相关文档
最新文档