线性方程组的直接法

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

第二章线性方程组的直接法

在近代数学数值计算和工程应用中,求解线性方程组是重要的课题。例如,样条插值中形成的关系式,曲线拟合形成的法方程等,都落实到解一个元线性方程组,尤其是大型方程组的求解,即求线性方程组(2.1)的未知量的数值。

(2.1)其中ai j,bi为常数。上式可写成矩阵形式Ax = b,即

(2.2)

其中,为系数矩阵,为解向量,为常数向量。当detA=D0时,由线性代数中的克莱姆法则,方程组的解存在且惟一,且有

为系数矩阵的第列元素以代替的矩阵的行列式的值。克莱姆法则在建立线性方程组解的理论基础中功不可没,但是在实际计算中,我们难以承受它的计算量。例如,解一个100阶的线性方程组,乘除法次数约为(101·100!·99),即使以每秒的运算速度,也需要近年的时间。在石油勘探、天气预报等问题中常常出现成百上千阶的方程组,

也就产生了各种形式方程组数值解法的需求。研究大型方程组的解是目前计算数学中的一个重要方向和课题。

解方程组的方法可归纳为直接解法和迭代解法。从理论上来说,直接法经过有限次四则运算,假定每一步运算过程中没有舍入误差,那么,最后得到方程组的解就是精确解。但是,这只是理想化的假定,在计算过程中,完全杜绝舍入误差是不可能的,只能控制和约束由有限位算术运算带来的舍入误差的增长和危害,这样直接法得到的解也不一定是绝对精确的。

迭代法是将方程组的解看作某种极限过程的向量极限的值,像第2章中非线性方程求解一样,计算极限过程是用迭代过程完成的,只不过将迭代式中单变量换成向量

而已。在用迭代算法时,我们不可能将极限过程算到底,只能将迭代进行有限多次,得到满足一定精度要求的方程组的近似解。

在数值计算历史上,直接解法和迭代解法交替生辉。一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。一般说来,对同等规模的线性方程组,直接法对计算机的要求

高于迭代法。对于中等规模的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。对于高阶方程组和稀疏方程组(非零元素较少),一般用迭代法求解。

§1 消元法

一、三角形方程组的解

形如下面三种形式的线性方程组较容易求解。

对角形方程组

(2.3)

设,对每一个方程,。

显然,求解n阶对角方程的运算量为。

下三角方程组

(2.4)

按照方程组的顺序,从第一个方程至第个方程,逐个解出。由方程,得。将的值代入到第二个方程

将的值代入到第个方程

计算需要次乘法或除法运算,。因此,求解过程中的运算量为

上三角方程组

(2.5)

与计算下三角方程组的次序相反,从第个方程至第一个方程,逐个解出

由第个方程。将的值代入到第个方程

将的值代入到第个方程

得解的通式

计算需要次乘法或除法运算。因此求解过程中的运算量为

消元法的基本思想就是通过对方程组做初等变换,把一般形式的方程组化为等价的具有上述形式的易解方程组。

二、高斯消元法与列主元消元法

高斯消元法

高斯消元法是我们熟悉的古老、简单而有效的解方程组的方法。下面是中学阶段解二元方程组(高斯消元法)的步骤:

(2.6)

(2.7)

方程(2.6)乘以-3加到第(2.7)个方程中得

代入(2.6)得。

其方法相当于对方程组的增广矩阵做行的初等变换:

已是上三角矩阵,而

为原方程组的等价方程组,已化成易解的方程组形式。再用回代方法求解,得到:

这就是高斯消元法解方程组的消元和回代过程。

一般地,可对线性方程组(2.1)施行以下一系列变换;

(1)对换某两个方程的次序;

(2)对其中某个方程的两边同乘一个不为零的数;

(3)把某一个方程两边同乘一个常数后加到另一个方程的两边。

记变换后的方程组为:

(2.8)

显然方程组(2.1)与(2.8)是等价方程组,或者说它们有相同的解。分别记方程组(2.1)与(2.8)的增广矩阵为:

可以看出,实际上是由按一系列初等换后得到的

(1)对换某两行元素;

(2)中的某行乘一个不为零的数;

(3)把的某一行乘一个常数后加到另一行。

高斯消元法就是通过以上(3)的变换,把化为等价的上三角形式。下面我们以为例演示消元过程。

设方程组:

(2.9)

其增广矩阵为:

(1)若,则将第一行乘以加到第二行上;将第一乘以

加到第三行上;将第一行乘以加到第四行上得到

(2.10)

其中:

(2)若则将第二行乘以加到第三行上;将第二行乘以加到第四行上,得到

(2.11)

其中:

(3)若则将第三行乘以加到第四行上,得到

(2.12)

其中:

已是上三角矩阵,于是得到了与原方程等价的易解形式的方程组:

(2.13)

再对方程组(2.13)依次回代解出。

从式(2.12)可以得到系数矩阵的行列式的值为的对角元素的乘积。即

这也正是在计算机上计算方阵的行列式的常规方法。

要将上述解方程步骤推广到阶方程组,只需将对控制量“4”的操作改成对控制量的操作即可。

元方程组高斯消元法的步骤如下:

对于约定有

(2.14)经过以上消元,我们已得到与等价的方程组,其中已是一个上三角矩阵。为简单起见,仍记的元素为

(2.15)

即已得到原方程组的解。

高斯消元法算法

在算法中略去了变量,矩阵和向量的定义部分。在消元过程中,将仍放在元素的位置上。

1.输入:方程组阶数n,方程组系数矩阵A和常数向量b。

2.FOR k:=1 TO n-1 //消元过程

{ FOR i:=k+1 TO n

{ // 假定

FOR j:=k+1 TO n

{ } // ENDFORJ

} // ENDFORI

} // ENDFORK

