数值线性代数课程设计高斯消去法

合集下载

数值分析Gauss消去法课件

数值分析Gauss消去法课件

高斯消元法的代码实现
初始化矩阵
将系数矩阵A进行初始化,并存储在二维数 组中。
消元过程
通过一系列行变换,将系数矩阵变为上三角 矩阵。
主元选择
选择主元,即系数矩阵中所在行和列的最大 元素。
回带求解
利用上三角矩阵的元素,求解线性方程组的 解。
选主元的优化策略
1 2
自然主元
选择系数矩阵中绝对值最大的元素作为主元。
病态问题
对于一些病态问题,高斯 消元法可能无法得到准确 解,需要采用其他方法进 行求解。
01
Gauss消去法的应 用实例
应用领域与案例介绍
线性方程组求解
01
Gauss消去法是求解线性方程组的一种常用方法,适用于大ห้องสมุดไป่ตู้模
、稀疏矩阵的求解。
矩阵求逆
02
通过Gauss消去法可以计算矩阵的逆,这在许多科学计算和工程
最小二乘主元
选择使所在行和列的绝对值之和最小的元素作为 主元。
3
随机主元
随机选择一个元素作为主元,可以避免某些数值 问题。
数值稳定性与误差控制
01
02
03
数值稳定性
高斯消元法在某些情况下 可能产生数值不稳定性, 如主元接近零或数值误差 累积。
误差控制
在消元过程中,可以通过 一些技巧来控制误差,如 预处理、选主元策略和舍 入误差控制。
领域中都有应用。
特征值和特征向量计算
03
Gauss消去法可以用于计算矩阵的特征值和特征向量,这在物理
、工程和经济学等领域有广泛的应用。
实际应用中的问题与挑战
数值稳定性
Gauss消去法在处理病态问题或 接近奇异矩阵时可能会出现数值 不稳定性,导致计算结果误差较 大。

数值方法高斯消元法

数值方法高斯消元法

数值方法高斯消元法
高斯消元法(Gaussian Elimination)是指通过迭代使用矩阵运算,化为上三
角形矩阵来求解线性方程组的一种特殊数值算法。

它是数值分析中用于求解结构化和非结构化方程组的主要方法之一,属于改进的回代法,是由德国数学家高斯于
19世纪末提出的。

高斯消元法主要用于求解下列形式的方程组:Ax = b,其中A为非奇异矩阵,
x为未知向量,b为系数向量。

由此可见,该方法最重要的两个思想就是消元和迭代。

本算法的消元操作是通过矩阵的标准变换来实现的,即存在一个三角阵T,它
的下三角部分的映射是原矩阵A,其上三角部分本身恒为单位矩阵,这样一来,原
方程就被转化为一组三角方程,而且由上三角的单位矩阵可以再次得出未知向量x。

在实际应用中,高斯消元法最重要的特点就是它的计算精度高,时间效率也非
常高。

这是因为在处理大矩阵时,它不仅能够提高计算精度,而且能有效控制计算时间。

因此,高斯消元法广泛用于各种数值分析领域,如量子力学计算,复杂系统建模,模式识别,统计过程等等。

此外,高斯消元法也被广泛应用于工业领域,如航空航天,汽车制造,电力电子等。

总而言之,高斯消元法无疑是一种非常出色的线性方程组求解算法,有效地合
理地求解了大量复杂的线性数值问题,用它取代传统的回代法有效地节省了计算时间,是当今数值分析中可靠、高效斗算算法。

高斯消除法

高斯消除法

高斯消除法高斯消除法是一种解线性方程组的常用方法。

它的基本思想是通过一系列的行变换将线性方程组化为上三角形式,从而求得方程组的解。

本文将详细介绍高斯消除法的原理和步骤,并通过一个具体的例子来演示其应用。

一、高斯消除法的原理高斯消除法的核心思想是利用行变换将线性方程组化为上三角形式。

其基本原理可以概括为以下几点:1. 首先,将线性方程组的系数矩阵进行增广,得到一个增广矩阵。

2. 选择一个主元素,一般选择第一行的第一个非零元素作为主元素。

3. 通过行变换,将主元素所在列的其他元素消为零。

4. 重复上述步骤,选择一个新的主元素,直到将矩阵化为上三角形式。

5. 对上三角矩阵进行回代,得到线性方程组的解。

下面我们通过一个具体的例子来演示高斯消除法的步骤。

假设有如下线性方程组:2x + 3y - z = 10x - y + 2z = -13x + 2y - 3z = 51. 首先,将系数矩阵进行增广,得到增广矩阵:[ 2 3 -1 | 10 ][ 1 -1 2 | -1 ][ 3 2 -3 | 5 ]2. 选择第一行的第一个非零元素2作为主元素。

3. 第一步消元:将第二行乘以2,减去第一行,得到新的第二行:[ 2 3 -1 | 10 ][ 0 -7 4 | 19 ][ 3 2 -3 | 5 ]将第三行乘以3,减去第一行,得到新的第三行:[ 2 3 -1 | 10 ][ 0 -7 4 | 19 ][ 0 -7 0 | -5 ]4. 选择第二行的第二个非零元素-7作为主元素。

5. 第二步消元:将第三行乘以(-1),加上第二行,得到新的第三行:[ 2 3 -1 | 10 ][ 0 -7 4 | 19 ][ 0 0 4 | 14 ]6. 至此,已将矩阵化为上三角形式。

接下来进行回代,求解方程组的解。

由最后一行可知,4z = 14,即z = 14/4 = 3.5。

将z的值代入第二行的方程中,可得-7y + 4z = 19,即-7y + 4*3.5 = 19,解得y = -3。

数值线性代数课程设计高斯消去法

数值线性代数课程设计高斯消去法

数值线性代数课程设计⾼斯消去法数值线性代数课程设计线性⽅程组的直接解法数理学院 09405011班 0940501120 沈骁摘要:如何利⽤电⼦计算机来快速、有效的求解线性⽅程组的问题是数值线性代数的核⼼问题。

本⽂将主要介绍解线性⽅程组的基本的直接法——⾼斯消去法,平⽅根法,并⽤实例来验证此⽅法的有效性。

关键字:⾼斯消去法,顺序消去法,选主元消去法,平⽅根法,消元过程,回代过程,主元数和乘数引⾔:因为各种各样的科学与⼯程问题往往最终都要归结为⼀个线性⽅程组的求解问题。

本⽂在⽐较着⼏个⽅法的基础上,通过⼀道实例来得到最⽅便最有效的⽅法。

基本原理:⼯程计算和科学研究中的许多问题,最终归结为线性代数⽅程组的求解。

求解的⽅法也有很多,如⾼斯消去法(顺序消去法,选主元消去法),平⽅根法。

⾼斯消去法是⽬前求解中⼩规模线性⽅程组最常⽤的⽅法;平⽅根法是求解对称正定线性⽅程组最常⽤的⽅法之⼀。

为了更快速、更⽅便的求解线性⽅程组,下⾯我们⽐较⼀下这⼏种⽅法哪种更好。

⼀、⾼斯(Causs )消去法就是逐步消去变元的系数,将原⽅程组Ax b =化为系数矩阵为三⾓形的等价⽅程组Ux d =,然后求解系数矩阵为三⾓形的⽅程组⽽得出原⽅程组解的⽅法。

把逐步消元去变元的系数,将⽅程组化为以系数矩阵为三⾓形的等价⽅程组的过程称为⼩院过程;把求系数矩阵为三⾓形的⽅程组解的过程称为回代过程。

最初求解⽅程组的⾼斯消去法也称为顺序消去法,它由消元过程和回代过程组成。

顺序消去法 1.消元过程考虑⼀般⽅程组,为了推导过程⽅便,记系数矩阵A 的元素ij a 为(0)ij a ,右端向量b 的元素i b 记为(0),1i n a +,于是⽅程组11112211211222221122n n n n n n nn n na x a x a xb a x a x a x b a x a x a x b +++=??+++=+++=(1.1)成为()()()()()()()()()()()()00011112211100021122222100011221n n n n n n n n nn n nn a x a x a x a a x a x a x a a x a x a x a +++?+++=?+++=+++=假设(0)110a ≠,将第1个⽅程乘以(0)1(0)11()i a a -加到第i 个⽅程(2)i n ≤≤,得到第1个导出⽅程组(0)(0)(0)(0)111122111(1)(1)(1)222221(1)(1)(1)221n n n n n n n nn n nn a x a x a x a a x a x a a x a x a +++?++=?+=??+=其中:(0)(1)(0)(0)11(0)11i ij ij j a a a a a =-,2i n ≤≤,21j n ≤≤+。

数值分析高斯顺序消去法、列主元消去法LU分解法

数值分析高斯顺序消去法、列主元消去法LU分解法

