平方根法追赶法

合集下载

微分方程数值解追赶法

微分方程数值解追赶法

微分方程数值解追赶法追赶法,也称为三对角矩阵算法,是一种用于求解线性微分方程的数值方法。

这种方法主要基于矩阵分解和迭代的思想,能够有效地解决微分方程的数值求解问题。

在微分方程的数值解法中,追赶法通常用于求解形如 (y' = f(x, y)) 的常微分方程。

其基本思想是将微分方程转化为差分方程,然后通过迭代的方式逐步逼近微分方程的解。

具体来说,追赶法的步骤如下:矩阵分解:首先,将微分方程 (y' = f(x, y)) 转化为差分方程的形式。

然后,将差分方程中的系数矩阵进行分解,将其分解为一个下三角矩阵 (L)、一个对角矩阵 (D) 和一个上三角矩阵 (U)。

这样,差分方程可以转化为(D^{-1}Lx = D^{-1}b) 的形式。

迭代求解:接下来,使用迭代法求解 (D^{-1}Lx = D^{-1}b)。

通常,可以选择Gauss-Seidel迭代法或者SOR(Successive Over-Relaxation)迭代法等。

在每次迭代中,先求解下三角矩阵 (L) 的部分,然后求解对角矩阵(D) 的部分,最后求解上三角矩阵 (U) 的部分。

通过不断迭代,逐步逼近差分方程的解。

收敛性判断:在迭代求解的过程中,需要判断迭代的解是否收敛。

通常,可以通过比较相邻两次迭代的解的差值来判断是否收敛。

当差值小于某个预设的阈值时,认为迭代收敛。

解的输出:当迭代收敛后,可以得到微分方程的数值解。

此时,可以将解输出到控制台或者保存到文件中。

追赶法的优点在于其算法简单、易于实现,并且对于大规模的微分方程求解问题具有较高的计算效率和精度。

然而,追赶法也存在一些局限性,例如对于某些特殊类型的微分方程可能不适用,需要进行特殊处理。

追赶法

追赶法

追赶法/平方根法 例2.4.1 设4阶方程组AX=B 为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------121653342231124321x x x x这就是一个三对角方程组,既系数矩阵除了对角线的“三斜线”以外的元素均为0。

用追赶法求解三对角方程组的一种做法是把系数矩阵A 写成下列形式的LU 分解(这里采用Doolittle 分解,类似地也可以采用Crout 分解):()1.4.2321111153342231124321432⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------u u u u l l l 即L 为单位上三角阵,两斜行,主对角线元素为1,其下方的斜行元素特定;U 为上三角阵,也是两斜行,主对角线元素特定,其上方斜行的元素与A 对应的斜行元素相同(直接验算可知道)。

利用矩阵乘法规则,按顺序依次考虑A 的11a ->21a ->22a ->32a ->33a ->43a ->44a ,并对比(2.4.1)式两端可得2=1u → 1u =2 -1=12u l → 2l =-1/1u =-1/23=-2l +2u →2u =3+2l =5/2-2=23u l → 3l =-2/2u =-4/5 4=-23l +3u → 3u =4+23l =12/5-3=34u l →4l =-3/3u =-5/45=-34l +4u 4u =5+3⨯(-5/4)=5/4即得分解⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------4/535/1222/51214/515/412/115334223112于是用前推过程求解下三角方程组⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---121614/515/412/114321y y y y 得⎪⎪⎩⎪⎪⎨⎧=+==+-==+==2/54/515/65/4242/1163423121y y y y y y y再用回代过程求解上三角方程组⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---2/55/6464/535/1222/5124321x x x x 得⎪⎪⎩⎪⎪⎨⎧=+==+==+===52/)6(4)2/5/()24(3)5/12/()35/6(2)4/5/()2/5(2132434x x x x x x x 即的方程组的解()T x 2,3,4,5=.从实例看到,三对角方程组的追赶法是三角分解发的一种特殊应用,因此,一般地,如果对三角矩阵n n R A ⨯∈非奇异,其顺序主子式)1,...,2,1(0-=≠∆n i i ,则解三对角方程组Ax=d:()2.4.2...............12112111122211⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-----n n n n n nn n n d d d d x x x x b a c b a c b a c b 的追赶法可描述如下:令A=LU ,则⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-----n n n nn nn n n u c u c u c u l l l b a c b a c b a c b 1122113211122211......1 (1)11.........利用矩阵乘法规则,可求L 和U 的计算公式:⎩⎨⎧=-===--)),...3,2((/1111n i c l b u u a l b u i i i i i i i (2.4.3)于是,求解LY=D 得⎩⎨⎧=-==-)),...3,2(111n i y l d y d y i i i i (2.4.4)再求解UX=Y ,得三对方程组的解⎩⎨⎧=-==+)),...3,2(/)(/1n i u x c y x u y x i i i i i n n n (2.4.5)上述3个公式便组成解三角方程组的追赶法,国外称Thomas 算法。

用追赶法解方程组步骤

用追赶法解方程组步骤

用追赶法解方程组步骤方程组是数学中常见的问题之一,解方程组的方法有很多种,其中一种常用的方法是追赶法。

下面我们来详细介绍用追赶法解方程组的步骤。

步骤一:给定方程组我们需要给定一个方程组。

方程组可以由多个方程组成,每个方程中包含多个未知数和常数项。

我们的目标是求解出方程组中的未知数。

步骤二:将方程组转换为矩阵形式为了方便计算,我们将方程组转换为矩阵形式。

即将每个方程的未知数和常数项放在一个矩阵中,方程组的系数矩阵和常数矩阵分别用A和B表示。

步骤三:进行初等行变换接下来,我们需要进行初等行变换。

初等行变换包括交换两行、用非零常数乘以某一行、将某一行的倍数加到另一行上。

通过初等行变换,我们可以将方程组转化为一个三角矩阵或者行最简形。

步骤四:回代求解在经过初等行变换后,我们得到了一个三角矩阵或者行最简形。

接下来,我们可以通过回代的方式求解出未知数的值。

回代的过程就是从最后一行开始,依次代入求解出上一行的未知数,直到求解出所有的未知数。

步骤五:检验解的正确性在求解出未知数的值后,我们需要检验解的正确性。

即将求解出的未知数代入原方程组中,检查等式是否成立。

如果方程组中的每个等式都成立,则我们得到了方程组的解。

追赶法是一种有效的求解方程组的方法,它可以通过化简方程组的形式,将复杂的计算转化为简单的计算,从而节省时间和精力。

通过追赶法,我们可以快速求解出方程组中的未知数,并检验解的正确性。

在实际应用中,追赶法广泛应用于线性方程组的求解。

线性方程组是一种常见的方程组,它包含线性关系,可以用来描述很多实际问题,如电路分析、力学问题等。

追赶法的优势在于其简单易行、计算速度快的特点,使得它成为解决线性方程组的常用方法之一。

总结起来,用追赶法解方程组的步骤包括给定方程组、将方程组转换为矩阵形式、进行初等行变换、回代求解和检验解的正确性。

通过这一系列步骤,我们可以快速求解出方程组中的未知数,并验证解的正确性。

追赶法在线性方程组的求解中具有重要的应用价值,它不仅能够提高计算效率,还能够简化计算过程,使得解方程组变得更加简单和直观。

chap-2 矩阵的LU解法

chap-2 矩阵的LU解法

定理证明( ) 定理证明(2)
按 Gauss消去法步骤易得,经 k − 1次消元后,三对 角方程的系数矩阵变为 u1 c1 O O uk ck (k ) A = ak +1 bk +1 ck +1 O O O an −1 bn −1 cn −1 an bn 其中 u k = bk − ck −1ak / u k −1 ( k = 2, 3,L , n )。
此系数矩阵的非零元素集中分布在主对角线及其相邻 两次对角线上,称为三对角矩阵。方程组称为三对角 方程组。
定理:设三对角方程组系数矩阵满足下列条件: b1 > c1 > 0 bi ≥ ai + ci b > a > 0 n n 则它可分解为 1 u1 c1 l 1 u 2 c2 2 A = LU = l3 1 O O O O O cn −1 ln 1 un 其中 ci (i = 1, 2, L , n − 1)为已给出的,且分解是唯一的. ai ci ≠ 0(i = 2, 3,L , n − 1)
T T T
u1n u12 1 u L u 11 11 O O = DP un−1,n O O un−1,n−1 unn 1
由LU分解的唯一性 ⇒
PT = L ⇒ A = PT DP
定理证明( ) 定理证明(2)
( 2 ) LT x = y, 求 x . ( i = 1, 2, L , n ). ( i = n , n − 1, L ,1) .
y i = ( bi − ∑ lik y k ) / lii xi = ( y i −

5.3 矩阵的三角分解法

5.3 矩阵的三角分解法

8
解: (1)分解A LU,令 2 5 6 1 4 13 19 l 21 6 3 6 l31 0 1 l32 0 u11 0 1 u12 u22 u13 u23 u33
24
由A L( DLT ) 1 l 21 l31 ... l n1 1 l32 ... ln 2 1 ... ... lnn 1 1 d1 ... d1l21 d2 ... d1l31 d 2 l32 d3 ... ... ... ... d1 l n1 d 2 ln2 d 3 ln 3 dn


25
由 i j时aij = l ik d k l jk l ij d j , 知
k =1
j -1
L, D元素计算公式
lij =
aij lik d k l jk
k =1
j -1
dj
j -1
( j 1, 2, ,i 1)
2 d i =aii l ik d k ( i 1, 2, , n) k =1
y1 b1 i -1 y y b l i ij i j j 1
i 2, 3, , n
( i n 1, , 1)
7
或 用 Doolittle 分解法
例:用矩阵的直接三角分解法解方程组
5 6 x1 10 2 4 13 19 x 19 2 6 3 6 30 x3
27
d1 a11
改进平方根法解方程组
1. 分解计算A=LDLT ,
d1 a11 对于i 2, 3, ..., n j 1 c a cik l jk ij ij k 1 cij ( j 1, 2, ..., i 1) lij dj i 1 d i aii cik l ik k 1

线性方程组的解法及其应用

线性方程组的解法及其应用

线性方程组的解法及其应用摘要:线性方程组是线性代数的核心内容之一,其解法研究是代数学中经典且重要的研究课题.本文综述了几种不同类型的线性方程组的解法,如消元法、克拉默法则、广义逆矩阵法、直接三角形法、平方根法、追赶法,并以具体例子介绍不同解法的应用技巧. 在这些解法中,广义逆矩阵方法,具有表达式清晰,使用范围广的特点.另外,这些方法利于快速有效地解决线性方程组的求解问题,为解线性方程组提供一个简易平台,促进了理论与实际的结合.关键词:线性方程组解法广义逆矩阵应用实例1. 引言线性方程组理论是高等数学中十分重要的内容,而线性方程组的解法是利用线性方程组理论解决问题的关键.本文主要介绍线性方程组的广义逆矩阵法、追赶法、平方根法等求解方法,为求解线性方程组提供一个平台.文章也给出线性方程组在其他领域中的应用实例,揭示了各学科之间的内通性.首先,我们讨论一般线性方程组.这里所指的一般线性方程组形式为11112211211222221122,,.n n n n s s sn n s a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ ()i()i 式中(1,2,,)i x i n =代表未知量,(1,2,,;1,2,,)ij a i s j n ==称为方程组的系数,(1,2,,)j b j n =称为常数项.线性方程组)(i 称为齐次线性方程组,如果常数项全为零,即120s b b b ====.令111212122212n n s s sn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦, 12s b b B b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,则()i 可用矩阵乘法表示为AX B =,,,.m n n m A C X C B C ⨯∈∈∈2. 线性方程组的解法2.1 消元法在初等代数里,我们已经学过用代入消元法和加减消元法解简单的二元、三元线性方程组.实际上,这个方法比用行列式解方程组更具有普遍性.但对于那些高元的线性方程组来说,消元法是比较繁琐的,不易使用.例 1 解线性方程组123123123123324,32511,23,237.x x x x x x x x x x x x +-=⎧⎪+-=⎪⎨++=⎪⎪-++=-⎩ 解 分别将第一个方程的(-3)倍,(-2)倍和2倍加到第二、三、四个方程上,整理得123232323324,71,555,7 1.x x x x x x x x x +-=⎧⎪-+=-⎪⎨-+=-⎪⎪-=⎩将此方程组第二个方程加到第四个方程上,使该方程两边全为零,并将第三个方程的两边乘以15-,得1232323324,71,1.x x x x x x x +-=⎧⎪-+=-⎨⎪-=⎩再将第三个方程的7倍加到第二个方程上,消去第二个方程中的未知量2x ,整理得123233324,1,6 6.x x x x x x +-=⎧⎪-=⎨⎪-=⎩最后解得123(,,)(2,0,1)T T x x x =--.正如消元法是我们接触比较早的,被我们所熟悉的一种方法,在此只给出三元线性方程组的解法,三元以上的方程组的具体理论、性质和解题过程详见参考文献[1]. 2.2 应用克莱姆法则对于未知个数与方程个数相等的情形,我们有定理1[1] 如果含有n 个方程的n 元线性方程组11112211211222221122,,.n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ ()ii的系数矩阵111212122212n n n n nn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦的行列式111212122212det 0n n n n nna a a a a a A a a a =≠,那么线性方程组()ii 有唯一解:det (1,2,,),det j j B x j n A==其中det j B 是把矩阵中第j 列换成线性方程组的常数项12,,,n b b b 所成的矩阵的行列式,即111,111,11222,122,121,1,1det,1,2,,.j j n j j n j n n j n n j nna ab a a a a b a a B j n a a b a a -+-+-+==此外,还可以叙述为,如果含有n 个未知数、n 个方程的线性方程组Ax b =的系数矩阵的行列式det 0A ≠,则线性方程组Ax b =一定有解,且解是唯一的. 例2 解线性方程组12342341242342344,3,31,73 3.x x x x x x x x x x x x x -+-=⎧⎪-+=-⎪⎨++=⎪⎪-++=-⎩ 解 由已知可得系数行列式12341234123401110111111det 16013015352073173148A ---------====≠----,因此线性方程组有唯一解.又因124234143431110311det 128,det 48,1301110137310331B B -------==-==-341244123401310113det 96,det 0.1311130107310733B B ------====--故线性方程组的解为1234(,,,)(8,3,6,0)T T x x x x =-.克莱姆法则主要给出了解与系数的明显关系,但只能应用于系数矩阵的行列式不为零的线性方程组,并且它进行计算是不方便的. 2.5 直接三角分解法[5]设有线性方程组11112211211222221122,,,n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩或写成矩阵形式Ax b =,其中111212122212n n n n nn a a a a a a A a a a ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n x x x x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦,12n b b b b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦.若A 为非奇异矩阵,且有分解式A LU =,其中U 为上三角矩阵,L 为单位下三角矩阵,即11121212221,1111n n n n n nn u u u l u u A LU l l u -⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦, 则线性方程组Ax b =的求解等价于 解以下两个三角方程组:(1)Ly b =,求y ; (2)Ux y =,求x .直接三角形分解法求解线性方程组,基本步骤如下: 第一步: 11,(1,2,,),i i u a i n == 1111,(2,3,,)i i l a u i n ==,计算U 的第r 行,L 的第r 列元素,2,3,,r n =.第二步: 11,(,1,,)r ri ri rk ki k u a l u i r r n -==-=+∑.第三步: 11,(1,,;)r ir ir ik kr rr k l a l u u i r n r n -==(-)=+≠∑.求解Ly b =,Ux y =的计算公式如下:第四步: ()1111,,2,3,.i i i ik k k y b y b l y i n -==⎧⎪⎨=-=⎪⎩∑第五步: 1,(),(1,2,,1).n n nn n i i ik k ii k i x y u x y u x u i n n =+=⎧⎪⎨=-=--⎪⎩∑例5 求解线性方程组1231212321,42,227.x x x x x x x x ++=⎧⎪+=-⎨⎪-++=⎩解 由直接三角分解法第二、三步可得211100211410210012221131004A LU ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥==--=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦⎣⎦. 于是线性方程组变为LUx b =,求解线性方程组(1,2,7)T Ly =-,得(1,4,4)T y =--;求解线性方程组(1,4,4)T Ux =--,得(1,2,1)T x =-.2.6 平方根法[7]在许多应用中,欲求解的线性方程组的系数矩阵是对称正定的.所谓平方根法,就是利用对称正定矩阵的三角分解而得到的求解具有对称正定矩阵的线性方程组的一中有效方法,目前在计算机上广泛应用平方根法解此类方程组.定理6[12] 若A 的各阶顺序主子式非零,则A 可以分解为A LDU =,其中L 是单位下三角矩阵,U 是单位上三角矩阵,D 是对角矩阵,且这种分解是唯一的.定理7[12] 设A 为对称正定矩阵,则存在三角分解T A LL =,其中L 是非奇异下三角形矩阵,且当限定L 的对角线元素为正时,这种分解是唯一的.应用对称正定矩阵的平方根法,可以解具有对称正定系数矩阵的线性方程组Ax b =,具体算法如下:1) 对j =1,2,,n ,计算11221()j jj jj jkk l a l -==-∑,11j ij ij ik jk k l a l l -==-∑(1,,)i j n =+.2) 求解线性方程组Ax b =等价于解两个三角方程组,.TLy b L x y =⎧⎨=⎩ 计算11()i i i ik k ii k y b l y l -==-∑,(i =1,2,,n ), 1()ni i ki kii k i x b lx l =+=-∑,(i n =,1n -,,2,1),即可.例6 求解线性方程组12341161 4.25 2.750.5.1 2.75 3.5 1.25x x x -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 解 设1111213121222232313233334111 4.25 2.751 2.75 3.5l l l l l l l l l l l l -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 由矩阵乘法得1121223132332,0.5,2,0.5, 1.5, 1.l l l l l l ==-====解下三角方程组123260.520.50.5 1.51 1.25y y y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 得1233,0.5,1,y y y ===-再由123230.520.50.5 1.511Tx x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦, 得线性方程组的解为123(,,)(2,1,1)T T x x x =-.可以用消元法解此方程组,但发现此方程组的系数矩阵为正定矩阵,运用平方根法解这个方程组比较容易,而且理论分析指出,解对称正定方程组的平方根法是一个稳定的算法,其在工程计算中使用比较广泛. 2.7 追赶法[5]在许多实际问题中,都会要求解系数矩阵为对角占优的三对角方程组11112222211111iiii i n n n n n nn n n x k b c x k a b c a b c x k a b c x k a b x k -----⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 简记作 Ax k =, 其中A 满足下列对角占优条件:(1) 110b c >>;(2) i i i b a c ≥+, i a ,i c 0≠(i =2,3, ,1n -);(3) 0n n b c >>.由系数矩阵A 的特点,可以将A 分解为两个三角矩阵的乘积,即A LU =,其中L 为下三角矩阵,U 为单位上三角矩阵.求解线性方程组Ax k =等价于解两个三角方程组Ly k =与Ux y =,先后求y 与x ,从而得到以下解三角方程组的追赶法公式:第一步:计算的递推公式111c b β=,1()i i i i i c b a ββ-=-,(2i =,3,,1)n -;第二步:解Ly k =:111y k b =,11()()i i i i i i i y k a y b a β--=--,(2,3,,)i n =;第三步:解Ux y =:n n x y =,1i i i i x y x β+=-,(1,2,,2,1)i n n =--.例7 求解三对角线性方程组123421001131020111200210x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦.解 设有三角分解111122222233333344441111b c p q a b c a p q a b c a p q a b a p ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 由矩阵乘法易得111,,1,2,3.,2,3,4.i i i ii i i p b q c p i p b a q i -=⎧⎪==⎨⎪=-=⎩ 将已知系数矩阵的元素代人上式有11223342,12,52,25,35,53,73.p q p q p q p ==⎧⎪==⎪⎨==⎪⎪=⎩ 解线性方程组112233441121220p y p y p y p y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦, 得123412,35,73, 2.y y y y ====再解线性方程组111222333441111x y q x y q x y q x y ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦,得原线性方程组的为1234(,,,)(0,1,1,2)T T x x x x =-.追赶法是以LU 分解为基础的求解方法,因此它的不足之处是当某个0=k u 时,就不能进行.但是当方程组的系数矩阵A 中有很多零元素时,利用三对角方程组系数矩阵的稀疏性,使零元素不参加运算,可以类似于追赶法来简化计算过程,从而极大地节省了计算量和存储量.这也是追赶法的最大特点.3. 应用举例3.1 线性方程组在解析几何中的应用例8 已知平面上三条不同直线的方程分别为1L :230ax by c ++=,2L :230bx cy a ++=,3L :230cx ay b ++=,试证:这三条直线交于一点的充分必要条件为0a b c ++=.证 必要性 设三直线1L ,2L ,3L 交于一点,则线性方程组232323ax by cbx cy a cx ay b +=-⎧⎪+=-⎨⎪+=-⎩ ()iii有惟一解,故系数矩阵222a b A b c c a ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦与增广矩阵232323a b c A b c a c a b --⎡⎤⎢⎥=-⎢⎥⎢⎥-⎣⎦的秩均为2,于是0A -=,即22223236()()23a bcA bc a a b c a b c ab ac bc ca b--=-=++++----=0,所以0a b c ++=.充分性 由0a b c ++=,则从必要性的证明可知,0A -=,故()3r A -<.由于22222132()2[()]2[()]0224a b ac b a a b b a b b b c =-=-++=-++≠, 故()()2r A r A -==.因此线性方程组()iii 有惟一解,即三直线1L ,2L ,3L 交于一点. 3.2 线性方程组在产品生产量中的应用例9 设有一个经济系统包括3个部门,在某一个生产周期内各部门间的消耗及最终产品如表所示:求各部门的总产品.解 设i x 表示第i 部门的总产品.由已知可以得到线性方程组()I A x y -=,其中0.250.10.1()0.20.20.10.10.10.2ij A a ⎡⎤⎢⎥==⎢⎥⎢⎥⎣⎦,0.750.10.10.20.80.10.10.10.8I A --⎡⎤⎢⎥-=--⎢⎥⎢⎥--⎣⎦,(245,90,175)T y =. 利用矩阵的初等变换可以求得1126181810()34118198912017116I A -⎡⎤⎢⎥-=⎢⎥⎢⎥⎣⎦, 所以线性方程组()I A x y -=的解为消耗系数 消耗部门 生产部门123最终产品1 0.25 0.1 0.1 2452 0.2 0.2 0.1 90 30.10.10.21751126181824540010()3411819902508912017116175300x I A y -⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=-==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦. 4. 结束语本文针对不同的线性方程组给出了一些计算方法,及线性方程组的应用实例.根据线性方程组自身所具有的特点,可以选择相应合适的方法,而对于那些特殊类型的线性方程组的解法,有待进一步的讨论与研究.参考文献:[1] 北京大学数学系几何与代数教研室前代数小组编. 高等代数[M].3版.北京:高等教育出版社,2003.105-112.[2] 白梅花. 线性方程组若干应用实例举例[J].科技资讯,2011,(27):200-201.[3] 康道坤,陈劲. 广义逆下线性方程组的解结构及其推广[J].大理学院学报,2011,10(4):7-9. [4] 卢刚.线性代数[M]. 北京:高等教育出版社,2002.64-72.[5] 李庆扬,王能超,易大义. 数值分析[M].4版.武汉:华中科技大学出版社,2006.177-185. [6] 苏育才,姜翠波,张跃辉. 矩阵理论[M].北京:科学出版社,2006.200-206. [7] 首都师范大学数学系组编. 数值分析[M].北京:科学出版社,2000.28-32.[8] 徐仲,张凯院,陆全,等. 矩阵论简明教程[M].2版.北京:科学出版社,2005.141-147. [9] 谢寿才,陈渊. 大学数学[M].北京:科学出版社,2010.37-40.[10] 徐仲,张凯院,陆全. 矩阵论[M].西安:西北工业大学出版社,2002.228-245.[11] 尹钊,钟卫民,赵丽君. 线性方程组的广义逆矩阵解法[J].哈尔滨师范大学自然科学学 报,1999,15(5):21-22. [12] 张明淳. 工程矩阵理论[M].1版.南京:东南大学出版社,1995.172-173.[13] 赵树嫄. 线性代数(经济应用数学基础)[M].4版.北京:中国人民大学出版社,2008.150-157.。

