求解线性方程组的直接解法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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的最大

相关文档
最新文档