3.FOR i:=n TO1 //回代求解

{ s:=bi

FOR j:=i+1 TO n DO

}

4.输出方程组的解。

高斯消元法的运算量

整个消元过程即式(2.14)的乘法和除法的运算量为

回代过程即式(2.15)的乘除运算量为

故高斯消元法的运算量为

(2.16)

高斯消元法的可行性

在上面的消元法中,未知量是按照在方程组中的自然顺序消去的,也叫顺序消元法。

在消元过程中假定对然元素,消元步骤才能顺利进行,由于顺序消元不改变的主子式值,故高斯消元法可行的充分必要条件为的各阶主子式不为零。但是,实际上只要方程组就有解。故高斯消元法本身具有局限性。

另一方面,即使高斯消元法可行,如果很小,在运算中用它作为除法的分母

,会导致其它元素数量级的严重增长和舍入误差的扩散。这是高斯消元法的另一缺陷。

例2.1 方程组(2.17)(2.18)

的精确解为:。在高斯消元法计算中取5位有效数字。

解:方程(2.17)×(-1)/0.0003+方程(2.18)得:

,代入方程(2.17)得。由此得到的解完全失真,如果交换两个方程的顺序,得到等价方程组

经高斯消元后有

由此可看到,在有些情况下,调换方程组的次序对方程组的解是有影响的,对消元法中抑制舍入误差的增长是有效的。

如果不调换方程组的次序,取6位有效数字计算方程组的解,得到

取9位有效数字计算方程组的解,得到

由此可见有效数字在数值计算中的作用。

列主元消元法

如果在一列中选取按模最大的元素,将其调到主干方程位置再做消元,则称为列主元消元法。调换方程组的次序是为了使运算中做分母量的绝对值尽量地大,减少舍入误差的影响。

用列主元方法可以克服高斯消元法的额外限制,只要方程组有解,列主元消元法就能畅通无阻地顺利求解,同时又提高了解的精确度。

更具体地,第一步在第一列元素中选出绝对值最大的元素,交换第一行和第行的所有元素,再做化简为零的操作。

对于每个在做消元前,选出中绝对值最大的元素,对行和行交换后,再做消元操作,这就是列主元消元法的操作步骤。

由于,可证中至少有一个元素不为零,从理论上保证了列主元消元法的可行性。列主元消元法与高斯消元法相比,只增加了选列主元和交换两个方程组(即两行元素)的过程。

列主元消元法算法

1.输入:方程组阶数,方程组系数矩阵和常数向量项。

2.//选主元的消元过程

{//选择

// 交换第行和第行

} // ENDFORI

} // ENDFORK

3.FOR i:=n TO 1 // 回代求解

4.输出方程组的解。

如果对于第步,从行至行和从列至列中选取按模最大的

,对第行和第行交换,对第列和

第v列交换,这就是全主元消元法。在k列和第v列交换时,还要记录下v的序号,以便恢复未知量xk和xv的位置。

3.1.3 高斯-若尔当(Gauss-Jordan)消元法

高斯消元法将系数矩阵化为上三角矩阵,再进行回代求解;高斯-若尔当消元法是将系数矩阵化为对角矩阵,再进行求解,即对高斯消元法或列主元消元法得到的等价增广矩阵:

用第4行乘加到第3行上,用第4行乘加到第2行上,用第4

行乘加到第1行上,得到

用第3行乘加到第2行上,用第3行乘加到第1行上,再用第2

行乘加到第1行上,得到

(2.19)

为方便起见,仍记式(2.19)系数矩阵元素为,常数项元素为。那么

用初等变换化系数矩阵为对角矩阵的方法称为高斯-若尔当消元法。从形式上看对角矩阵(2.15)比上三角矩阵(2.11)更为简单,易于计算,但是将上三角矩阵(2.11)化为对角矩阵(2.15 )的工作量略大于上三角矩阵回代的工作量。

高斯—若尔当消元法求逆矩阵

设为非奇异矩阵,方程组的增广矩阵为。如果对应用高斯-若尔当消元法化为,则。

例2.2 用高斯-若尔当消元法求的逆矩阵。

解:

解得:

§2 直接三角分解法

仍以为例,在高斯消元法中,从对方程组进行初等变换的角度观察方程组系数矩阵的演变过程。第一次消元步骤将方程组(2.9)化为方程组(2.10),相当于用了三个初等矩阵左乘和。记,容易验证,

由得到其中

将方程组(2.10)化为方程组(2.11),相当于用了两个初等矩阵左乘和。记有

·

同理,将方程组(2.11)化为方程组(2.12),相当于用一个初等矩阵左乘和。记,有

完成了消元过程,有

亦有所有消元步骤表示为:左乘一系列下三角初等矩阵。容易验证,这些下三角矩阵的乘积仍为下三角矩阵,并有

于是有

这里仍为下三角矩阵,其对角元素为1,称为单位下三角矩阵,而已是上三角矩阵。

记,则有

结果表明若消元过程可行,可以将分解为单位下三角矩阵与上三角矩阵的乘积。由此派生出解方程组的直接分解法。

由高斯消元法得到启发,对消元的过程相当于将分解为一个上三角矩阵和一个下三角矩阵的过程。如果直接分解得到和,。这时方程化为,令,由解出;再由,解出。这就是直接分解法。

将方阵分解为,当是单位下三角矩阵,是上三角矩阵时,称为多利特尔(Doclittle)分解;当是下三角矩阵,是单位上三角矩阵时,称为库朗(Courant)分解。分解的条件是若方阵的各阶主子式不为零,则多利特尔分解或库朗分解是可行和惟一的。