(完整word版)线性方程组的平方根解法

(完整word版)线性方程组的平方根解法

浅析线性方程组的平方根解法在求解线性方程组时,直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、LU 分解法、矩阵形式的追赶法,当我们遇到对称正定线性方程组时,我们就要用到平方根法(对称LLT 分解法)来求解,为了熟悉和熟练运用平方根法求解线性方程组,下面对运用平方根法求解线性方程组进行解析。

一、运用平方根法求解线性方程组涉及到的定理及定义我们在运用平方根法求解线性方程组时,要判定线性方程组Ax=b 的系数矩阵A 是否是对称正定矩阵,那么我们就要了解正定矩阵的性质和如下定理及定义:1、由线性代数知,正定矩阵具有如下性质:1) 正定矩阵A 是非奇异的2) 正定矩阵A 的任一主子矩阵也必为正定矩阵 3) 正定矩阵A 的主对角元素均为正数 4) 正定矩阵 A 的特征值均大于零 5) 正定矩阵A 的行列式必为正数定义一 线性方程组Ax=b 的系数矩阵A 是对称正定矩阵,那么Ax=b 是对称正定线性方程组。

定义二 如果方阵A 满足A=AT ,那么A 是对称阵。

2.1.4 平方根法和改进的平方根法如果A 是n 阶对称矩阵,由定理2还可得如下分解定理:定理2 若A 为n 阶对称矩阵,且A 的各阶顺序主子式都不为零,则A 可惟一分解为:A =LDLT ,其中L 为单位下三角阵,D 为对角阵。

