求解线性方程组的直接解法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
求解线性方程组的直接解法
5.2LU分解
① Gauss消去法实现了LU分解
顺序消元结束时的上三角矩阵U和所用的乘数,严格下三角矩阵。
将下三角矩阵的对角元改成1,记为L,则有A=LU,
这事实是一般的,我们不难从消去的第k个元素时的矩阵k行及k列元素的
历史得到这一点.因为从消元的历史有
u kj=a kj-m k1u1j- m k2u2j -…- m k,k-1u k-1,j, j=k,k+1,…,n
m ik=(a ik-m i1u1k- m i2u2k -…-m i,k-1u k-1,k>/u kk i=k+1,k+2,…,n
于是a kj=m k1u1j+m k2u2j+…+m k,k-1u k-1,j+u kj, j=k,k+1,…,n
a ik=m i1u1k+m i2u2k+…+m i,k-1u k-1,k+m ik u kk i=k+1,k+2,…,n
从前面两个式子我们可以直接计算L和U(见下段>.将矩阵分解为单位下
三角矩阵和上三角矩阵之积称为矩阵的LU分解.顺序消元实现了LU分
解,同时还求出了g, Lg=b的解.
②直接LU分解
上段我们得到(l ij=m ij>
u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j, j=k,k+1,…,n
l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk i=k+1,k+2,…,n
2
诸元素对应乘积,只不过算L的元素时还要除以同列对角元.这一规律很
容易记住.可写成算法(L和U可存放于A>:
for k=1:n-1
for j=k:n
u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j
end
for i=k+1:n
l ik=(a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k>/u kk
end
end
这一算法也叫Gauss消去法的紧凑格式,可一次算得L,U的元素,不需逐步
计算存储.
考察上面的表格会发现还可安排其它计算次序,只要在这一次序下每个
元素左边的L的元素与上方的U的元素已计算在先。例如,
逐行自左而右的次序, 逐列自上而下的次序,…
易知g的计算规律同U.
利用LU分解解Ax=b分三步:
1.分解A=LU
2.解Lg=b 求g
3.解Ux=y 求x
例3.用直接LU分解法解
解用分解公式计算得
求解
③其它分解
我们用顺序消元和直接分解两种方法实现了LU分解.还有更一般的三角分解,比如,下三角矩阵和单位上三角矩阵之积,又如单位下三角矩阵,
对角矩阵,单位上三角矩阵之积,等等.下面给出第二种
分解形式的算法LDR分解法。A=LDR,L是单位下三角矩阵,D是对角矩
阵,R是单位上三角矩阵.逐列计算(逐列作LU分解,再用U的对角元素除各
行>,结果存入A。
for j=1:n
for i=2:j
a ij=a ij-a i1a1j-a i2a2j -…-a i,i-1a i-1,j
end
for i=j+1:n
a ij=(a ij-a i1a1j-a i2a2j -…-a i,j-1a j-1,j>/a jj
end
for i=1:j-1
a ij= a ij/a ii
end
end
④列主元素的LU分解
对照顺序消元和LU分解,列主元素法也可得列主元素的LU分解:
PA=LU
P是行交换结果的排列阵,L和U同前.
例4.列主元素法解方程组并写出系数矩阵的LU分解.
括号内是乘数,k=2时2,3行交换.因而有
直接作列主元素LU分解,因为在k步要先选主元素,所以作如下改变:
for k=1:n-1
for i=k:n
a ik=a ik-l i1u1k-l i2u2k -…-l i,k-1u k-1,k
end
找p:
p行k行
i k=p
for j=k+1:n
u kj=a kj-l k1u1j-l k2u2j -…- l k,k-1u k-1,j
end
for i=k+1:n
l ik= a ik/u kk
end
end
可将l ik存于a ik,u kj存于a kj.
二实验部分
本章实验内容:
实验题目:Gauss消元法,追赶法,范数。
实验内容:①编制用Gauss消元法求解线性方程组Ax=f的程序。
②编制用追赶法求解线性方程组Ax=f的程序。③编制向量
和矩阵的范数程序。
实验目的:①了解Gauss消元法原理及实现条件,熟练掌握Gauss消元法解方程组的算法,并能计算行列式的
值。
②掌握追赶法,能利用追赶法求解线性方程组。
③理解向量和矩阵范数定义,性质并掌握其计算方法. 编程要求:利用Gauss消元法,追赶法解线性方程组。分析误差。
计算算法:①Gauss消元法:
1.消元过程
设,对计算
⒉回代过程
②追赶法:
1.分解Ax=f:
( >
2.解Lg=f,求g:
(>
3.解Ux=g,求x:
<)
③范数:
常用向量范数有:<令x=( x
,x2,…,x n>)
1
1-范数:║x║1=│x1│+│x2│+…+│x n│
2-范数:║x║2=(│x1│2+│x2│2+…+│x n│2>1/2
∞-范数:║x║=max(│x
│,│x2│,…,│x n│>
1
常用的三种向量范数导出的矩阵范数是:
1-范数:║A║1= max{║Ax║1/║x║1=1}=
2-范数:║A║2=m ax{║Ax║2/║x║2=1}=,λ1是A T A的最大