一、多利特尔分解

多利特尔分解步骤

若的各阶主子式不为零,可分解为,其中为单位下三角矩阵,为上三角矩阵,即

(2.20)矩阵和共有个未知元素,按照的行元素的列元素的顺序,对每个列出

式(2.16)两边对应的元素关系式,一个关系式解出一个或的元素。下面是计算和

的元素的步骤:

(1)计算的第一行元素

要计算,则列出式(2.20)等号两边的第1行第1列元素的关系式:

故。一般地,由的第一行元素的关系式

得到

(2)计算的第一列元素

要计算,则列出式(2.20)等号两边的第2行第1列元素的关系式:

故。一般地,由的第1列元素的关系式

得到

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

求解线性方程组的直接解法 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的元素,不需逐步 计算存储.

线性方程组的解法

线性方程组的解法 1 引言 在科学研究和大型工程设计中出现了越来越多的数学问题,而这些问题往往需要求数值解。在进行数值求解时,经离散后,常常归结为求解形如Ax= b的大型线性方程组。而如插值公式,拟合公式等的建立,微分方程差分格式的构造等,均可归结为求解线性方程组的问题.在工程技术的科学计算中,线性方程组的求解也是最基本的工作之一.因此,线性方程组的解法一直是科学和工程计算中研究最为普遍的问题,它在数值分析中占有极其重要的地位。20世纪50年代至70年代,由于电子计算机的发展,人们开始考虑和研究在计算机上用迭代法求线性方程组Ax =b的近似解,用某种极限过程去逐渐逼近精确解,并发展了许多非常有效的迭代方法,迭代法具有需要计算机存储单元少、程序设计简单、原始系数矩阵在计算过程中始终不变等优点。例如Jacobi方法、Gauss—Seidel 方法、SOR方法、SSOR 方法,这几种迭代方法是最常用的一阶线性定常迭代法。 2 主要算法 20世纪50年代至70年代,人们开始考虑和研究用迭代法求解线性方程组。 Ax = b (1) 的近似解,发展了许多有效的方法,其中有Jacobi方法、Gauss—Seidel方法,SOR方法、SSOR方法,这几种迭代方法均属一阶线性定常迭代法,即若系数矩阵A的一个分裂:A =M-N ;M 为可逆矩阵,线性方程组(1)化为: (M-N)X =b; →M X = NX + b; →X= M -1NX+ M-1b 得到迭代方法的一般公式: X(k+1)=HX(k)+d (2) 其中:H =MN-1,d=M-1b,对任意初始向量X(0) 一阶定常迭代法收敛的充分必要条件是: 迭代矩H的谱半径小于1,即ρ(H) < 1;又因为对于任何矩阵范数恒有ρ(H)≤‖H‖,故又可得到收敛的一个充分条件为:‖H‖< 1。 2.1 Jacobi迭代法 若D为A的对角素构成的对角矩阵,且对角线元素全不为零。系数矩阵A的一个分解:A =

直接法解线性方程组