证明 因为A 的各阶顺序主子式都不为零,所以A 可惟一分解为:A =LU 因为 ,所以可将 U 分解为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=nn u u u U 2211⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛11122211112 u u u u u u n nn n 1DU =其中 D 为对角矩阵,U1为单位上三角阵.于是:A =LDU1=L(DU1)因为A 为对称矩阵,所以,A =AT =U1TDTLT =U1T(DLT),由 A 的 LU 分解的惟一性即得:L =U1T ,即U1=LT ,故A =LDLT 。

Ch3.2.3 追赶法

Ch3.2.3  追赶法

1 b1 ( 1 ) , c b 1 1 1
解(7.1)的追赶法计算公式 1 r (1)分解计算公式( A LU): 2 2 1 c1 b1 a ai i i )) , ( i 2, , n 1) i ri i 11 i ci (bii (2)求解Ly f 逆推公式
三次样条插值问题中得到的三转弯方程组(8.9)、 (8.10)、(8.11)及三弯矩方程组(8.19)或(8.20) 三对角线 方程组
用差分法解二阶线性常微分方程边值问题, 解法:追赶法 若用三点插值格式也得到三对角线方程组 本节介绍该类方程组中的特例及该种方程组的解法:追赶法。 优点: 1.计算量小(仅5n-4次乘除法运算)。 2.方法简单,存贮量小。 3.数值稳定(对舍入误差来说)。
LU
1 b1 c1 1 a b c r 2 2 2 2 2 a b c r aii bii cii rii i i an bn rn n n a l u 由矩阵乘法 ij ik kj , 得:
b3 a 4
c3 b4
b1 c1 x1 f 1 x3 f 3 x f 与 a b x f c x 。 2 3 2 2 2 2 4 4
§7 解三对交线方程组的追赶法
k 1
1 1 2 1 i2 11 ii 11 i 1 i 1 1 n 1 1
1 b1 , (1) b1 1 ,c1 1 1 , ( 1 c1 1 ) 1 c1 b1

用追赶法解方程组步骤

用追赶法解方程组步骤

用追赶法解方程组步骤用追赶法解方程组的步骤追赶法是一种常用于解线性方程组的方法,也被称为托马斯算法。

它适用于系数矩阵为三对角矩阵的方程组,即只有主对角线和两个相邻的副对角线上有非零元素的方程组。

下面将介绍用追赶法解方程组的具体步骤。

1. 确定方程组的形式我们需要将线性方程组转化为矩阵形式,即AX=B,其中A是系数矩阵,X是未知数向量,B是常数向量。

在追赶法中,系数矩阵A 应为三对角矩阵。

2. 分解系数矩阵接下来,我们需要对系数矩阵A进行分解。

将系数矩阵A分解为L、D、U三个矩阵的乘积,即A=LDU分解。

其中L是下三角矩阵,D 是对角矩阵,U是上三角矩阵。

分解的目的是简化方程组的求解过程。

3. 前向追赶在前向追赶过程中,我们需要解决方程组LY=B,其中Y是辅助向量。

首先,我们可以从第一个方程开始,直接求解出Y的第一个分量。

然后,利用递推关系式,依次求解出Y的其他分量。

这个过程类似于追逐,从前往后一步步追赶。

4. 消元接下来,我们需要进行消元操作,将方程组转化为DUX=Y。

这个过程中,我们需要利用到前面分解得到的L、D和U矩阵。

通过将L矩阵与方程组相乘,可以消去X的前面分量。

然后,通过将D矩阵与方程组相乘,可以将X的分量消为1。

最后,通过将U矩阵与方程组相乘,可以将X的后面分量消去。

5. 后向追赶在后向追赶过程中,我们需要解决方程组UX=Y,即通过追逐的方式从后往前求解X的分量。

首先,我们可以从最后一个方程开始,直接求解出X的最后一个分量。

然后,利用递推关系式,依次求解出X的其他分量。

6. 检验解的正确性在求解完成后,我们需要检验解的正确性。

将求得的X代入原方程组中,验证方程组是否成立。

如果方程组成立,那么我们得到的解就是正确的。

总结:追赶法是一种有效解线性方程组的方法,它通过将系数矩阵分解为L、D、U三个矩阵,并利用前向追赶和后向追赶的方式求解未知数。

追赶法的优点是求解过程简单快速,适用于特定类型的方程组。

第4节 追赶法

第4节  追赶法

此时,在完成并存贮矩阵L和U后,右端项第改变一次仅 需增加 n2 次运算。
2. 可以用以求可逆矩阵 A 的逆矩阵 A-1
令 A-1 = ( X1 X2 … Xn ), E=(e1 e2 … en )
则由 AA-1=E 得到 A( X1 X2 … Xn )= (e1 e2 … en ) 推得 如果 A Xk= e k ,k=1,2,… ,n A=LU, 则有 UYk= e k L Xk = Y k k=1,2,… ,n
b1 a 2
b1 a 2
1 1 1 b2 c2 2 2 1 2 a 3 b3 3 3 c n 1 n 1 a n bn n n 1 第3列 0 0 bi ai i 0,,0, i , i ,0,,0 i 1 i -1行 1 i-1列 , i 1,2,, n i i 1 i 0 0 c1
b1 a 2
2 n 1 1 第3列
i 2,3,, n
于是,由以上结果: ci i i , i 1,2,, n
bi i i 1 i , i 1,2,, n ai i , i 2,3,, n
2 1 0 0 1 2 1 0 0 1 2 1 0 0 1 2

1 2 1 0 0
0 2 3 1 0
0 0 3 4 1
求解方程组Ly=y,即
2 1 0 0 0 3 2 1 0 0 0 4 3 1 0 1 0 y1 y 2 0 0 y 3 0 5 y4 1 4

数值分析列主元高斯消去顺序高斯平方根法追赶法(DOC)

数值分析列主元高斯消去顺序高斯平方根法追赶法(DOC)

课题名称:课题一解线性方程组的直接方法解决的问题:给定三个不同类型的线性方程组,用适当的直接法求解。

采用的数值方法:对第一个普通的线性方程组,采用了高斯顺序消去法和高斯列主元消去法。

对第二个正定线性方程组,采用了平方根法。

对第三个三对角线性方程组,采用了追赶法。

算法程序:(1)普通的线性方程组①顺序消去法#include<stdio.h>#include<math.h>int main(void){float A[10][10]= {{4,2,-3,-1,2,1,0,0,0,0},{8,6,-5,-3,6,5,0,1,0,0},{4,2,-2,-1,3,2,-1,0,3,1},{0,-2,1,5,-1,3,-1,1,9,4},{-4,2,6,-1,6,7,-3,3,2,3},{8,6,-8,5,7,17,2,6,-3,5},{0,2,-1,3,-4,2,5,3,0,1},{16,10,-11,-9,17,34,2,-1,2,2},{4,6,2,-7,13,9,2,0,12,4},{0,0,-1,8,-3,-24,-8,6,3,-1}};float b[10]= {5,12,3,2,3,46,13,38,19,-21}; float x[10]= {0};float Aik,S,temp;int i,j,k;int size=10;for(k=0; k<size-1; k++){if(!A[k][k])return -1;for(i=k+1; i<size; i++){Aik=A[i][k]/A[k][k];for(j=k; j<size; j++){A[i][j]=A[i][j]-Aik*A[k][j]; }b[i]=b[i]-Aik*b[k];}}printf("A[]\n");for(i=0; i<size; i++){for(j=0; j<size; j++)printf("%f ",A[i][j]);printf("\n");}printf("b[]\n");for(i=0; i<size; i++)printf("%f ",b[i]);printf("\n\n");x[size-1]=b[size-1]/A[size-1][size-1]; for(k=size-2; k>=0; k--){S=b[k];for(j=k+1; j<size; j++){S=S-A[k][j]*x[j];}x[k]=S/A[k][k];}printf("x[]=\n");for(i=0; i<size; i++)printf("%f ",x[i]);return 0;}②列主元消去法#include<stdio.h>#include<math.h>int main(void){float A[10][10]= {{4,2,-3,-1,2,1,0,0,0,0}, {8,6,-5,-3,6,5,0,1,0,0},{4,2,-2,-1,3,2,-1,0,3,1},{0,-2,1,5,-1,3,-1,1,9,4},{-4,2,6,-1,6,7,-3,3,2,3},{8,6,-8,5,7,17,2,6,-3,5},{0,2,-1,3,-4,2,5,3,0,1},{16,10,-11,-9,17,34,2,-1,2,2},{4,6,2,-7,13,9,2,0,12,4},{0,0,-1,8,-3,-24,-8,6,3,-1}};float b[10]= {5,12,3,2,3,46,13,38,19,-21}; float x[10]= {0};float Aik,S,temp;int i,j,k;float max;int col;int size=10;for(k=0; k<size-1; k++){max=fabs(A[k][k]);col=k;for(i=k; i<size; i++){if(max<fabs(A[i][k])) {max=fabs(A[i][k]); col=i;}}for(j=k; j<size; j++){temp=A[col][j];A[col][j]=A[k][j];A[k][j]=temp;}temp=b[col];b[col]=b[k];b[k]=temp;if(!A[k][k])return -1;for(i=k+1; i<size; i++){Aik=A[i][k]/A[k][k]; for(j=k; j<size; j++){A[i][j]=A[i][j]-Aik*A[k][j]; }b[i]=b[i]-Aik*b[k];}}printf("A[]\n");for(i=0; i<size; i++){for(j=0; j<size; j++)printf("%f ",A[i][j]);printf("\n");}printf("b[]\n");for(i=0; i<size; i++)printf("%f ",b[i]);printf("\n\n");x[size-1]=b[size-1]/A[size-1][size-1]; for(k=size-2; k>=0; k--){S=b[k];for(j=k+1; j<size; j++){S=S-A[k][j]*x[j]; }x[k]=S/A[k][k];}printf("x[]=\n");for(i=0; i<size; i++)printf("%f ",x[i]);return 0;}(2)对称正定线性方程组平方根法:#include <stdio.h>#include <math.h>#define n 8int main(void){float A[8][8]={{4,2,-4,0,2,4,0,0},{2,2,-1,-2,1,3,2,0},{-4,-1,14,1,-8,-3,5,6},{0,-2,1,6,-1,-4,-3,3},{2,1,-8,-1,22,4,-10,-3},{4,3,-3,-4,4,11,1,-4},{0,2,5,-3,-10,1,14,2},{0,0,6,3,-3,-4,2,19}};float g[8][8]= {0};float b[8]= {0,-6,6,23,11,-22,-15,45}; float x[8]= {0};float y[8]= {0};int k,m,i,sq;for(k=0; k<n; k++){float p=0,q=0,s=0;for(m=0; m<=k-1; m++){p=p+A[k][m]*A[k][m];}g[k][k]=sqrt(A[k][k]-p);A[k][k]=g[k][k];for(i=k+1; i<n; i++){q=0;for(m=0; m<=k-1; m++){q=q+A[i][m]*A[k][m];}g[i][k]=(A[i][k]-q)/A[k][k]; A[i][k]=g[i][k];}s=0;for(m=0; m<=k-1; m++){s=s+A[k][m]*y[m];}y[k]=(b[k]-s)/A[k][k];}x[n-1]=y[n-1]/A[n-1][n-1];for(k=n-2; k>=0; k--){float sum=0;for(m=k+1; m<n; m++){sum=sum+A[m][k]*x[m];}x[k]=(y[k]-sum)/A[k][k];}for(sq=0; sq<n; sq++){printf("%f ",x[sq]);}return 0;}(3)三对角线性方程组追赶法#include <stdio.h>#include <math.h>#define n 10int main(void){float a[10]={4,4,4,4,4,4,4,4,4,4};float c[9]={-1,-1,-1,-1,-1,-1,-1,-1,-1};float d[9]={-1,-1,-1,-1,-1,-1,-1,-1,-1}; float b[10]={7,5,-13,2,6,-12,14,-4,5,-5}; float x[10]={0};float y[10]={0};float arf[10]={0};float bt[9]={0};arf[0]=a[0];int i;for(i=0;i<n-1;i++){bt[i]=c[i]/arf[i];arf[i+1]=a[i+1]-d[i+1]*bt[i];//printf("%f %f \n",bt[i],arf[i+1]); }y[0]=b[0]/arf[0];//printf("%f\n",y[0]);for(i=1;i<n;i++){y[i]=(b[i]-d[i]*y[i-1])/arf[i];}//printf("%f\n",y[1]);x[n-1]=y[n-1];for(i=n-2;i>=0;i--){x[i]=y[i]-bt[i]*x[i+1]; }for(i=0;i<n;i++)printf("%lf ",x[i]);return 0;}数值结果:(1) 普通的线性方程组①顺序消去法②列主元消去法(2) 对称正定线性方程组平方根法:(3)三对角线性方程组追赶法:对实验计算结果的讨论和分析:(1) 普通的线性方程组①顺序消去法x1~x10的绝对误差:0.000001,-0.000001,0.000001,0,0.000001,0,0.000002,0,0,0x1~x10的相对误差:0.000001,0.000001,-1,0,0.0000005,0,0.00000067,0,0,0误差很小,基本可以忽略。

线性方程组的平方根解法

线性方程组的平方根解法

浅析线性方程组的平方根解法在求解线性方程组时,直接解法有顺序高斯消元法、列主元高斯消元法、全主元高斯消元法、高斯约当消元法、消元形式的追赶法、LU 分解法、矩阵形式的追赶法,当我们遇到对称正定线性方程组时,我们就要用到平方根法(对称LLT 分解法)来求解,为了熟悉和熟练运用平方根法求解线性方程组,下面对运用平方根法求解线性方程组进行解析。

一、运用平方根法求解线性方程组涉及到的定理及定义我们在运用平方根法求解线性方程组时,要判定线性方程组Ax=b 的系数矩阵A 是否是对称正定矩阵,那么我们就要了解正定矩阵的性质和如下定理及定义:1、由线性代数知,正定矩阵具有如下性质:1) 正定矩阵A 是非奇异的2) 正定矩阵A 的任一主子矩阵也必为正定矩阵 3) 正定矩阵A 的主对角元素均为正数 4) 正定矩阵 A 的特征值均大于零 5) 正定矩阵A 的行列式必为正数定义一 线性方程组Ax=b 的系数矩阵A 是对称正定矩阵,那么Ax=b 是对称正定线性方程组。