数值分析实验报告(1)学院:信息学院班级:计算机0903班姓名:***学号:********课题一A.问题提出给定下列几个不同类型的线性方程组,请用适当的方法求解线性方程组1、设线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--------------------------1368243810041202913726422123417911101610352431205362177586832337616244911315120130123122400105635680000121324⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x =⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-2119381346323125 x *= ( 1, -1, 0, 1, 2, 0, 3, 1, -1, 2 )T2、设对称正定阵系数阵线方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----------------------19243360021411035204111443343104221812334161206538114140231212200420424⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡87654321x x x x x x x x = ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡---4515229232060 x * = ( 1, -1, 0, 2, 1, -1, 0, 2 )T3、三对角形线性方程组⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡------------------4100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410000000014⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡10987654321x x x x x x x x x x = ⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡----5541412621357 x *= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 )TB.(1)对上述三个方程组分别用Gauss 顺序消去法与Gauss 列主元消去法;平方根 与改进平方根法;追赶法求解(选择其一) (2)编写算法通用程序(3)在应用Gauss 消去时,尽可能利用相应程序输出系数矩阵的三角分解式C.(1)通过该课题的程序编制,掌握模块化结构程序设计方法 (2)掌握求解各类线性方程组的直接方法,了解各种方法的特点 (3)体会高斯消去法选主元的必要性 实验步骤:(高斯消去法,列主元,LU )1顺序高斯消去法2.LU 分解法3.列主元高斯消去法(如下图)(1)高斯消去法运行结果如下(2)对方程的系数矩阵进行LU分解并求出方程组的解(3)列主元高斯消去法实验体会总结:利用gauss消去法解线性方程组的时候,如果没有经过选主元,可能会出现数值不稳定的现象,使得方程组的解偏离精确解。

第三章-高斯消去法

第三章-高斯消去法

对于(A (1) , b (1) )中个元素的计算公式为:
( ( (0 a11j) a10) / a11) j (1) ( 0) ( 0 ) (1) a ij a ij a i1 a1 j
( j 2, , n 1) (i 2, , n; j 2, n 1)