直接法解线性方程组 实习题目: 仿照三对角方程组的追赶法解五对角方程组,其中系数矩阵为A,右端向量为:r。将A分解为LU。其中L为下三角,U为单位上三角。A为7*7阶的矩阵,其中对角元为4 5 6 7 8 9 10。上下次三角对角线元素为1 2 3 4 5 6 ;上下第二条对角线元素为1 2 3 4 5;右端项为:1 2 3 4 5 6 7. 要求:输出系数矩阵A,右端向量r,下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y,单位上三角方程组Ux=y的解(即最终的解向量。保留七位小数。 实现方法:通过MATLAB编程实现。建立MATLAB脚本文件。 首先通仿照三对角方程组的追赶法得到五对角矩阵的实现算法。 然后又MATLAB编程实现。 实验结果(MATLAB截图):

结果分析: 通过提供的计算数据得到最终的解向量x及中间过程产生的下三角矩阵L,单位上三角矩阵U,下三角矩阵Ly=b 的解向量y。 同时为了确保算法的正确性,我还通过MATLAB的左除运算检验得使用此算法的计算结果正确。 这里由于是用MATLAB,最终结果为分数形式,考虑到精确解一般比近似解更好,因此未化成七位小数形式。 算法实现分析: 首先计算L和U的元素。由于已知L和U的特定形式(及除了对角线和上下次对角线和上下第二条对角线外,其余为0。故通过矩阵的乘法即可得到LU中元素的计算公式。(具体算法见MATLAB程序) 算法优劣点:

1.解此题时看上去要用较多的存储单元,但实际上只需存储系数矩阵A的不为0的元素。 2.A分解为LU计算完成后,后续计算x和y的“追赶过程”运算量一般来说计算量比较小。 3.此题也可用之前的LU算法求解。但此处算法与一般的LU分解的解线性方程组的算法,相比计算量小了不少。 4.对于此处特定的对称的系数矩阵A,算法还可以进一步优化。 5.由于我在此算法中A.L U的各对角值均用一个列向量表示,一个缺点在于输出A,L,U时要重新组成矩阵形式。不过优点在于减少了存储单元。 6.另一缺点是,未能将结果封装成一个文件。 后附MATLAB代码: c=[4,5,6,7,8,9,10];d=[1,2,3,4,5,6,0];b=[0,1,2,3,4,5,6];e=[1,2,3,4,5,0,0];a=[0,0,1,2,3,4,5]; r=[1 2 3 4 5 6 7]; w=zeros(7,1);x=zeros(7,1);y=zeros(7,1);m=zeros(7,1);n=zeros(7,1);h=zeros(7,1); w(1)=c(1);m(1)=d(1)/c(1);n(1)=e(1)/c(1); h(2)=b(2);w(2)=c(2)-h(2)*m(1);m(2)=(d(2)-b(2)*n(1))/w(2);n(2)=e(2)/w(2); for k=3:5 h(k)=b(k)-a(k)*m(k-2); w(k)=c(k)-a(k)*n(k-2)-h(k)*m(k-1); m(k)=(d(k)-h(k)*n(k-1))/w(k); n(k)=e(k)/w(k); end h(6)=b(6)-a(6)*m(4); w(6)=c(6)-a(6)*n(4)-h(6)*m(5); m(6)=(d(6)-h(6)*n(5))/w(6); h(7)=b(7)-a(7)*m(5); w(7)=c(7)-a(7)*n(5)-h(7)*m(6); y(1)=r(1)/w(1);y(2)=(r(2)-h(2)*y(1))/w(2); for k=3:7 y(k)=(r(k)-a(k)*y(k-2)-h(k)*y(k-1))/w(k); end x(7)=y(7); x(6)=y(6)-x(7)*m(6);

追赶法求解三对角线性方程组

追赶法求解三对角线性方程组 一 实验目的 利用编程方法实现追赶法求解三对角线性方程组。 二 实验内容 1、 学习和理解追赶法求解三对角线性方程组的原理及方法; 2、 利用MATLAB 编程实现追赶法; 3、 举例进行求解,并对结果进行分。 三 实验原理 设n 元线性方程组Ax=d 的系数矩阵A 为非奇异的三对角矩阵 11222=(1)(n 1)()()a c b a c A a n c b n a n ??????????--?????? ………… 这种方程组称为三对角线性方程组。显然,A 是上下半宽带都是1的带状矩阵。设A 的前n-1个顺序主子式都不为零,根据定理2.5的推论,A 有唯一的Crout 分解,并且是保留带宽的。 其中L 是下三角矩阵,U 是单位上三角矩阵。利用矩阵相乘法,可以1112212(1)1u(n 1)()()1l u m l u A LU l n m n l n ????????????????==?????--????????????……………

得到: 由上列各式可以得到L 和U 。 引入中间量y ,令 y Ux =,则有: 已知 L 和d ,可求得y 。 则可得到y 的求解表达式: 11/1 2,3,,()(1)*y()=()[()(1)]/y d l i n m i y i li i di y i di m i y i li ==-+=--… 1111111/1(2)(1)(1)u (1)(11)/(1)(1)(1)l a l u c u c l mi bi i n a i m i i l i i n ci li ui ui ci li l i a i b i ui =*===≤≤+=+++≤≤-=?=+=+-+Ax LUx Ly d Ly d ====1112222(1)(n 1)(n 1)()()(n)(n)l y d m l y d l n y d m n l n y d ?????????????????????????=??????---?????????????????? ……………

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

线性方程组的解法及其应用 The solution of linear equation and its application 专业:测控技术与仪器 班级: 2010-1班 作者:刘颖 学号: 20100310110105

摘要 线性方程组是线性代数的一个重要组成部分,也在现实生产生活中有着广泛的运用,在电子工程、软件开发、人员管理、交通运输等领域都起着重要的作用。在一些学科领域的研究中,线性方程组也有着不可撼动的辅助性作用,在实验和调查后期利用线性方程组对大量的数据进行处理是很方便简捷的选择。本文主要围绕如何解线性方程组来进行讲解,对于不同类型的线性方程组的不同方法,并简述线性方程组的一些实际应用。 关键词: 齐次线性方程组,非齐次线性方程组,克莱姆法则,消元法,矩阵,矩阵的秩,特解,通解。

Abstract Linear equations linear algebra is one of the important component parts, and in real life has extensive production use,and it plays an important role in electronic engineering, software development, personnel management, transportation, etc. In some discipline study, it also has the reigns of linear equations of the auxiliary function.In experiment and survey using the linear equations of the late on the data processing is very convenient simple choice. This article, focusing on how to solve linear equations to explain, for different types of linear equations of different methods, and briefly introduces some of the practical application of linear equations. Keywords: Homogeneous linear equations, Non homogeneous linear equation,Clem’s law,Elimination method,Matrix,Rank of matrix,Special solution,General solution.

线性方程组的直接解法及matlab的实现

本科毕业论文 ( 2010 届) 题目线性方程组的直接解法及matlab的实现 学院数学与信息工程学院 专业数学与应用数学 班级2006级数学1 班 学号0604010127 学生姓名胡婷婷 指导教师王洁 完成日期2010年5月

摘要 随着科技技术的发展及人类对自然界的不断探索模拟.在自然科学和工程问题中的很多问题的解决常常归结为线性代数问题! 本文的主要内容是对线性方程组求解方法的探讨,主要介绍了四种求解线性方程组的方法,第一种是教科书上常见的消元法,我们称之为基本法.第二种方法是标准上三角形求解法,即将增广矩阵经过初等变换后化成标准上三角形,然后求解.它改进了一般教科书上的常见方法,与常见方法比较有如下优点:1)规范了自由未知量的选取;2)只用矩阵运算;3)减少了计算量.第三种方法是对特定的方程组(系数矩阵A为n阶对称正定矩阵,且A的顺序主子式均不为零.)的求解方法进行描述,并且为这种线性方程的求解提供了固定的公式化的方法.第四种方法是对现在实际问题中常常会遇到的系数矩阵为三对角矩阵的方程组的求解方法.同时给出这几种方法的数值解法(matlab程序),由于运用电脑软件求解,所以必须考虑计算方法的时间、空间上的效率以及算法的数值稳定性问题,所以针对不同类型的线性方程组有不同的解法.但是,基本的方法可以归结为两大类,即直接法和迭代法. 关键词 高斯消去法;三角分解法;乔莱斯基分解法;追赶法