定义二 如果方阵A 满足A=AT ,那么A 是对称阵。

2.1.4 平方根法和改进的平方根法如果A 是n 阶对称矩阵,由定理2还可得如下分解定理:定理2 若A 为n 阶对称矩阵,且A 的各阶顺序主子式都不为零,则A 可惟一分解为:A =LDLT ,其中L 为单位下三角阵,D 为对角阵。

证明 因为A 的各阶顺序主子式都不为零,所以A 可惟一分解为:A =LU 因为 ,所以可将 U 分解为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=nn u u u U O 2211⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛11122211112M O ΛΛu u u u u u n nn n 1DU =其中 D 为对角矩阵,U1为单位上三角阵.于是:A =LDU1=L(DU1)因为A 为对称矩阵,所以,A =AT =U1TDTLT =U1T(DLT),由 A 的 LU 分解的惟一性即得:L =U1T ,即U1=LT ,故A =LDLT 。

线性方程组的求解问题1

线性方程组的求解问题1

目录1 引言 (2)1.1 概念 (3)1.2 解的情况及其通解 (4)2 线性方程组的常见解法 (4)2.1 高斯消元法 (4)2.2 矩阵初等变换法 (6)2.2.1 LU分解 (6)2.2.2 追赶法 (9)2.3平方根法 (10)3 线性方程组解法探讨 (12)3.1 线性方程组的直接方法 (12)3.2 线性方程组的多项式矩阵的初等变换法 (16)4结束语................................................................19参考文献 (20)线性方程组的解法摘要: 线性方程组是线性代数中一个最基础的内容,广泛应用于现代科学的许多分支。