2 1 3 1 4 2 5 4 2 0 2 6
第一步:先将方程(1)中未知数 边,得到下列方程组:
x 1的系数2除(1)的两
1 3 1 x1 2 x 2 2 x 3 2 I1 4 x1 2 x 2 5x 3 4 2x 2x 3 6 1
( a 10 ) n
a (0) 22
(0 a 32)
a (0) 2n
( a 30 ) n
a (0) 42
a (0) 4n
( a 10 ) 1 n (0) a 2 n 1 ( a 30 )1 n (0) a 4n 2
(0 第一步:对(A ( 0) , b ( 0))的第一行个元素除以a11) , 然 0 后用第i行元数(i 2, , n )减去第一行对应元素的a i(1 ) (0 倍, 2, , n ), 这样,a11) 位置变为 ,其余各行的第一 (i 1
(1 a12) 1
(1 a13) a ( 2) 23
0 0
( a 11)1 n a ( 2 )1 2n 记为 ( 2) ( 2) a 33 a 3n 1 (A ( 2 ) , b ( 2 )) ( 2) ( 2) a n 3 a nn 1
k 对第k行各元素除以a (kk1) , 第i行的元素减去第k行对应 (k 元素的a ik 1)倍(i k 1, , n ), 这样就将第k行第k个元

数值分析实验报告---高斯消去法 LU分解法

数值分析实验报告---高斯消去法 LU分解法

数值分析实验报告---高斯消去法 LU分解法实验一:高斯消去法一、实验目的1. 掌握高斯消去法的原理2. 用高斯消去法解线性方程组3. 分析误差二、实验原理高斯消去法(又称为高斯-约旦消去法)是一种利用矩阵消元的方法,将线性方程组化为改进的阶梯形式,从而解出线性方程组的解的方法。

具体而言,高斯消去法将线性方程组的系数矩阵化为一个上三角矩阵,再利用回带法求解线性方程组的解。

三、实验内容1.1、用高斯消去法解线性方程组在具体实验中,我们将使用高斯消去法来解决下述的线性方程组。

5x+2y+z=102x+6y+2z=14x-y+10z=25为了使用高斯消去法来解这个方程组,首先需要将系数矩阵A进行变换,消除A矩阵中第一列中的下角元素,如下所示:1, 2/5, 1/50, 28/5, 18/50, 0, 49/28接着使用回代法来计算该方程组的解。

回代法的过程是从下往上进行的,具体步骤如下:第三个方程的解:z=49/28;第二个方程的解: y=(14-2z-2x)/6;第一个方程的解: x=(10-2y-z)/5。

1.2、分析误差在使用高斯消去法求解线性方程组时,一般会出现截断误差,导致得到的解与真实解之间存在一些误差。

截断误差的大小和矩阵的维数有关。

为了估计截断误差,我们使用矩阵B来生成误差,在具体实验中,我们将使用下面的矩阵:我们来计算该矩阵的行列式,如果方程组有唯一解,则行列性不为0。

本例中,行列式的值是 -1,因此方程组有唯一解。

然后我们计算真实解和高斯消去法得到的解之间的误差,具体公式如下所示:误差 = 真实解的范数 - 高斯消去法得到的解的范数其中,范数的定义如下:||x||1=max{|xi|}; ||x||2=sqrt{(|x1|^2 + |x2|^2 + ... + |xn|^2)}四、实验步骤1、将高斯消去法的每一个步骤翻译成代码,并保存为一个独立的函数。

2、将代码上传至 Python 交互式环境,并使用高斯消去法来解线性方程组。

高斯消去法解方程组

高斯消去法解方程组

高斯消去法解方程组
高斯消去法是数值计算中一种解线性方程组的标准算法,由查尔斯·高斯在 18 年发明,是向量空间下线性方程组的计算最有效的算法。

它利用线性变换(例如交换、加减乘除),逐步将线性方程组化简成上三角形形式进而得到解,称为高斯消去法。

其核心思想是:由方程组的关系式可得出系数矩阵,采用层层消去的方法使其变成上三角矩阵,再解出解向量。

高斯消去法的具体步骤是:
(1)以第一列为基元,化为消去向量,即第一列第一项(用a表示)对应的消去系数,然后将其他行的第一项做除法,消去第一列。

(2)以第二列为基元,化为消去向量,消去其余行第二项。

(3)以此类推,以每一列为基元,化为消去向量,将其
余行此列之项全部消去;直至消去完毕。

(4)最后一步是逆序求出解向量。

由最后一个方程式,
可直接求出最后一列解向量(用x表示)特征值,若n表示方程组的阶数,则n=1时即可求得解向量的所有特征值,若n>1,则逆序回代求出前面的特征值。

高斯消去法解线性方程组的算法比较简单,易于理解,
但它会遇到数值误差、文本输入错误等问题,所以在使用高斯消去法时,应当注意它的准确性,以及在使用这种解法时可能出现的数值不稳定性。

此外,高斯消去法的效率较低,其计算
时间与方程组系数的规模呈指数增长关系,因此也可以通过其他算法来求解线性方程组,如 LU 分解等。

用高斯消元法求解线性代数方程组

用高斯消元法求解线性代数方程组

用高斯消元法求解线性代数方程组12341115-413-2823113-21041513-21719x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 1111X *⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦(X*是方程组的精确解)1 高斯消去法1.1 基本思想及计算过程高斯(Gauss )消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。

为便于叙述,先以一个三阶线性方程组为例来说明高斯消去法的基本思想。

⎪⎩⎪⎨⎧=++II =++I =++III)(323034)(5253)(6432321321321x x x x x x x x x 把方程(I )乘(23-)后加到方程(II )上去,把方程(I )乘(24-)后加到方程(III )上去,即可消去方程(II )、(III )中的x 1,得同解方程组⎪⎩⎪⎨⎧=+-II -=-I =++III)(20223)(445.0)(64323232321x x x x x x x 将方程(II )乘(5.03)后加于方程(III ),得同解方程组:⎪⎩⎪⎨⎧-=-II -=-I =++III)(42)(445.0)(6432332321x x x x x x 由回代公式(3.5)得x 3 = 2,x 2 = 8,x 1 = -13。

下面考察一般形式的线性方程组的解法,为叙述问题方便,将b i 写成a i , n +1,i = 1, 2,…,n 。

⎪⎪⎩⎪⎪⎨⎧=++++=++++=+++++++1,3322111,223232221211,11313212111n n n nn n n n n n n n n n a x a x a x a x a a x a x a x a x a a x a x a x a x a (1-1)如果a 11 ≠ 0,将第一个方程中x 1的系数化为1,得)1(1,1)1(12)1(121+=+++n n n a x a x a x 其中)0(11)0()1(1a a aij j =, j = 1, …, n + 1(记ij ij a a =)0(,i = 1, 2, …, n ; j = 1, 2, …, n+ 1) 从其它n –1个方程中消x 1,使它变成如下形式⎪⎪⎩⎪⎪⎨⎧=++=++=++++++)1(1,)1(2)1(2)1(1,2)1(22)1(22)1(1,1)1(12)1(121n n n nn n n n n n n n a x a x a a x a x a a x a x a x(1-2) 其中n i a m a a iji ij ij ,,2)1(1)1( =⋅-=,1,,3,211)1(11+==n j a a m i i由方程(1-1)到(1-2)的过程中,元素11a 起着重要的作用,特别地,把11a 称为主元素。

高斯消去实验报告分析

高斯消去实验报告分析

一、实验背景高斯消去法(Gaussian Elimination)是线性代数中解决线性方程组的重要方法之一。

它通过初等行变换将系数矩阵化为行阶梯形矩阵,从而求解线性方程组。

本实验旨在通过编写程序实现顺序高斯消去法和列主元高斯消去法,并对比分析两种方法的计算效率和精度。

二、实验目的1. 理解高斯消去法的原理和步骤。

2. 编写程序实现顺序高斯消去法和列主元高斯消去法。

3. 比较两种方法的计算效率和精度。

4. 分析高斯消去法的适用范围和局限性。

三、实验内容1. 顺序高斯消去法- 实现顺序高斯消去法,将系数矩阵化为行阶梯形矩阵。

- 求解线性方程组,得到未知数的解。

2. 列主元高斯消去法- 实现列主元高斯消去法,将系数矩阵化为行阶梯形矩阵。

- 求解线性方程组,得到未知数的解。

3. 比较两种方法- 对比两种方法的计算效率和精度。

- 分析两种方法的优缺点。

四、实验步骤1. 编写程序- 使用C/C++、Python等编程语言编写顺序高斯消去法和列主元高斯消去法程序。

- 程序应包含以下功能:- 输入线性方程组的系数矩阵和常数项。

- 实现顺序高斯消去法和列主元高斯消去法。

- 输出求解结果。

2. 测试程序- 使用一组已知线性方程组测试程序的正确性。

- 验证求解结果与精确解是否一致。

3. 比较分析- 使用不同的线性方程组测试两种方法的计算效率和精度。

- 比较两种方法的运行时间、解的精度和误差。

五、实验结果与分析1. 顺序高斯消去法- 计算效率:顺序高斯消去法的时间复杂度为O(n^3),其中n为方程组中未知数的个数。

- 精度:顺序高斯消去法可能会受到舍入误差的影响,导致求解结果与精确解存在一定的误差。

2. 列主元高斯消去法- 计算效率:列主元高斯消去法的时间复杂度同样为O(n^3),但通过选择主元,可以减少舍入误差,提高求解精度。

- 精度:列主元高斯消去法具有更高的精度,求解结果与精确解更接近。

3. 比较分析- 顺序高斯消去法和列主元高斯消去法在计算效率上基本相同,但列主元高斯消去法具有更高的精度。

列主元高斯消去法的实现

列主元高斯消去法的实现

《数值分析课程设计》报告专业:学号:学生姓名:指导教师:一、题目列主元guess消去法求方程的解二、理论列主元高斯消去法是在高斯消去法的基础上而得到的一种比较快速合理的解线性方程组的方法。

它的基本思想是每次在所在列对角线及以下元素中选择绝对值最大的元素作为主元进行消元计算。

使用列主元消去法相对于高斯消去法更能减少舍入误差的影响。

三、方法、算法与程序设计求解Ax=b第一步:写出增广矩阵[A| b];第二步:判断增广矩阵的秩r[A|b]与A的秩r[A]的关系:若r[A|b]= r[A],线性方程组有唯一解;若r[A|b]>r[A],线性方程组没有解;若r[A|b]<r[A],线性方程组有无穷多解;第三步:若|A|≠0,方程组有唯一解法一:求出A-1,x=A-1b法二:利用初等行变换将[A| b]中A化为对角阵计算矩阵行列式:直接调用Det[]函数计算计算矩阵条件数:第一步:求出矩阵的逆矩阵第二步:分别计算矩阵极其逆的无穷范数,一范数和二范数第三步:求解矩阵的条件数Cond(A)∞=||A-1||∞*||A||∞Cond(A)1=||A-1||1*||A||1Cond(A)2=||A-1||2*||A||2=(λmax(A的转置*A)/λmin(A的转置*A))1/2计算机求解第一步:消元对k=1,2,3,……n,进行:步骤1:选主元(第k列中第k个至第n个元素中绝对值较大者)步骤2:将主元所在行与第k行交换步骤3:消元第二步:回代求解流程图如下:k=1,2,……,ni=k+1,k+2,……,nlik =aik/akk得到aikj=k+1,k+2,……,n+1 a ij-a ik*a kj得到a ij三、算例、应用实例用列主元消去法解线性方程组Ax=b⑴ 3.10x1+ 6.03x2+1.99x3=11.27x1+ 4.16x2-1.23x3= 1 ;0.983x1-4.81x2+ 9.34x3=1⑵ 3.00x1+ 6.03x2+ 1.99x3=11.27x1+ 4.16x2-1.23 x3 = 1.0.990x1 -4.81x2+9.34 x3=1分别输出A ,b ,detA,解向量x,⑴中A的条件数。

数值分析3 Gauss消去法

数值分析3 Gauss消去法

§1 Gauss 消去法它是以行初等变换为基础,整理而成的计算机算法。

由它改进和变形得到的高斯选主元消去法及三角分解法,仍然是目前计算机上常用的解低阶稠密矩阵的线性方程组的有效方法。

一、 引例:解方程组:⎪⎩⎪⎨⎧-=-+-=+-=+-4336425294321321321x x x x x x x x x用Matlab 先画出空间三个平面,并找出三平面的交点clear,clf,x=[-9 –9 9 9 -9];y=[-9 9 9 –9 -9];z=5-4*x+9*y;plot3(x,y,z),hold on,grid on z=3-2*x+4*y;plot3(x,y,z) z=-4+x-y;plot3(x,y,z)A=[4 –9 2;2 –4 6;-1 1 –3];b=[5 3 –4]';x=A\b; plot3(x(1),x(2),x(3),'r*')解:方程组的增广矩阵是[]⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----=431136425294b A消元运算:[]⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--−−−→−⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----−−→−-----5.110005.055.00529475.25.225.105.055.0052942313125.025.14142r r r r r r b A回代求解:0.15,1.5/103-=-=x [],5.25.0/)15.0(55.0x 2=-⨯-=95.64/)15.025.295(x 1=⨯+⨯+=。

【注】Gauss 消元的基本思想:用初等行变换方法化一般的方程组为上三角方程组,然后求解;Gauss 消去法步骤:先消元计算,再回代求解二、Gauss 消去法设n阶线性代数方程组为Ax=b (1)其中系数矩阵A(n 阶非奇异矩阵)和右端列向量b 分别为A=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡nn n n n n a a a a a a a a a 212222111211 , b=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡n b b b 21 (一)上三角方程组的回代求解:⎪⎪⎩⎪⎪⎨⎧==++=+++n n nn n n n n b x u b x u x u b x u x u x u 2222211212111 ………………(2) 假设u ii ≠0(i=1,2,…,n ),则回代解得:⎪⎩⎪⎨⎧-==∑+=ii ni j j ij i innn n u x u b x u b x /)(/11,2,2,1 --=n n i ………………(3) (二)GAUSS消元过程:(行变换)记方程组(1)为⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++)1()1(2)1(21)1(1)1(2)1(22)1(221)1(21)1(1)1(12)1(121)1(11nn nn n n n n n n b x a xa x ab x a x a x a b x a x a x a (4)对应的增广矩阵为[]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)1()1()1(2)1(1)1(2)1(2)1(22)1(21)1(1)1(1)1(12)1(11)1()1(,n nn n n nn b a a a b a a a b a a a bA…………………(5) 第一轮消元:若)1(11a ≠0,利用)1(11a 消下面的)1(1i a (i=2,3,…n), 消元因子:)1(11)1(11/a a l i i = (i=2,3,…n)[]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)2()2()2(2)2(2)2(2)2(22)1(1)1(1)1(12)1(11)2()2(00,n nn n nnb a a b a a b a a a bA………………(6) 其中)1(11)1()2(j i ij ij a l a a -= n j i ,,3,2, =)1(11)1()2(b l b b i i i -= n i ,,3,2 = (7)第二轮消元:若0)2(22≠a ,用第i 行减去第二行的)2(22)2(22/a a l i i =(i=3,4,…n)倍,得到[]⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)3()3()3(3)3(3)3(3)3(33)2(2)2(2)2(23)2(22)1(1)1(1)1(13)1(12)1(11)3()3(00000,n nnn nn nb a a b a a b a a a b a a a a b A……………(8) 其中n j i b l b b a l a a i i ij i ij ij ,,4,3,,,)2(22)2()3()2(22)2()3( =-=-= …………(9) 已进行k-1轮消元后,得[]⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=)()()()()()()2(2)2(2)2(2)2(22)1(1)1(1)1(1)1(12)1(11)()(,k n k nnk nk k k k knk kk nkn k k K b a a b a a b a a a b a a a a b A……………(10) 第k 轮消元:若)(k kk a ≠0,用第i 行元素减去第k 行元素的)()(/k kk k ik ik a a l = (i=k+1,k+2,…,n)倍,得[]⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=++++++++++++++++)1()1()1(111)1(1)1(11)()()(1)()2(2)2(2)2(12)2(2)2(22)1(1)1(1)1(11)1(1)1(12)1(11)1()1(,k n k nnk nk k k k nk k k k k k kn knk kk k kknk kn k kk K b a a b a a b a a a b a a a a b a a a a a b A…(11) 其中⎪⎩⎪⎨⎧-=-=++,)()()1()()()1(k k ik k i k ik kjik k ij k ij b l b b a l a a ,,,1,n k j i += (12)最后,得[]⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=)()()2(2)2(2)2(22)1(1)1(1)1(12)1(11)()(,n n n nnnnn n b a b a a b a a a bA消元过程:[][][][])()()()()2()2()1()1(,,,,n n k k b A b A b A b A−→−−→−−→−−→−−→− (三)算法公式消元公式:对k=1,2,…,n-1若)(k kk a ≠0 )()(/k kk k ik ik a a l =⎪⎩⎪⎨⎧-=-=++,)()()1()()()1(k k ik k i k ik kj ik k ij k ij b l b b a l a a ,,,1,n k j i +=回代公式:)(n nn a ≠0⎪⎩⎪⎨⎧-==∑+=)(1)()()()(/)(/i ii n i j j i ij i i in nn n n n a x a b x a b x1,2,2,1 --=n n i三、GAUSS 消去法得以实现的前提(可行性分析)1、0a )()2(22(1)11≠n nn a a 或 2、,0,,0,,0,02122221112112221121111≠≠=≠≠A a a a aa a a a a D a a a a a kkk k k kk (13)这是因为:⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡→⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡)()2(2)2(22)1(1)1(12)1(11212222111211k kk n k kk k k k k a a a a a a a a a a a a a a a 行变换 k i a D n k i ii k ,,2,1,0,0,,,2,1)( =≠≠=则有若令【如】对称正定矩阵、严格对角占优矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡632351214 ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-103131021310四、Gauss 消去法的运算量消元过程乘法:[])1(31)()1(211-=-⨯+-∑-=n n k n k n n k 除法:)1(2)(11-=-∑-=n nk n n k 回代过程乘除法总运算量:),1(221+=+++n nnGauss 消去法的总运算量为:3)3(31)1(2)1(2)1(313232n n n n n n n n n n ≈-+=++-+- 对比克莱姆法则的总运算量为(n+1)!【注】对比:当n=10时,克莱姆法则(n+1)!=39916800,而Gauss 消去法,运算430次五、算法及例子步1,定义数组A,B,x ; 步2,输入A,B,Eps ;步3,对k=1到n-1进行消元:⎪⎩⎪⎨⎧++=-⇐>-⇐n k k j i a b a b b Eps a a a a a a kkk ik i i kk kk kj ik ij ij ,,2,1,/,,/ 步4,nn n n a b x /=;对i=n-1到1回代解ij ni j j iji i a x ab x /)(1∑+=-=步5,输出n i x i ,,2,1, =; 步6,结束。

线性代数高斯消元法

线性代数高斯消元法

线性代数高斯消元法
线性代数高斯消元法是一种用于解决线性方程组的数学方法,它可以将复杂的线性方程组转换为一系列简单的步骤,从而解决线性方程组的问题。

线性代数高斯消元法是一种基于矩阵的数学方法,它可以将复杂的线性方程组转换为一系列简单的步骤,从而解决线性方
程组的问题。

线性代数高斯消元法的基本思想是将线性方程组转换为一个矩阵,然后通过消元法将矩阵转换为上三角矩阵,最后通过回代法求解线性方程组的解。

线性代数高斯消元法的步骤包括:首先,将线性方程组转换为矩阵形式;其次,将矩阵进行消元,使其变为上三角矩阵;最后,通过回代法求解线性方程组的解。

线性代数高斯消元法的优点是它可以将复杂的线性方程组转换为一系列简单的步骤,从而解决线性方程组的问题。

另外,它还可以用于解决多元一次方程组的问题,而且它的计算
效率也很高。

线性代数高斯消元法在许多领域都有广泛的应用,如统计学、机器学习、经济学、工程学等。

它可以用于解决多元一次方程组的问题,也可以用于解决多元非线性方程组的问题。

总之,线性代数高斯消元法是一种非常有用的数学方法,它可以将复杂的线性方程组转换为一系列简单的步骤,从而解决线性方程组的问题。

它在许多领域都有广泛的应用,而且它的计算效率也很高,因此它是一种非常有用的数学方法。

高斯顺序消去法的条件 -回复

高斯顺序消去法的条件 -回复

高斯顺序消去法的条件-回复高斯顺序消去法(Gaussian elimination)是一种数值线性代数方法,用于求解线性方程组。

它的基本思想是通过一系列行变换将线性方程组化简为上三角形式,然后通过回代求解得到方程组的解。

在使用高斯顺序消去法求解线性方程组之前,我们需要满足一些条件。

下面一步一步介绍这些条件:1. 方程组的个数和未知数的个数相等高斯顺序消去法只能求解个数和未知数个数相等的线性方程组。

这是因为高斯顺序消去法的过程涉及到行变换,行变换后方程的形式会发生变化,只有个数和未知数个数相等时,才能确保对应关系的完整性。

2. 方程组中没有无解或无穷解的情况高斯顺序消去法只适用于有唯一解的线性方程组。

如果方程组中存在无解或无穷解的情况,高斯顺序消去法将无法进行下去。

因此,在使用高斯顺序消去法之前,我们需要确保方程组是可解的。

3. 方程组中的系数矩阵是非奇异的高斯顺序消去法要求方程组的系数矩阵是非奇异的,也就是说,它的行列式不为零。

如果系数矩阵是奇异的,那么高斯顺序消去法会出现除以零的情况,从而导致计算错误。

因此,在应用高斯顺序消去法之前,我们需要检查系数矩阵的行列式是否为零。

4. 排列矩阵的对角元素非零高斯顺序消去法还需要保证排列矩阵(P矩阵)的对角元素非零。

排列矩阵是用于记录行变换的操作,并且在高斯顺序消去法中起到重要的作用。

如果排列矩阵的对角元素为零,将导致行变换时除以零,从而产生错误的计算结果。

因此,在使用高斯顺序消去法之前,我们需要确保排列矩阵的对角元素非零。

在满足以上条件的前提下,我们可以开始使用高斯顺序消去法求解线性方程组。

首先,我们将线性方程组的系数矩阵和常数向量构成增广矩阵(A B),然后应用一系列行变换将增广矩阵化简为上三角形式。

具体的高斯顺序消去法的步骤如下:1. 找出系数矩阵中的主元素,即第一列中绝对值最大的元素。

将该元素所在行与第一行交换,确保主元素在第一行。

2. 利用主元素进行消元。

求解线性方程组的高斯消去法的研究及实现

求解线性方程组的高斯消去法的研究及实现

求解线性方程组的高斯消去法的研究及实现(1)题目的复述;高斯消去法(Gauss elimination method)是求解线性方程组的基本方法,各种直接解法基本上都是高斯消去法的变形,或者针对特殊矩阵的改进。

本文将简单分析用高斯消去法求解线性方程组的基本思想及其实现。

(2) 问题的分析;在科学研究和生产实践中,许多实际问题往往涉及到解线性方程组。

因此,对线性方程组的研究具有十分重要的意义。

线性方程组的数值解法一般有两类:1、直接法:就是经过有限步算术运算,可求得方程组精确解的方法(若计算过程中没有舍入误差),高斯消去法就是直接法中具有代表性的算法。

2、迭代法: 就是用某种极限过程去逐步逼近线性方程组的精确解的方法。

也就是从解的某个近似值出发,通过构造一个无穷序列去逼近精确解的方法。

(一般有限步内得不到精确解)高斯消去法解方程组基本思想是设法消去方程组的系数矩阵A 的主对角线下的元素,而将Ax=b 化为等价的上三角形方程组,然后再通过回代过程便可获得方程组的解。

换一种说法就是用矩阵行的初等变换将原方程组系数矩阵化为上三角形矩阵,而以上三角形矩阵为系数的方程组的求解比较简单,可以从最后一个方程开始,依次向前代入求出未知变量n x ,1-n x ...1x 。

通过一个方程乘或除以某个常数,以及将两个方程相加减,逐步减少方程中的变元数,最终将方程组化成上三角方程组,一般将这一过程称为消元,然后再回代求解。

(3)算法的建立和描述;高斯消去法算法构造 :我们知道,齐次线性方程组用矩阵形式表示为⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡n n nn n n n n b b b x x x a a a a a a a a a (21212122221)11211 消元过程:设0)0(11≠a ,令乘数)0(11)0(11/a a m i i -=,做(消去第i 个方程组的i x )操作1i m ×第1个方程+第i 个方程(i=2,3,.....n )则第i 个方程变为1)1(2)1(2...i n in i b x a x a =++这样消去第2,3,。

高斯消去法

高斯消去法

第 k 步:消去第 k 列 高斯消去法 (k) (k) (k) 设 akk 0,计算 mik aik akk
(i k 1, ..., n)
( ( ( 计算 aijk 1) aijk ) mik akjk ) ( bi( k 1) bi( k ) mik bkk ) ( i = k+1, …, n )
m21 a21 / a11 109 Gauss消去法:
9个 a22 1 m21 1 0.0...0 1 1010 0.10...0 1010 小主元 可1010 0.10... 0 能导致计 10 10 10 b2 2 m21 1 0.0...02 10 0.10...0 10 0.10... 0 10 算失败。
(k ) b
b1( k ) ( bkk ) , (k ) bn
第k步计算步骤: 即确定i k 使 a i ,k max a ik ; 消元: (1)按列选主元: k in 当 (2)换行: ik k时,交换( A, b )第k行与第ik 行元素; (3)消元计算:
b1(1) b ,即 a (1) a , b (1) b 。 (1) ij ij i i b n
A
b
(i, j 2, ..., n)
第二步:消去第二列 (2) (2) (2) 设 a22 0 ,计算 mi 2 ai 2 a22 (i 3, ..., n) 依次将上述矩阵的 第 i 行 + mi2 第 2 行,得
( (n 回代求解: xn bnn) ann)
xi bi( i )
(
j i 1

数值分析5-2(高斯消去法)

数值分析5-2(高斯消去法)

M M ... (3) xn bn (3) ann

( 1 0 ... 0 x1 b1n) 0 1 ... 0 x b(n) • 2 = 2 O M M 0 0 ... 1 x (n) n bn
高斯-约当消去法的应用 高斯 约当消去法的应用
1.同时求解系数矩阵相同的多个方程组 同时求解系数矩阵相同的多个方程组 用高斯-约当消去法求解两个方程 例 用高斯 约当消去法求解两个方程 组 AX=b1 和AX=b2 ,其中
3 4 6 2 4 5 A= 1 2 3
3 b1 = 4 1
(1 a11) ≠ 0
第一次 消元
(2 a22) ≠ 0
(2 (2 ( 1 a12) ... a1n) x1 b12) b(2) (2) (2) 0 a22 ... a2n x2 2 • = ... M M (2) (2) (2) 0 an2 ... ann xn bn
1 1 1 A = 0 4 − 1 2 − 2 1 1 0 0 1 1 1 ∆ = 0 1 0 • 0 4 − 1 = LU ห้องสมุดไป่ตู้ 2 − 1 1 0 0 − 2
则求解原方程组可转化为如下两个三角形方 程组: 程组:
第五章 解线性方程组的直接法 §2 高斯消去法
一、高斯消去法 二、矩阵的三角分解 三、高斯消去法的计算量 四、高斯—约当消去法 高斯 约当消去法
一、高斯消去法
1. 高斯消去法的基本思想 举例 用消去法解方程组
基本思想:用逐次消去未知数的方法把 x1 + x2 + x3 = 6

求线性方程组的高斯消元法

求线性方程组的高斯消元法

求线性方程组的高斯消元法一、功能用全选主元高斯(Gauss)消去法求解n 阶线性代数方程组AX B =。

其中00010,110111,11,01,11,1n n n n n n a a a a a a A a a a ------⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦,011n x x X x -⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦ ,012b b B b ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦ 二、方法说明为保证数值计算的稳定性,本函数采用全选主元。

全选主元高斯消去法分两步进行。

第一步 消去过程 对于k 从0到2n -作一下三步:(1)从系数矩阵A 的第k 行、第k 列开始的右下角子阵中选取绝对值最大的元素,并通过行交换和列交换将它换到主元素的位置上。

(2)归一化/,1,,k j k k k j a a a j k n⇒=+- /k k k kb a b⇒ (3)消去,,1,,i j i k k j i j a a a a i j k n -⇒=+- ,i i k k i b a b b -⇒ 1,,1i k n =+-第二步 回代过程 (1)11,11/n n n n b a x ----⇒ (2)11,2,,1,0n i ijji j i b a xx i n -=+-⇒=-∑最后对解向量中的元素顺序进行调整。

三、函数语句 int agaus(a,b,n)本函数返回一个整型标志值。

若返回的标志值为0,则表示原方程组的系数矩阵奇异,输出信息“fail ”;。

若返回的标志值不为0,则表示正常返回。

四、形参说明a —双精度实型二维数组,体积为n n ⨯。

存放方程组的系数矩阵,返回时将被破坏。

b —双精度实型一维数组,长度为n 。

存放方程组右端的常数向量;返回方程组的解向量。

n —整型变量。

存放方程组的阶数。

五、函数程序(文件名:agaus.c) 六、例求解下列4阶方程组01230123012301230.23680.24710.25681.26711.84710.19680.20711.21680.22711.74710.15811.16750.17680.18711.64711.11610.12540.13970.14901.547x x x x x x x x x x x x x x x x +++=⎧⎪+++=⎪⎨+++=⎪⎪+++=⎩主函数程序(文件名:agaus0.c)如下: #include "stdio.h"#include "math.h" #include "agaus.c" main() { int i;static double a[4][4]={ {0.0,0.2471,0.2568,1.2671}, {0.1968,0.2071,1.2168,0.2271}, {0.1581,1.1675,0.1768,0.1871}, {1.1161,0.1254,0.1397,0.1490} }; static double b[4]={1.8471,1.7471,1.6471,1.5471};a[0][0]=sin(15.0/180.0*3.14);if (agaus(a,b,4)!=0) for (i=0;i<=3;i++)printf("x(%d)=%e\n",i,b[i]); }运行结果为:x(0)=1.04058e+00x(1)=9.87051e-01x(2)=9.35040e-01x(3)=8.81282e-01。

高斯消去法的理论总结与应用——课程设计 精品

高斯消去法的理论总结与应用——课程设计 精品

课程设计说明书题 目:高斯消去法的理论总结与应用 学生姓名学 院:理学院 班 级:信计10-2 指导教师:2013年 1月 11日摘要当今很多科学与工程计算问题都可以化为线性方程组的形式,所以有效地求解线性方程组在科学和工程计算中是非常重要的.直接法是经过有限步算术运算,若没有舍入误差可求得方程组精确解的方法.由于实际计算过程中总存在着舍入误差,因此,用直接法得到的结果并不是准确的.直接法中最基本的方法是高斯消去法,矩阵三角分解法等.本文主要研究高斯消去法.高斯消去法是反复运用消元与回代两个过程.将增广矩阵变成行阶梯型矩阵,使方程组变成同解的上三角方程组,然后再自下而上对上三角方程组求解.高斯消去法包括顺序高斯消去法、列主元高斯消去法、高斯约当消去法等,是求解线性方程组的重要方法.文中分别编写顺序高斯消去法、列主元高斯消去法C语言程序,并结合实际的例子运行程序,最后对结果进行比较分析.关键词求解线性方程组;顺序高斯消去法;列主元高斯消去法;高斯-约当消去法;C语言编程AbstractToday a lot of science and engineering calculation problem can be turned into the form of linear equations, so effective in solving linear equations is very important in the calculation of science and engineering.Direct method is limited step arithmetic operations, if there is no rounding error method of equations exact solutions can be obtained. As always there is a rounding error in the process of calculation, thus, the results by the direct method is not accurate. The direct method is the most basic methods in gaussian elimination method, matrix triangle decomposition method, etc.This paper mainly studies the gaussian elimination method. Gauss elimination method is repeated use of elimination and go back two process. Will be augmented matrix into line when matrix, the equations into a triangle on the same solution of the equations, and then bottom-up on triangle equation. Gauss elimination method including sequence gauss elimination method, listed the main yuan gaussian elimination method, gaussian about when expunction method and so on, is an important method of solving linear equations.The paper write order gaussian elimination method, principal component gaussian elimination method C language program, and combining with actual examples of the application, the comparative analysis of the results. Key words Sequential gaussian elimination method; List the yuan gaussian elimination method; Gauss - about when expunction method; C language programming目录引言 (1)第一章高斯消去法 (2)§1.1 高斯消去法 (2)§1.1.1 初等矩阵的变换 (2)§1.1.2 基本思想 (3)§1.1.3 高斯消去法的算法描述 (4)§1.1.4 高斯消去法的计算量 (4)§1.2 高斯列主元消去法 (5)§1.2.1简单介绍 (5)§1.2.2 基本思想 (5)§1.2.3 算法描述 (6)§1.3 其他的高斯消去法 (6)§1.3.1 高斯全主元消去法 (6)§1.3.2 高斯-约当消去法 (6)第二章高斯消去法的应用 (8)§2.1 高斯消去法的应用 (8)§2.1.1 顺序高斯消去法的应用举例 (8)§2.1.2 高斯列主元消去法的应用举例 (9)§2.1.3 高斯-约当消去法的应用举例 (10)参考文献 (12)附录A (13)附录B (16)引言直接法就是经过有限步算术运算,若计算过程中没有舍入误差可求得方程组精确解的方法.本文最主要的就是研究解线性方程组的一种直接法,即高斯消去法的理论知识及其应用.对于n 阶线性方程组(1)的问题,方程组的系数和右端项均为实数,且不全为零,方程组简记为Ax=b,其中(2)(3)高斯消去法,又称高斯消元法,实际上就是我们俗称的加减消元法.数学上,高斯消去法或称高斯-约当消去法,由高斯和约当得名(很多人将高斯消去作为完整的高斯-约当消去的前半部分),它是线性代数中的一个算法,用于决定线性方程组的解.高斯消去法的基本思想是将增广矩阵利用线性方程组初等变换中的一种变换,变成行阶梯形矩阵,使方程组变成同解的上三角方程组,然后再自下而上对上三角方程组求解.⎪⎪⎩⎪⎪⎨⎧=+++=+++=+++nn nn n n n n n n b x a x a x a b x a x a x a b x a x a a 22112222212*********x ⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=nn 2n n1n 222211n 1211a a a a a a a a a A ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=n b b 21n 21b b ,x x x x第一章 高斯消去法§1.1高斯消去法§1.1.1 初等矩阵的变换定义1.1 初等矩阵对应着3种不同的行/列变换. ○1互换行/列: j i R R ↔ 这一变换 ij T ,将一单位矩阵的第 i 行的所有元素与第 j 行互换.⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=101101T ij○2把某行/列乘以一非零常数:,i i R kR →其中k ≠0 这一变换 T i (m),将第 i 行的所有元素乘以一非零常数 m.○3把第 i 行(列)加上第 j 行(列)的 k 倍:ij i R kR R →+ 这一变换 T ij (m),将第 i 行加上第 j 行的 k 倍.⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=11m 11m T i )(解线性方程组的直接法多数是以上述变换为基础的,其中高斯消去法就是反复运用上述运算,通过消元与回代过程,计算得该上三角形方程组的解就是原方程组的解.§1.1.2基本思想高斯消去法的基本思想是将增广矩阵利用线性方程组初等变换中的一种变换,变成行阶梯形矩阵,使方程组变成同解的上三角方程组,然后再自下而上对上三角方程组求解.以顺序高斯消去法为例对于n 阶线性方程组(1),可以简单记为Ax=b ,其中增广矩阵B=[]b A ,高斯消去法包括消元与回代过程,消元过程实际上是把B 通过有限步的初等行变换,最终化成上三角阵,图示如下:回代过程是自下而上求解上三角方程组⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡−−→−⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−→−⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=**00**00***0******0**0************B第二步第一步⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡−−→−−−→−-******1 步第第三步n ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡↑***********⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=11m 11m T ij )(§1.1.3 高斯消去法的算法描述Step1 输入方程组的阶数n ,方程组系数矩阵A=(ij a ),常数项b=(i b ); Step2 for k:=1 to n{ for i:=k+1 to n {计算乘子ik kkikik a a a m →= for j:=k+1 to n {消元计算(kj ij m -a a ik ij a → },(k ik i b m -b )i b →} }Step3 for i:=n to 1 { 回代求解 }Step4 输出方程组的解i x ,i=1,2,3,…,n上述过程实现的条件是A 的各阶顺序主子式,0k ≠∆k=1,2,…,n.§1.1.4 高斯消去法的计算量定理1.1 高斯消去法求解n 阶线性方程组共需要乘除法次数近似为3n 31.在消元过程中,第k 次消元需要n-k 次除法,(n-k )(n-k+1)次乘法和(n-k )(n-k+1)次加减法,因此消元过程计算量为 除法次数 )()(1-n n 21k -n 1-n 1k =∑= 乘法次数 )()()(1-n n 311k -n k -n 21-n 1k =+∑= 加减法次数 )()()(1-n n 311k -n k -n 21-n 1k =+∑= 在回代过程中,计算i x ,需要1次除法,n-i 次乘法和n-i 次加减法,因此回代过程计算量为除法次数 n 乘法次数 )()(1-n n 21i -n n1i =∑= 加减法次数 )()(1-n n 21i -n n 1i =∑= iin1i j ij i i a x a b x ⎪⎪⎭⎫⎝⎛-=∑+=j§1.2高斯列主元消去法§1.2.1简单介绍以上介绍的高斯消去法,消元变换是依照原方程组中方程未知元的既定排列顺序逐次进行的,不妨称之为按自然顺序消元,尽管方程组系数矩阵非奇异是方程组有唯一解的充分必要条件,但是不能保证各主元素皆不为零,所以按自然顺序消元不总是可行的.如果主元素)(k kk a 与第k 列对角线下方元素)()()(,,k k n k k 2k k k 1k a a a ++相比,)(k kk a 的绝对值甚小(此时成为小主元),势必导致消元因子绝对值甚大,从而使误差在传播中失去控制,要想获得可靠计算结果是不可能的.为了避免按自然顺序消元的上述弊病,可以采用选主元措施,即所谓的高斯列主元消去法.§1.2.2 基本思想为了使消元过程不至于中断和减小舍入误差的影响,我们不按自然顺序进行消元,就是说,不逐次选取主对角元素作主元,假设已经进行了k-1次消元,得方程组)()(k k b x A =增广矩阵[]⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡=++++)()()()()()()()()()()()()()()()(k 1n n k nn k nk k 1n k k kn k kk 1n 22n22k 222211n 11n 11k 1112111k k a a a a a a a a a a a a a a a b A , 比较)(k A 中第k 列对角元及其下方元素)(k kk a ,)()()(,,k k n k k 2k k k 1k a a a ++ 若)()(k k i ni k k k r a max a ≤≤=则取)(k k r a 作主元,并且在进行第k 步消元之前交换矩阵的第k 行与第r 行,可能有若干个不同的i 值使)(1-k ika 为最大值,则取r 为这些i 值中的最小者,经过这样修改的消元法称为高斯列主元消元法.§1.2.3 算法描述Step1 输入方程组的阶数;增广矩阵[]b A , Step2 对k=1,2,…,n 做如下步骤3-6 Step3 选主元;求k i 使ik ni k k ik a max a ≤≤=,Step4 若k ik a ,=0,停机Step5 若k i k ≠,则j ik kj ik kj a t a a t a ,;;→→→(交换增广矩阵的第k i 行与第k 行)Step6 ik kk ik ik a a a l →=Step7 对j=k+1,…,n+1,ij kj ik a a →a -a ij Step8 n nn n n x a a →+1,Step9 对k=n-1,…,1,k kk n 1k j j kj 1n k x a x a -a →⎪⎪⎭⎫⎝⎛∑+=+,Step10 输出解(n 21x x x ,,, )§1.3 其他的高斯消去法§1.3.1高斯全主元消去法应用高斯列或行主元消去法解一个线性方程组时,在消元过程中选取主元后作行或列交换不会改变前面各步消为零的元素的分布情况.据此,在消元过程的第k 步,我们可以从系数矩阵的最后n-k+1行和列中选取绝对值最大的元素作主元,即若)(,)(,1-k ijnj i k 1-k jk ik a max a ≤≤=, 则选取)(,1-k jk ik a 作主元并且在消元之前交换增广矩阵的第k 行与第k i 行,以及第k列与第k j 列,经过这样修改的高斯消去法称为高斯全主元消去法.§1.3.2 高斯-约当消元法解线性方程组的高斯-约当消去法实际上是无回代过程的高斯消去法.为了不进行回代过程,只要在消元过程的每一步将主列中除主元以外的其余元素均消去为零.在实际计算中,第k 步消元之前不必将主元交换到(k ,k )位置上,可以根据每一步选取的主元所在位置找出方程组的解.容易推出高斯-约当的计算公式.我们将方程组的右端项记作1n i a +,,i=1,2,…,n,并设第k 步选取的主元为)(,1-k k ik a ,则在消元过程中有n 2,1k 1n n k j a a 1n n 1k j n 1,2i a m -a a i i 2,1i 0a i i n 2,1i a a m 1-k j ik k j ik 1-k j ik ik 1-k ij k ij k k ik k 1-k k ik 1-k ikik ,,,,,,,,,,,,,,,,,,)(,)(,)(,)()()()(,)( =⎪⎪⎪⎭⎪⎪⎪⎬⎫+==++===≠==≠== 其中1n 2,1j n 2,1i a a ij 0ij +=== ,,,,,)(. 方程组的解为n 2,1k a a x k k ik n 1n ik k ,,,)(,)(, ==+.第二章 高斯消去法的应用§2.1高斯消去法的应用§2.1.1顺序高斯消去法的应用举例下面以一个简单的例子来说顺序高斯消去法在解线性方程组方面的应用. 例2.1考虑三阶方程组⎪⎩⎪⎨⎧=+=++=+7x 2x 4x 5x 2x 41x 3x -x 221321321 及其增广矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡70214524131-2 消元过程的第一步是第一个方程不动;确定第2,3个方程的系数,即将第2,3个方程1x 项系数除以第一个方程1x 项系数,得到乘数 5.021m 224m 3121====,用第2,3个方程减去其乘数3121m m ,乘以第1个方程,这样就消去了第2,3个方程的1x 项,于是有等价方程组⎪⎩⎪⎨⎧===+5.6x 5.1-2.5x 2x -x 41x 3x -x 23232321 相应的,增广矩阵化为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--5.65.15.2214131-2 消元过程的第二步是第1,2个方程不动;确定第3个方程的乘数,即将第3个方程2x 项系数除以第二个方程2x 项系数,得到乘数625.045.2m 32==用第3个方程减去其乘数31m 乘以第2个方程,这样就消去了第三个方程的2x 项,于是有等价方程组⎪⎩⎪⎨⎧===+25.50.875x -2x -x 41x 3x -x 2332321 相应的,增广矩阵化为⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--25.5875.0214131-2 这样,消元过程就把原方程组化为上三角形方程组,系数矩阵成为上三角矩阵. 回代过程是将上三角形方程组自下而上求解,从而得出9x 1-x 6-x 123===,,其上机程序见附录A.§2.1.2 高斯列主元消去法的应用举例线性方程组只要系数矩阵非奇异,就存在唯一解,但是按顺序消元过程中可能出现)(k kk a =0,这是尽管系数矩阵非奇异,消元过程无法再进行,或者即使0a k kk ≠)(,但如果其绝对值很小,用它作除数也会导致其他元素的数量级急剧增大和舍入误差扩大,将严重影响计算结果.下面以一个例子来说明.例2.2 考虑线性方程组取五位有效数字时,有⎩⎨⎧=+=+0000.1x 0000.1x 0000.10001.2x 0000.3x 0003.02121 用顺序高斯消去法求解时,确定乘数3.33330003.00000.1a a m 112121===消去第二个方程的1x 有⎩⎨⎧-=-=+0.66660.99990001.20000.30003.0221x x x 回代求解得.0,6667.012==x x方程组的解是,6667.0,3333.021==x x 可见用顺序消去法得出的解1x 误差较大,原因是用绝对值小的数0.0003作除数,使误差扩大.当交换方程顺序时,有确定乘数进行消元回代求解得3333.0x 6667.0x 12==,这个结果与准确解非常接近,这是由于在确定乘数时使用了绝对值相对较大的数作除数.为避免在消元过程确定乘数时所用除数是零或绝对值小的数,即零主元或小主元,在每一次消元之前,要增加一个选主元的过程,将绝对值大的元素交换到主对角线的位置上来.其上机程序见附录B.§2.1.3 高斯-约当消去法的应用举例○1考虑下面的方程组 ⎪⎩⎪⎨⎧=+=+=+4-x 3-x x -3x 6x 4-x 25x 2x 9-x 4321321321 增广矩阵第一次消元,主元素)(111a =4,由计算公式算出消元因子5.0l 21=,25.0-l 31=,算出新元素)()()()()()(,,,,,234233232224223222a a a a a a ,得增广矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----75.25.225.105.055.005294 第二次消元,主元素5.0a 222=)(,由公式算出消元因子5.2l 18l 3212-=-=,,算出新元素)()()()(,,,334333314313a a a a ,得增广矩阵⎩⎨⎧=+=+0001.2x 0000.3x 0003.00000.1x 0000.1x 0000.121210000.10003.0m 21=⎩⎨⎧==+9998.12.9997x 0000.1x 0000.1x 0000.1221⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-----431136425294⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-5.110005.055.00149204 第三次消元,主元素10a 333=)(,由计算公式算出消元因子5.0l 2.9l 2313==,算出新元素)()(,424414a a ,得增广矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-5.1100025.105.008.27004 于是方程组的解为15.0x 5.2x 95.6x 321-===,,○2考虑下列方程组 ⎪⎩⎪⎨⎧-=++-=++=++7x 5x 4x 21x 7x 7x 43x 3x 2x 2321321321 其相应增广矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡7-542-17742222 消元过程如下:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−→−⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡−−→−⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−→−⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡66006-030400266005-130********-8605-13033227-542-17742222第三次第二次第一次不需回代,由此可求出1x 2-x 2x 321===,,当高斯-约当消去法消元的每一步都先用主元除其所在行的各元素时,方程组便可化为⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡)()()(n n n 2n 1n 21b b b x x x 111 这时等号右端即为方程组的解.参考文献[1]马东升. 数值计算方法[M].北京:机械工业出版社.2006年[2]林成森. 数值计算方法[M].北京:科学出版社.2007[3]徐士良.数值分析与算法[M].北京:机械工业出版社.2007年[4]李庆扬. 数值分析[M].北京:清华大学出版社.2008年[5]杨凤翔. 数值分析[M].天津:天津大学出版社.1996年[5]杨泮池. 计算方法[M].西安:西安交通大学出版社.2006年附录A 顺序高斯消去法C语言编程顺序高斯消去法的C语言程序#include<stdio.h>#include<math.h>#define N 30main(){int i,k,j,n;float sum,a[N+1][N+1],b[N+1],m[N+1][N+1],x[N+1];printf("********Gauss顺序消元法求解线性方程组实验******\n"); printf("输入方程的个数n=");scanf("%d",&n);printf("输入系数矩阵A:\n");for(k=1;k<n+1;k++)for(i=1;i<n+1;i++)scanf("%f",&a[k][i]);printf("\n");printf("输入常数项b:\n");for(i=1;i<n+1;i++)scanf("%f",&b[i]);printf("\n");printf("输入的系数矩阵A:\n");for(k=1;k<n+1;k++){printf("[ ");for(i=1;i<n+1;i++)printf("%+7f ",a[k][i]);printf("]");printf("\n");}printf("\n");printf("输入的常数项b:\n");printf("[ ");for(k=1;k<n+1;k++)printf("%+7f ",b[k]);printf("]");printf("\n");for(k=1;k<n;k++){for(i=k+1;i<n+1;i++){m[i][k]=a[i][k]/a[k][k];for(j=k;j<n+1;j++)a[i][j]=a[i][j]-m[i][k]*a[k][j];b[i]=b[i]-m[i][k]*b[k];}}printf("\n");printf("\n");printf("消元后的系数矩阵A为:\n");for(k=1;k<n+1;k++){printf("[ ");for(i=1;i<n+1;i++)printf("%+7f ",a[k][i]);printf("]");printf("\n");}printf("\n");printf("消元后的常数项b:\n");printf("[ ");for(i=1;i<n+1;i++)printf("%+7f ",b[i]);printf("]");printf("\n");for(i=n;i>0;i--){sum=0;for(j=i+1;j<n+1;j++)sum+=a[i][j]*x[j];x[i]=(b[i]-sum)/a[i][i];}printf("\n");printf("求得的结果x为:\n");for(i=1;i<n+1;i++)printf("x[%d]=%+7f ",i,x[i]);printf("\n");}图1 顺序高斯消去法附录B 高斯列主元消去法C语言编程高斯列主元消去法C语言程序#include<stdio.h>#include<math.h>int main(void){float A[2][2]={{0.0003,3.0000},{1.0000,1.0000},};float b[2]={2.0001,1.0000};float x[2]={0};float Aik,S,temp;int i,j,k;float max;//列主元的绝对值int col;//列主元所在的行int size=2;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");//-------消去过程---------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];}//solutionprintf("The solution x[]=\n");for(i=0;i<size;i++)printf("%f ",x[i]);return 0;}图2 高斯列主元消去法。

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

数值线性代数课程设计 线性方程组的直接解法数理学院 09405011班 0940501120 沈骁 摘要:如何利用电子计算机来快速、有效的求解线性方程组的问题是数值线性代数的核心问题。

本文将主要介绍解线性方程组的基本的直接法——高斯消去法,平方根法,并用实例来验证此方法的有效性。

关键字:高斯消去法,顺序消去法,选主元消去法,平方根法,消元过程,回代过程,主元数和乘数引言:因为各种各样的科学与工程问题往往最终都要归结为一个线性方程组的求解问题。

本文在比较着几个方法的基础上,通过一道实例来得到最方便最有效的方法。

基本原理:工程计算和科学研究中的许多问题,最终归结为线性代数方程组的求解。

求解的方法也有很多,如高斯消去法(顺序消去法,选主元消去法),平方根法。

高斯消去法是目前求解中小规模线性方程组最常用的方法;平方根法是求解对称正定线性方程组最常用的方法之一。

为了更快速、更方便的求解线性方程组,下面我们比较一下这几种方法哪种更好。

一、高斯(Causs )消去法就是逐步消去变元的系数,将原方程组Ax b =化为系数矩阵为三角形的等价方程组Ux d =,然后求解系数矩阵为三角形的方程组而得出原方程组解的方法。

把逐步消元去变元的系数,将方程组化为以系数矩阵为三角形的等价方程组的过程称为小院过程;把求系数矩阵为三角形的方程组解的过程称为回代过程。

最初求解方程组的高斯消去法也称为顺序消去法,它由消元过程和回代过程组成。

顺序消去法 1. 消元过程考虑一般方程组,为了推导过程方便,记系数矩阵A 的元素ij a 为(0)ij a ,右端向量b 的元素i b 记为(0),1i n a +,于是方程组11112211211222221122n n n n n n nn n na x a x a xb a x a x a x b a x a x a x b +++=⎧⎪+++=⎪⎨⎪⎪+++=⎩ (1.1)成为()()()()()()()()()()()()00011112211100021122222100011221n n n n n n n n nn n nn a x a x a x a a x a x a x a a x a x a x a +++⎧+++=⎪+++=⎪⎨⎪⎪+++=⎩假设(0)110a ≠,将第1个方程乘以(0)1(0)11()i a a -加到第i 个方程(2)i n ≤≤,得到第1个导出方程组(0)(0)(0)(0)111122111(1)(1)(1)222221(1)(1)(1)221n n n n n n n nn n nn a x a x a x a a x a x a a x a x a +++⎧++=⎪+=⎪⎨⎪⎪+=⎩其中:(0)(1)(0)(0)11(0)11i ij ij j a a a a a =-,2i n ≤≤,21j n ≤≤+。

由于因子(0)1(0)11i a a 不止一次地用到,常记为,1i l 。

再假设(1)220a ≠,由第1个导出方程组的第2个方程乘以(1)2(1)22()i a a -加到第i 个方程(3)i n ≤≤,得到第2个导出方程组()()()()()()()()()()()()()()()000001111221331111111222233221222333*********n n n n n n n n n n nn n nn a x a x a x a x a a x a x a x a a x a x a a x a x a ++++⎧++++=⎪+++=⎪⎪⎨++=⎪⎪⎪++=⎩类似地记:(1)22(1)22i i a l a =,则第2个导出方程组的元素(1)(2)(0)(1)(1)(1)(1)222(1)22i ij ij j ij i j a a a a a l a a=-=-,3i n ≤≤,31j n ≤≤+。

重复上述过程1n -次,得到1n -个导出方程组()()()()()()()()()()()()()()000001111221331111111222233221222333331111n n n n n n n n n n n nn n nn a x a x a x a x a a x a x a x a a x a x a a x a +++--+⎧++++=⎪+++=⎪⎪⎨++=⎪⎪⎪=⎩(1.2)其中第k 个导出方程组的元素的递推关系是(1)(1)k ik ik k kka l a --=,()(1)(1)k k k ij ij ik kja a l a --=- (1.3)(11,1,11)k n k i n k j n ≤≤-+≤≤+≤≤+。

由于上述消元过程只是将原方程组的系数矩阵和右端进行初等变换,因此,第1n -个导出方程组与原方程组等价,即通过消元过程将方程组(1.1)化成了等价的上三角方程组(1.2)。

由第k 个导出方程组的计算公式(1.3),容易得到消元过程所需要的乘法和加法次数为12111()(1)(1)3n k nS n k n k n -==--+=-∑除法次数为1121(1)()2n k n n S n k -=-=-=∑ 2.回代过程回代过程就是求等价三角形方程组(1.2)的解。

只要(1)0(1,2,,)k kka k n -≠=,就可以最后一个方程得到n x 的值,再从第1n -个方程得1n x -的值。

在一般情形,可求得i x 的回代递推公式(1)1(1)(1)(1)11,(),1,2,,1.n nn n n nnn i i i ij j j i i i ii a x a x a x x i n n a -+---=+-⎧=⎪⎪⎪⎨-⎪⎪==--⎪⎩∑(1.4) 由公式(1.4)可知,回代过程需要n 次除法,其乘法和加法的次数同为112(1)(1)2n n n +++-=-。

所以回代过程需211(1)2S n n =-次加法,221(1)2S n n =+次乘、除法。

3.顺序消去法的运算次数与计算步骤由消元过程和回代过程的运算次数可知,顺序消去法的加法次数为111211(235)6S S S n n n =+=+-,乘除法次数为221112221(31)3S S S S n n =++=+-。

消元过程在编程上机运算时,需采用三重循环,即对于1,2,,1,k n =-1,2,,,i k k n =++计算(1)(1)k ikkk k kka l a --=;对于1,2,,1j k k n =+++计算()(1)(1)k k k ij ij ik kj a a l a --=-。

回代过程只需要二重循环,即计算(1)1(1)n nn n n nna x a -+-=,对于1,2,,1,i n n =--0;s =对于1,2,,,j i i n =++计算(1),i ij j S S a x -=+(1)1(1).i in i i iia S x a -+--=4.主元数和乘数由顺序消去法的推导过程可知,无论是消元过程还是回代过程的都不需要对未知元作真正的运算,而仅需要对方程组Ax b = 的系数矩阵的元素和右端作运算。

因此,在实际运算中,总是将方程组的系数矩阵和右端合在一起,记成增广矩阵(,)A b 。

由消元过程(1.3)可以看到,元素(1)k kk a -为“主元素“,另外,在消元过程中不止一次用到数ik l ,这个数称为消元过程的乘数。

二.平方根法平方根法又叫Cholesky 分解法,是求解对称线性方程组最常用的方法之一。

对于一般方阵,为了消除LU 分解的局限性和误差的过分积累,而采用了选主元的方法。

但对于对称正定矩阵而言,选主元却是完全不必要的。

设n nA R⨯∈是对称正定的,即A 满足TA A =而且Tx Ax >0对一切的非零向量nx R ∈成立.此时,由定理容易推出 Cholesky 分解定理:若n n A R ⨯∈对称正定,则存在一个对角元均为正数的下三角阵n n L R ⨯∈,求得TA LL =.上式中的L称作A 的Cholesky 因子。

若线性方程组的系数矩阵是对称正定的,则我们自然可按如下的步骤求其解:(1)求A 的Cholesky 分解:TA LL =;(2)求解Ly b =得y ;(3)求解T L x y =得x 。

实验:1.用高斯(Causs )消去法求解下面的84阶方程组123828384617861158611586115861158614x x x x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦。

解:10n = ()A identity n =1i n = ,6i i A = 11i n =- ,11i i A +=2i n = ,18i i A -=17b = 21i n =- 15i b = 14n b =()M lu A =(,1,,1,)(,1,,1,2)(,1,,21,3)P submatrix M n n L submatrix M n n n U submatrix M n n n ==+=⋅+⋅ (,)y lsolve L P b =⋅ (,)x lsolve U y =1472 5.923710A ⎛⎫ ⎪= ⎪ ⎪⎝⎭2()UI Gauss A = 1100()2103 2.3811UI ⎛⎫ ⎪= ⎪ ⎪⎝⎭21470 2.1120017.571UI ⎛⎫ ⎪=-- ⎪ ⎪⎝⎭(,)U Gauss A b = 1470 2.1120017.571U ⎛⎫ ⎪=-- ⎪ ⎪⎝⎭()M GaussLU A = 1L M = 2U M =1002103 2.3811L ⎛⎫ ⎪= ⎪ ⎪⎝⎭ 1470 2.1120017.571U ⎛⎫ ⎪=-- ⎪ ⎪⎝⎭000000000A LU ⎛⎫⎪-= ⎪ ⎪⎝⎭2.用你编写的程序求解对称求解对称正定方程组Ax b =,其中b 随机的选取,系数矩阵为100阶1011101110111011101110⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦。

解: 5n = 1112i ni n i n ==-= ,,1,11011i i i i i i A A A +-=== (1)i b rnd =()L cholesky A =(,)(,)T y lsolve L b x lsolve L y ==改进的平方根方法:3.1620.3160000 3.1460.3180000 3.1460.3180000 3.1460.3180000 3.146TL ⎛⎫ ⎪ ⎪ ⎪= ⎪ ⎪ ⎪⎝⎭1i n = ,,1()T i i i iD L L L D D D D-==⋅=⋅1210000000000000000000000000T M M M A ⎛⎫⎪ ⎪ ⎪-=⎪ ⎪ ⎪⎝⎭结论:通过用两种方法对题目的求解,我们得到高斯消去法适合用于中小规模线性方程的求解,它一般用于系数矩阵稠密而又没有任何特殊结构的线性方程组,由它改进后得到的选主元消去法是目前计算机上常用的有效方法;而对于一般方阵,为了消除LU 分解的局限性和误差的过分积累,而采用了选主元的方法。

相关文档
最新文档