Abstract Systems of linear equations are associated with many problems in engineering and scinence ,as well as with applications of mathematics to the social sciences and the quantitative study of business and economic problems. The main content of this article is the method for solving linear equations, we introduce four methods for solving linear equations in this paper. The first is the elimination method which is commonly found in textbooks, and we call the Basic Law. The second method is Standard on the triangle Solution, that first change Augmented matrix into standards in primary triangle, and then solving. It improves the general textbook on common methods, compared with the common method has the following advantages:1) Specification of the free choice of unknowns; 2)Only matrix operations;3) Reduce the computation. The third method describes a way to solve a Specific equations(N coefficient matrix A is symmetric positive definite matrix, and A are not zero-order principal minor), And for this linear equation provides a fixed formulaic approach. The fourth method is to present practical problems often encountered in the coefficient matrix is tridiagonal matrix method for solving the equations. These methods are given numerical solution of (matlab program), As the use of computer software to solve, it is necessary to consider ways of computing time and space efficiency and numerical stability of algorithms, Therefore, different types of linear equations have a different solution. However, the basic method can be classified into two categories, namely direct methods and iterative methods. Key words Gaussian elimination; Triangular decomposition; Cholesky decomposition method; Thomas algorithm

追赶法解三对角方程组

《数值分析》课程设计追赶法解三对角方程组 院(系)名称信息工程学院 专业班级10普本信计 学号100111014 学生姓名刘银朋 指导教师张荣艳 2013 年05 月31日

数值分析课程设计评阅书 题目追赶法解三对角方程组 学生姓名刘银朋学号100111014 指导教师评语及成绩 指导教师签名: 年月日答辩评语及成绩 答辩教师签名: 年月日 教研室意见 总成绩: 教研室主任签名: 年月日

课程设计任务书 2012—2013学年第二学期 专业班级:10普本信息与计算科学学号:100111014 姓名:刘银朋 课程设计名称:数值分析Ⅰ、Ⅱ 设计题目:追赶法解三对角方程组 完成期限:自2013 年05月21 日至2013年05 月31日共10天 设计依据、要求及主要内容: 一、设计目的 理解追赶法,掌握追赶法的算法设计以及关于追赶法的分析和综合应用,能 够较熟练的应用Matlab软件编写求解追赶法的程序和应用Matlab软件数据库软 件. 二、设计内容 (1)认真挑选有代表性的三对角方程组. (2)认真梳理解三对角方程组的解题思路. (3)比较追赶法和高斯消去法的计算精度. 三、设计要求 1.先用Matlab数据库中的相应的函数对选定的方程,求出具有一定精度的解. 2.然后使用所用的方法编写Matlab程序求解. 3.对于使用多个方程解同意问题的,在界面上要设计成菜单的形式. 计划答辩时间:2013年06 月 5 日 工作任务鱼工作量要求: 查阅文献资料不少于3篇,课程设计报告1篇不少于3000字. 指导教师(签字):教研室主任(签字): 批准日期:2013 年05 月20 日

第三章 解线性方程组的直接方法

习题 3.1 1. 求下列方阵的秩: (1)??? ?? ??--340313021201;(2)????? ??----174034301320;(3)??????? ? ?---------12433023221453334 311 ;(4)??????? ??------34732038234202173132. 2. 求下列方阵的逆矩阵: (1) ?? ? ?? ? ?323513123; (2) ????? ?? ??-----1210232112201023. 3. 解下列矩阵方程 (1) 设 ???? ? ??--=????? ??--=1322 31,113122214B A ,求X 使B AX =; (2) 设 ??? ? ??-=? ???? ??---=132 321,433312120B A ,求X 使B XA =; (3) ?? ??? ??-=????? ??-=????? ??-=112510324, 123011113,1120111111C B A ,求X 使C AXB =. 4. 求下列行列式 (1)? ? ? ??? ??????71 1 0251020214214 ;(2)????????????-260523211213 141 2;(3)?? ? ???????---ef cf bf de cd bd ae ac ab ; (4) ????????????---d c b a 100110011001. 5. 判断下列线性方程组解的情况,如果有唯一解,则求出解. ???????=+++-=----=+-+=+++;01123,2532,242,5)1(432143214 3214321x x x x x x x x x x x x x x x x ? ? ???????=+=++=++=++=+;15,065,065,065,165)2(545434323212 1x x x x x x x x x x x x x (3) ? ?? ??=-++=-+-=-+-;3222, 2353, 132432143214321x x x x x x x x x x x x (4) ?????=---=--+=+++.034,0222,022432143214321x x x x x x x x x x x x 习题 3.2 1. 用回代法解上三角形线性方程组 (1)??? ????==+-=-+=++;63,3,6333,8484443432321x x x x x x x x x (2)?? ???? ?-=-=+--=+--=-+.63,1032,92,9244343242 1x x x x x x x x x 2. 用回代法解下三角形线性方程组

解线性方程组的直接解法

解线性方程组的直接解法 一、实验目的及要求 关于线性方程组的数值解法一般分为两大类:直接法与迭代法。直接法是在没有舍入误差的情况下,通过有限步运算来求方程组解的方法。通过本次试验的学习,应该掌握各种直接法,如:高斯列主元消去法,LU分解法和平方根法等算法的基本思想和原理,了解它们各自的优缺点及适用范围。 二、相关理论知识 求解线性方程组的直接方法有以下几种: 1、利用左除运算符直接求解 线性方程组为b x\ =即可。 A Ax=,则输入b 2、列主元的高斯消元法 程序流程图: 输入系数矩阵A,向量b,输出线性方程组的解x。 根据矩阵的秩判断是否有解,若无解停止;否则,顺序进行; 对于1 p :1- =n 选择第p列中最大元,并且交换行; 消元计算; 回代求解。(此部分可以参看课本第150页相关算法) 3、利用矩阵的分解求解线性方程组 (1)LU分解 调用matlab中的函数lu即可,调用格式如下: [L,U]=lu(A) 注意:L往往不是一个下三角,但是可以经过行的变换化为单位下三角。 (2)平方根法

调用matlab 中的函数chol 即可,调用格式如下: R=chol (A ) 输出的是一个上三角矩阵R ,使得R R A T =。 三、研究、解答以下问题 问题1、先将矩阵A 进行楚列斯基分解,然后解方程组b Ax =(即利用平方根法求解线性方程组,直接调用函数): ??????? ??--------=19631699723723312312A ,?????? ? ??-=71636b 解答: 程序: A=[12 -3 2 1;-3 23 -7 -3;2 -7 99 -6;1 -3 -6 19]; R=chol(A) b=[6 3 -16 7]'; y=inv(R')*b %y=R'\b x=inv(R)*y %x=R\y 结果: R =3.4641 -0.8660 0.5774 0.2887 0 4.7170 -1.3780 -0.5830 0 0 9.8371 -0.7085 0 0 0 4.2514 y =1.7321 0.9540 -1.5945 1.3940 x =0.5463 0.2023 -0.1385 0.3279 问题 2、先将矩阵A 进行LU 分解,然后解方程组b Ax =(直接调用函数): ?????????? ??----=8162517623158765211331056897031354376231A ,????????? ? ??-=715513252b