其核心问题之一就是线性方程组的求解问题。

本文先简要介绍了线性方程组的概念,然后给出线性方程组解的结构,重点介绍了解线性方程组的几种方法:高斯消元法,追赶法,平方根法,直接法,初等变换法等求解线性方程组的方法。

说明研究线性方程组求解问题的探讨及本文的写作意义。

关键词: 线性方程组;高斯消元法;平方根法;追赶法;直接法;初等变换法1 引言线性方程组即各个方程关于未知量均为一次的方程组。

对线性方程组的研究,中国比欧洲至少早1500年,记载在公元初《九章算术》方程章中。

线性方程组是线性代数的主要内容,它主要包括线性方程组有解性的判定、线性方程组的求解和线性方程组解的结构等。

线性方程组的核心问题是研究它何时有解,以及解是什么。

本节主要对线性方程组解的情况进行讨论,给出当解不唯一时通解的表示形式。

另外还介绍了几种特殊的线性方程组的求解方法。

线性方程组可以分成两类,一类是未知量个数与方程的个数相等,另一类是未知量个数与方程的个数不等。

对于前一类特殊的线性方程组,我们可以采用克拉默法则,对于后一种线性方程组我们可以采用高斯消元法。

而且随着现代工业的发展,线性方程组的应用出现在各个领域,伴随着大量方程和多未知数的出现,而追赶法是数值计算中解线性方程组的一种直接法,它能在无舍入误差存在的情况下,经过有限步运算即可求得方程组的精确解的算法。

Ch 3.2.2 平方根法和追赶法

Ch 3.2.2   平方根法和追赶法
j 1
aij li1l j1 li 2l j 2 lij l jj ( i j ) l ij (aij l ik l jk ) l jj
k 1
aii li1li1 li 2li 2 lii lii
n
2 ) ( i j ) l ii (aii l ik k 1
L x y, 求x .
21
nn
设n阶对称正定矩阵A有分解 A LLT,先用待定系数法求L的元 素 l ij 。 a11 a12 a1n l l l l
11 a 21 a 22 a 2 n l 21 令A a a a l nn n1 n 2 n1
k 1
i 1
优点: n3 1、计算量小,大约为 6 次乘除法 ,同平方根方法,是一般 矩阵A的LU分解(消元法)计算量的一半,是目前解对称正定方 程组的有效方法。
d1 1 l 21 l n1 a11 a12 a1n 1 d2 1 l n2 a 21 a 22 a 2 n l 21 1 A LDLT a a a l l 1 d 1 n n1 n 2 nn n1 n 2 2.求解计算 Ly b , 求y T 求解Ax b 求解LDL x b T 1 求x L x D y, y1 b1 xn yn d n i 1 1) n 2 ) y y b l y , ( i 2 , , n ) , i i ik k i x l ki x k ( i n 1, ,2,1) . i k 1 d i k i 1