浅析线性方程组的解法

目录 摘要................................................................................... I Abstract. ............................................................................. II 第一章绪论............................................................................ I 1.1引言 (1) 1.2线性方程组解的求解方法的研究现状 (1) 1.3本文对线性方程组解法的研究结构 (1) 第二章线性方程组理论基础 (2) 2.1 线性方程组概念 (2) 2.2 线性方程组的解的情况分析 (2) 2.3 齐次线性方程组解的结构 (4) 2.4非齐次线性方程组解的结构 (4) 第三章线性方程组的数值解 (5) 3.1 迭代法 (5) 3.1.1 Jacobi方法 (6) 3.2.2 高斯-赛德尔方法 (8) 第四章全文总结和展望 (10) 4.1 全文总结 (10) 4.2 未来展望 (10) 参考文献 (11) 致谢................................................................. 错误!未定义书签。

线性方程组的求解方法 学生:指导教师: 摘要:本文在对线性方程组解的结构的研究背景与意义分析的基础上,对线性方程组的求解方法的研究现状进行了介绍,之后针对线性方程组展开了研究,包括线性方程组的概念、线性方程组的求解方法以及线性方程组的作用等,在对线性方程组有了全面的认识后,基于线性方程组解的结构展开了研究,包括线性方程组解的基本定理,齐次和非齐次线性方程组解的结构形式,以及齐次和非齐次线性方程组解的结构,我们用迭代法中最常用的Jacobi方法中的相似上三角矩阵定理和迭代法中的收敛性讨论线性方程组的数值解法,并用高斯-赛德尔方法进行验证。得到线性方程组的数值解的一般方法。最后,对全文进行了总结和展望。 关键词:线性方程组;数值解;迭代法;Jacobi方法;高斯-赛德尔方法

线性方程组的直接解法

第2章线性方程组的直接解法 2.1实验目的 理解线性方程组计算机解法中的直接解法的求解过程和特点,学习科学计算的方法和简单的编程技术。 2.2概念与结论 1. n阶线性方程组 如果未知量的个数为 n ,而且关于这些未知量x1,x2, …,x n的幂次都是一次的(线性的)那末, n 个方程 a11x1+a12x2+ … +a1n x n=b1 ┆┆┆ (1) a n1x1+a n2x2+ … +a nn x n= b n 构成一个含n个未知量的线性方程组,称为n阶线性方程组。其中,系数a11,…,a1n,a21, …,a2n, …,a n1, …,a nn 和b1, …,b n都是给定的常数。 方程组(1)也常用矩阵的形式表示,写为 Ax=b 其中,A是由系数按次序排列构成的一个n阶矩阵,称为方程组的系数矩阵,x和b都是n维向量,b称为方程组的右端向量。 2. n阶线性方程组的解 使方程组(1)中每一个方程都成立的一组数x1*,x2*, …,x n*称为式(1)的解,把它记为向量的形式,称为解向量. 3.一些特殊的线性方程组 1) 上三角方程组 2) 三对角方程组 ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? - - - - - n n nn n n n n n n n n b b b x x x a a a a a a a a a a a a 2 1 2 1 1 1 1 2 1 2 23 22 1 1 1 13 12 11

4.矩阵的Doolittle 分解 5.Doolittle 分解的紧凑格式 6.矩阵的Crout 分解 ????????? ? ??=?????????? ???????????? ? ?--n n n n n n d d d x x x b a c b c b a c b a c b 21 2111333 22211???? ?? ? ? ???????? ??=??????? ??nn n n n n nn n n n n u u u u u u l l l a a a a a a a a a 222 11211 2 1 21 2 1 2222111211111 ???? ?? ? ? ???????? ??=??????? ??11 1 21122 1 2221 11 2 1 2222111211 n n nn n n nn n n n n u u u l l l l l l a a a a a a a a a ????? ?? ? ??nn n n n n n n u l l l u u l l u u u l u u u u 3 2 1 333323122322211131211

线性方程组的直接解法