线性代数方程组求解直接方法

线性代数方程组求解直接方法
通过对方程组进行初等行变换,将方 程组化为上三角矩阵形式,然后回代 求解得到方程组的解。该方法具有简 单易懂的优点,但在处理大型方程组 时可能存在数值稳定性问题。
LU分解法
将系数矩阵分解为一个下三角矩阵L和 一个上三角矩阵U的乘积,然后通过求 解LY=b和UX=Y两个三角形方程组得到 原方程组的解。LU分解法具有较高的数 值稳定性,适用于中小型方程组。
根据系数矩阵的第一行和最后一行元素, 计算出初始参数。
2. 追赶过程
3. 回代过程
从第二行开始,逐行进行消元,将系数矩 阵转化为上双对角矩阵。
从最后一行开始,逐行回代求解,得到方程 组的解。
平方根法的基本原理与计算步骤
基本原理
1. Cholesky分解
2. 前代过程
3. 回代过程
平方根法是一种适用于对称正 定矩阵线性方程组的求解方法 ,通过Cholesky分解将系数矩 阵分解为下三角矩阵和其转置 的乘积,进而简化计算。
收敛速度
在适当的条件下,雅可比迭代法的收敛速度可能比一般的 迭代法更快。
计算复杂度
雅可比迭代法需要计算雅可比矩阵及其逆矩阵,因此计算 量相对较大;而一般的迭代法只需要进行矩阵与向量的乘 法运算,计算量相对较小。
稳定性
雅可比迭代法的稳定性较好,对初始近似解的要求较低; 而一般的迭代法可能对初始近似解的要求较高,否则可能 导致迭代序列发散。
对系数矩阵进行Cholesky分解 ,得到下三角矩阵L。
通过下三角矩阵L,求解出中间 向量y。
利用中间向量y和下三角矩阵L 的转置,求解出方程组的解。
追赶法与平方根法的比较
适用范围
追赶法适用于三对角矩阵线性方程组, 而平方根法适用于对称正定矩阵线性方

平方根法解线性方程组

平方根法解线性方程组

k 2
k 1
3
(n 1) (n 2)

2
1

1 2
n(n
1); (for
right
item)
除:(n 1) (n 2)
• 回代过程:

2 1
1 2
n(n
1)
1 2

(n
1)(multiply)

n(divide)

1 2
n(n
1).
• 运算量:1 n(n2 1) 1 n(n 1) 1 n(n 1) n3 3 n2 5 n


x
n

xi

b (n1) n
/
a (n1) nn


bi(i
1)

n
a x (i1)
ij
j

/
a (i1) ii
,
i

n 1,

j i 1

, 2,1
(3.10)
★ 高斯消元法算法:
1. 输入数据:n, A, b
2. 消元过程:
FOR k 1 TO n 1
求解线性方程组可采用: 直接法——经有限步算术运算可求得方程组的精确解的 方法(若计算过程无舍入误差)。 已知的直接解法是克莱姆法则(Gramer)。 迭代法——构造某种迭代格式,用其极限过程去逐步逼 近线性方程组精确解的方法。
设线性方程组为
a11x1 a12 x2
a
21
x1



xi
bi


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

§5 平方根法 一、教学设计1.教学内容:对称正定矩阵的Cholesky 分解法、三对角线矩阵分解的追赶法。

2.重点难点:Cholesky 分解法、追赶法。

3.教学目标:掌握对称正定矩阵的Cholesky 分解的计算过程,掌握三对角线矩阵分解的追赶法。

4.教学方法:讲授与讨论。

二、教学过程 §5 平方根法在工程计算中,常遇到求解解对称再正定线性方程组问题,如应用有限元法解结构力学问题,应用差分方法解椭圆型偏微分方程等,最后都归结为求解系数矩阵为对称正定阵的线性方程组。

根据系数矩阵的特殊性,是否有更好的解决方案(在存贮空间上的好处是显而易见的),算法上是否有所简化?5-0对称正定矩阵及性质复习定义:设n n R A ⨯∈,如果A 满足条件 (1)A A T =;(2)对任意非零向量n R ∈x ,有0>x x A T ,则称A 为对称正定矩阵。

定理1 (对称正定矩阵的性质)如果n n R A ⨯∈为对称正定矩阵,则(1)A 为非奇异阵,且1-A 亦是对称正定阵;(2)记k A 为A 的顺序主子阵,则k A 亦是对称正定阵),,2,1(n k =;(3)A 的特征值),,2,1(0)(n i A i =>λ;(4)A 的顺序主子式都大于零,即),,2,1(0)det(n k A k =>。

定理2 设n n R A ⨯∈为对称矩阵(判据)(1)若A 的特征值),,2,1(0)(n i A i =>λ,则A 为对称正定矩阵; (2)若A 的顺序主子式都大于零,即),,2,1(0)det(n k A k =>,则A 为对称正定阵。

5-1 对称正定矩阵的三角分解由前述定理 3.1知,若n 阶方阵A 的顺序主子式)1,,2,1()d e t (-=n k A k 均不为零,则A 有唯一的三角分解LU A =,其中L 为单位下三角阵,U 为上三角阵。

n 阶对称正定阵A 的顺序主子式都大于零,当然有LU 分解,进一步地,此时U L ,之间有什么关系?这对解方程组有用处。

由LU A L U A T T T ===及分解的唯一性,想到若U 的主对角元素皆为1,就有可能获得一些结果。

为此,再将U 分解DRu u u u uu u u u u u u u u u U n n nn nn n n ≡⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=111222*********1122211211易知),,2,1(0n i u ii => (用k k k U L A ,,分别记矩阵U L A ,,的k 阶顺序主子阵,容易验证k k k U L A =于是ii ki i iik i k k k k k k u a U U L U L A ∏∏=======1)(1det det det )det(det )于是LDR LU A ==,所以A DR L LU DL R LDR A T T T T =====)()()(,即 )()(DR L DL R A T T ==由分解的唯一性知:T R L =,R L T =,于是T LDL A = 自然地,若记T nn D u u u D )(21221121=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=则T TTL L LD LD L D LD A 1121212121))((≡==,其中1L 是对角元为正数的下三角阵。

定理5.1 (Cholesky 分解)设A 是n 阶对称正定矩阵,则存在唯一的对角线元素全是正数的下三角形矩阵L ,使得T LL A =。

称这种分解为Cholesky 分解。

有了这种分解后,解线性方程组b x =A 等价于解以下两个三角方程组b y =L ,y x =T L ,这将带来一些简便。

下面讨论如何计算L 的元素。

5-2 平方根法设n 阶对称正定矩阵A 有如下Cholesky 分解Tnn ni ii nj ij jj n i j n i j nn ninjn n iiiji i jjj j nn ninj n n in iiiji i jn jijjj j n ij n ijLL l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l a a a a a a a a a a a a a a a a a a a a a a a a a =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡22222111211121212122211121212122222211111211 比较等式两边的第1列对应元素,得到11111111211121111111,,,,,n n i i a l l a l l a l l a l l ====于是得到L 的第1列元素),,3,2(,/,)(11112/11111n i l a l a l i i ===比较等式两边的第2列(对角元及其以下)对应元素,得到 222221122222112222222121,,,,n n n i i i a l l l l a l l l l a l l l l =+=+=+ 于是 得到L 的第2列元素),,4,3(,,)(22211222/12212222n i l l l a l l a l i i i =-=-=一般地,比较等式两边的第j 列(对角元以下)对应元素,得到ij jj ij j j j i j i j i jj jj jj j j j j a l l l l l l l l a l l l l l l =++++=+++--1,1,22112211, 于是得到L 的第),,2,1(n j j =列元素,)(112/12∑-=-=j k jkjj jj l a l 5.8),,2,1(,11n j j i l l l a l jjj k jkik ij ij ++=-=∑-= 5.9电算时,可只存A 的下三角部分于二维数组A 中,且注意到当计算出L 的某一列元素后,A 的相应列元素在后续计算过程中不再起作用,故可将求得的L 的元素保存在A 的相应位置上。

假设已得到L 的前1-j 列元素,从下图中注意观察L 的第j 列元素ij l 的计算过程。

⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡-nn ninjj n n iia a a l l a l l l1,111完成矩阵A 的Cholesky 分解后,解b x =A ,化为解以下两个三角形方程组(1)b y =L , ⎪⎪⎩⎪⎪⎨⎧=-==∑-=),,3,2(/111111n i l y l b y l b y ii i j j ij i i (5.10)(2)y x =T L , ⎪⎪⎩⎪⎪⎨⎧--=-==∑+=)1,2,,2,1(/1 n n i l x l y x l y x ii n i j j ji i innn n(5.11)称由公式(5.8)~(5.11)解对称正定线性方程组的方法为平方根法。

例:用平方根法解对称正定方程组⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--0102/74/1114/114/171114321x x x A= 4 -1 1-1 17/4 11/4 1 11/4 7/2 计算L 的第1列2 0 0 -1/2 17/4 0 1/2 11/4 7/2 计算L 的第2列2 0 0 -1/2 2 0 1/2 3/2 7/2 计算L 的第3列2 0 0 -1/2 2 0 1/2 3/2 1 Ly=b2 0 0 0 -1/2 2 0 1 1/2 3/2 1 0y=0 1/2 -3/4 L'x=y2 -1/2 1/2 0 0 2 3/2 1/2 0 0 1 -3/4 x=25/64 13/16-3/45-3 平方根法的数值稳定性由(5.8)式知:),2,1(,12n j a l jj jk jk ==∑= 于是,),,2,1;,,2,1(},{max 12j k n j a a l jj nj jj jk ==≤≤≤≤ 上式说明在不选主元的平方根法中,分解过程中L 的元素有界,或者说在分解过程中产生的L 的元素jk l 的数量级不会增长,且),,2,1(,0n j l jj =>,再由(5.9)式知jj l 的值不会太小,否则ij l 的值将会很大,而这与上面的分析“L 的元素有界”相矛盾。

可见,平方根法是数值稳定的。

为避免求平方根,还可将算法改进。

(采用分解式)T LDL A =§6 追赶法在一些实际问题中,例如用差分法解二阶线性常微分方程边值问题,解热传导方程以及船体数学放样中建立三次样条函数等,都会要求解系数矩阵为对角占优的三对角线方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--+---+----n n n i i i n n n i i i n nn n n i iif f f f f f f f f x x x x x x x x x b a c b a c b a c b a c b 1211321121132111122211简记为f x =A 。

其中A 满足下列条件:(称为对角占优的三对角线矩阵) (1)011>>c b(2))1,,3,2,0(,-=≠+≥n i c a c a b i i i i i (3)0>>n n a b对于这个方程组,或许可以用前面介绍的Gauss 消去法、Doolittle 分解法等方法求解,但考虑到其系数矩阵的特殊性,我们设法建立更有效的快速算法――追赶法,它具有计算少,方法简单,算法稳定等特点。

若能将A 进行Doolittle 分解A =LU ,那么此时L ,U 有什么特点呢?先提一下严格对角占优阵的性质。

(我们讨论的仅是对角占优阵,用不到这些结论,仅作为阅读资料)定理 设A 为n 阶方阵,且严格(行)对角占优阵,则A 为非奇异阵,且其各阶顺序主子式均不为0。

证明:(反证法)假设A 为奇异阵,则存在非零向量),,,(21n c c c =c 使得0=c A ,即),,2,1(,01n i c a nj j ij ==∑=设0max 1>=≤≤j nj r c c则有rnrj j rj n rj j j rj rrr c a c a c a )(||11∑∑≠=≠=≤=,两边约去r c 后,与题设(行)严格对角占优矛盾!我们这里讨论的对角占优的三对线矩阵不是严格对角占优阵,但由于其特殊的三对角,我们还是可以直接用归纳法很容易地证明下面定理定理 设n 阶三对角阵A 满足条件(1)(2)(3),则其各阶顺序主子式均不等于0。

相关文档
最新文档