第4章 线性方程组的直接解法 本章主要内容 线性方程组的直接解法——消元法(高斯消元法、主元消元法). 矩阵的三角分解法( Doolittle 分解、Crout 分解、 LDU 分解) 紧凑格式 改进平方根法. 本章重点、难点 一、消元法(高斯消元法、列主元消元法) 本章求解的是n 阶线性方程组Ax=b 的(即方程的个数和未知量的个数相等的线性方程组) ?????????=+???++????????????? ??=+???++=+???++n n nn n n n n n b x a x a x a b x a x a x a b x a x a x a 22112 3222212111212111 1. 高斯消元法 ①高斯消元法的基本思想:通过对线性方程组Ax=b 的进行同解消元变换(也可以用矩阵的初等行变换法进行线性方程组的消元变换),将线性方程组化为上三角形方程组,然后用回代法求出此线性方程组的解。 ②高斯消元法计算公式: ????? ? ? ????????--=-=--==? ????? ????? ???? +=-=-=====-+=------------∑)1,..., 2,1()1,..., 2,1(,...,1,,,,...,2,1) ,...,2,1,(,) 1(1)1()1()1() 1() 1()1() 1()1()() 1()1()1()1()(,)0()0(n n i a x a b x n n i a b x n k j i b a a b b a a a a a n k n j i b b a a i ii n i j j i ij i i i n nn n n n k k k kk k ik k i k i k kj k kk k ik k ij k ij i i ij ij 对回代公式: 消元公式:

【良心出品】MATLAB 追赶法求解三对角方程组的算法原理例题与程序

3)三对角形线性方程组 123456789104100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014x x x x x x x x x x -????????--????????--????--????????--????--????????--????--???????--??????-???? 7513261214455????????-?? ?? ??=??-?? ???? -?? ?????? ???-?? *(2,1,3,0,1,2,3,0,1,1)T x =--- 二、数学原理 设系数矩阵为三对角矩阵 1 122233111000000000 000000 n n n n n b c a b c a b A a b c a b ---?? ? ? ?= ? ? ? ? ?? ? 则方程组Ax=f 称为三对角方程组。 设矩阵A 非奇异,A 有Crout 分解A=LU ,其中L 为下三角矩阵,U 为单位上三角矩阵,记 1 122 233 1 10 00010 000 0001000 000100,00000000 00 0001n n n n b L U γαβγββγβ--???? ? ? ? ? ? ??== ? ? ? ? ? ? ? ? ? ??? ? ? ? 可先依次求出L ,U 中的元素后,令Ux=y ,先求解下三角方程组Ly=f 得出y ,再求解上三角方程组Ux=y 。

事实上,求解三对角方程组的2追赶法将矩阵三角分解的计算与求解两个三角方程组的计算放在一起,使算法更为紧凑。其计算公式为: 1111, 1111 ,111 ,2,3,,,1,2,,1i i i i i i i i i i i i i i n n i i i i c f b y i n c a b a f y y x y i n n x y x βγββαβγγβαβγ--+? ===?? =?? ?==-= ??? -?=?? =??=--?=-??对对(*) 三、程序设计 function x=chase(a,b,c,f) %求解线性方程组Ax=f,其中A 是三对角阵 %a 是矩阵A 的下对角线元素a(1)=0 %b 是矩阵A 的对角线元素 %c 是矩阵A 的上对角线元素c(n)=0 %f 是方程组的右端向量 n=length(f); x=zeros(1,n);y=zeros(1,n); d=zeros(1,n);u= zeros(1,n); %预处理 d(1)=b(1); for i=1:n-1 u(i)=c(i)/d(i); d(i+1)=b(i+1)-a(i+1)*u(i); end %追的过程 y(1)=f(1)/d(1); for i=2:n y(i)=(f(i)-a(i)*y(i-1))/d(i); end %赶的过程 x(n)=y(n); for i=n-1:-1:1 x(i)=y(i)-u(i)*x(i+1); end

线性方程组的几种求解方法

线性方程组的几种解法 线性方程组形式如下: 常记为矩阵形式 其中 一、高斯消元法 高斯(Gauss)消元法的基本思想是:通过一系列的加减消元运算,也就是代数中的加减消去法,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。现举例说明如下: (一)消元过程 第一步:将(1)/3使x 1的系数化为1 得 再将(2)、(3)式中x 1的系数都化为零,即由(2)-2×(1)(1) 得 )1(32)2( (03) 4 32=+x x )1(321)1(......23132=++ x x x

由(3)-4×(1)(1) 得 第二步:将(2)(1) 除以2/3,使x 2系数化为1,得 再将(3)(1) 式中x 2系数化为零,即 由(3)(1) -(-14/3)*(2)(2) ,得 第三步:将(3)(2) 除以18/3,使x 3系数化为1,得 经消元后,得到如下三角代数方程组: (二)回代过程 由(3)(3) 得 x 3=1, 将x 3代入(2)(2) 得x 2=-2, 将x 2 、x 3代入(1)(1) 得x 2=1 所以,本题解为[x]=[1,2,-1]T (三)、用矩阵演示进行消元过程 第一步: 先将方程写成增广矩阵的形式 第二步:然后对矩阵进行初等行变换 初等行变换包含如下操作 (1) 将某行同乘或同除一个非零实数 ) 3(3)3(......1-=x )2(3)3( (63) 18-=x ) 2(32) 2(......02=+x x ) 1(32)3( (63) 10 314-=-- x x

(2)将某行加入到另一行 (3)将任意两行互换 第三步:将增广矩阵变换成上三角矩阵,即主对角线全为1,左下三角矩阵全为0,形式如下: 示例: (四)高斯消元的公式 综合以上讨论,不难看出,高斯消元法解方程组的公式为 1.消元 (1)令 a ij(1) = a ij , (i,j=1,2,3,…,n) b i(1) =b i , (i=1,2,3,…,n) (2)对k=1到n-1,若a kk(k)≠0,进行 l ik = a ik(k) / a kk(k) , (i=k+1,k+2,…,n) a ij(k+1) = a ij(k) - l ik * a kj(k), (i,j= k+1,k+2,…,n) b i(k+1) = b i(k) - l ik * b k(k), (i= k+1,k+2,…,n) 2.回代 若a nn(n) ≠0 x n = b n(n) / a nn(n) x i = (b i(i) – sgm(a ij(i) * x j)/- a ii(i),(i = n-1,n-2,…,1),( j = i+1,i+2,…,n ) (五)高斯消元法的条件 消元过程要求a ii(i) ≠0 (i=1,2,…,n),回代过程则进一步要求a nn(n) ≠0,但就方程组Ax=b 讲,a ii(i)是否等于0时无法事先看出来的。 注意A的顺序主子式D i(i=1,2,…,n),在消元的过程中不变,这是因为消元所作的变换是“将某行的若干倍加到另一行”。若高斯消元法的过程进行了k-1步(a ii(i) ≠0,i

线性方程组的直接解法

实验五 线性方程组的直接解法 一、实验内容 1、用列主元素法求解方程组 15 123459.170.31059.43146.785.291 6.3112111.295221211x x x x -?????????????--??????=?????????????? ???? 并计算误差b-Ax ,分析结果的好坏; 2、 用改进Cholesky 方法求对称正定阵线性方程组 1234248.72171013.741090.7x x x -????????????-=????????????-?????? 并计算误差b-Ax ,分析结果的好坏; 3、 用追赶法解方程组 123421006132010121000351x x x x -????????????--??????=??????--??????-???? ?? 二、要求 1、 对上述三个方程组分别利用Gauss 列主元消去法;Cholesky 方法;追赶法求解(选择其一); 2、 应用结构程序设计编出通用程序; 3、 比较计算结果,分析数值解误差的原因; 三、目的和意义 1、通过该课题的实验,体会模块化结构程序设计方法的优点; 2、运用所学的计算方法,解决各类线性方程组的直接算法; 3、提高分析和解决问题的能力,做到学以致用; 4、 通过三对角形线性方程组的解法,体会稀疏线性方程组解法的特点。 四、实验学时:2学时 五、实验步骤: 1.进入matlab 开发环境; 2.根据实验内容和要求编写程序; 3.调试程序; 4.运行程序; 5.撰写报告,讨论分析实验结果.

六、程序 1、Gauss列主元素消去法 function x=Gauss_pivot(A,b) %用Gauss列主元素法求解线性方程组Ax=b %x是未知向量 n=length(b); x=zeros(n,1); c=zeros(1,n); d1=0; %消元计算 for i=1:n-1 max=abs(A(i,i)); m=i; for j=i+1:n if max

三元线性方程组的几何解法.doc

三元线性方程组的几何解法 任春丽,王金金 (西安电子科技人学理学院数学系,陕西酋安710071 ) 线性方程组是线性代数中重要的内容,其解的结构在线性代数课程中已通过向量及矩阵理论讨论的非常清楚,但在教材中很少提及几何意义.由于三元线性方程表示空间屮的平而,因此,通过平面图形Z间的位置关系求解线性方程组,不仅形象、直观,而且为从三维空间抽象的代数问题推广到n维空间更定了基础°文献[2] 丿IJ矩阵 的秩判别了空间屮平面、直线之间的位證关系;相反的,本文利用空间中平而、肓线之间的位宜关系讨论了三元线性方程组解的情况,并举例说明。 1.两个方程的三元线性方程组 设方程组(I): [仲+恥+C"。-街俩个平面) A2X +B2y + C2z = D2—兀2 讨论:令e=4,d,G,o)(心1,2), %=Q,B,C)(i = l,2) ⑴若wa,即牛鲁咱唔‘则 眄与龙2重合,方程组(I)有无穷多解; (2)若n.//n2i a^a29即4 =邑』』, 1 2 1 2 码场C? D2则眄与?平行但不重合,方程组(I )无解; (3)若讥叫,则陌与幻相交,方程纨I)有无穷多解,其解为相交直线上的所有点。 例1求解下列线性方程组 3兀 + 6y — 3z = 8 fx + 2y-z = 7 (1){ : (2){ ?一兀一 2y + z = 3 [-2x + y + z = 4 解⑴因为—7^-,所以两个平 -1-213 血平行但不重合,故方程组无解; (2)因为阿x〃2 =(1,2,T)x(一2,1,1) = (3丄5) H 0, 所以两个平面相交于H线L,故方程组有无穷多 解。又点(1,4,2)在L上,故直线L的参数方程x = 1 + 3f, 为:」= 4+r,即是方程组的通解。 z = 2 + 5/. 2.三个方程的三元线性方程组 设方程组(II): A}x + + Gz = °―兀、 < A2x + B2y + C2z = D2—兀2(三个平面) A.x + B,y^C.z = D. 一心 讨论:令q=Q,d,G,q)(i = l,2,3), n,=(4.,B/,C/)(i = l,2,3)o (1)若= 1,2,3)中至少有两个平行,则至 少有两个平面重合,其解的讨论同第1 H; (2)若? (/ = 1,2,3)屮至少有两个平行,但相应的乞?加勺(心力,则至少冇两个平面平行但 不重合,方程组(II)无解; (3)若?加? (心/),则三个平面两两相交, 方程组(II)可能有解,也可能无解。进一步:求 x = x Q + mt, ! IW与兀2的交线L的参数式方程:\y = y o+ntf z = 5 + pt. 如果厶〃龙3,但点(兀O,y°,Zo)不在龙3上,则

相关文档
最新文档