用高斯消元法求解线性代数方程组.(优选)
用列主元高斯消元法求线性代数方程组的解
课程设计任务书前 言回顾普通解方程组的方法,一般都是先逐个削去未知变量,最终得到只有一个未知变量的方程,解之,把得到的值回代到消去变量过程中得到的方程组,逐个求出未知变量。
这种解线性方程组的基本方法就是这里要介绍的高斯消去法。
数学上,高斯消元法(或译:高斯消去法),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。
当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。
高斯消元法可以用在电脑中来解决数千条等式及未知数。
高斯消元法可以用来找出一个可逆矩阵的逆矩阵。
用关联矩阵表述网络拓扑结构,并根据厂站拓扑结构和网络拓扑结构等概念简化了电力系统的拓扑结构。
根据广义乘法和广义加法的运算规则,将改进的高斯消元算法应用于电力系统拓扑结构分析中,并引入稀疏、分块处理等技术提高了上述拓扑分析的效率。
采用上述高斯消元算法对山东电网220kV 以上的变电站进行拓扑结构分析,结果表明了运用该高斯消元法进行网络拓扑分析的正确性和有效性。
用列主元素法,选取每列的绝对值最大的元素作为消去对象并作为主元素。
然后换行使之变到主元位子上,在进行消元计算。
设)()(k k b X A ,确定第k 列主元所在位置k i ,在交换k i 行和k 行后,在进行消元,并用MATLAB 软件进行求解。
目录摘要....................................................................................... 错误!未定义书签。
第1章绪论 ......................................................................... 错误!未定义书签。
第2章高斯消元法的算法描述 (2)2.1高斯消元法的原理概述 (2)c231730658" 2.1.1高斯消元法的消元过程 (2)c231730658" 2.1.2高斯消元法的回带过程 (3)c231730658" 2.1.3高斯消元法的复杂度分析 (4)c231730658" 2.2列主高斯消元法原理简介 (5)c231730658" 2.2.1列主高斯消元法的消元过程 (6)c231730658" 2.2.2列主高斯消元法的回带过程 (6)c231730658" 2.2.3列主高斯消元法的算法描述 (6)c231730662"第3章高斯消元法的物理应用 (9)3.1c231730663"电网模型的描述 (9)c231730658" 3.2电网模型的问题分析 (9)c231730658"3.3求解计算 (11)c231730693"参考文献 (13)摘 要用列主元素高斯消去法法,选取每列的绝对值最大的元素作为消去对象并作为主元素。
线性方程组的解法
线性方程组的解法线性方程组是数学中常见的问题,它可以用于描述多个未知数之间的关系。
解决线性方程组的问题是求解未知数的具体取值,从而得到方程组的解。
本文将介绍几种常见的解线性方程组的方法。
一、高斯消元法高斯消元法是解决线性方程组的经典方法之一。
它通过矩阵变换的方式,将线性方程组转化为一个三角矩阵,从而简化求解过程。
以下是高斯消元法的步骤:1. 将线性方程组写成增广矩阵的形式,其中最后一列为常数项。
2. 选取一个非零元素作为主元,在当前列中将主元素所在的行作为第一行,然后通过初等行变换将其他行的主元素变为0。
3. 重复第2步,直到所有的主元素都变成1,并且每个主元素所在的列的其他元素都变为0。
4. 反向代入,从最后一行开始,依次回代求解未知数的值。
二、矩阵的逆矩阵法矩阵的逆矩阵法是利用矩阵的逆矩阵来求解线性方程组。
以下是逆矩阵法的步骤:1. 对于线性方程组Ax=b,如果矩阵A可逆,将方程组两边同时左乘A的逆矩阵AI,得到x=A^(-1)b。
2. 通过求解矩阵A的逆矩阵来得到未知数向量x的值。
3. 如果矩阵A不可逆,那么线性方程组没有唯一解,可能有无穷多解或者无解。
三、克拉默法则克拉默法则是另一种解决线性方程组的方法,它利用行列式的性质来求解未知数的值。
以下是克拉默法则的步骤:1. 对于线性方程组Ax=b,令|A|=D,其中D表示矩阵A的行列式。
2. 分别计算将矩阵A的第i列替换为常数列b所得到的行列式|A_i|。
3. 未知数向量x的第i个分量可以通过x_i = |A_i|/D来得到。
克拉默法则的优点是简单直观,但是当方程组的规模很大时,计算行列式将变得非常复杂。
四、矩阵的广义逆法矩阵的广义逆法是一种应对方程组无解或者有无穷多解的情况的方法。
对于线性方程组Ax=b,如果矩阵A不可逆,我们可以通过求解广义逆矩阵A^+来得到一个特解x_0。
1. 分别计算A^+ = (A^T·A)^(-1)·A^T和x_0 = A^+·b。
高斯消元法解线性方程组
高斯消元法解线性方程组线性方程组是数学中常见的问题,其中包含多个线性方程,求解线性方程组即为找到满足所有方程的解。
高斯消元法是一种常用的方法,可以有效地解决线性方程组。
本文将介绍高斯消元法的原理和步骤,并通过一个具体的例子来演示其应用。
一、高斯消元法原理高斯消元法是通过一系列的行变换来将线性方程组转化为上三角形式,进而求解方程组。
具体步骤如下:1. 将线性方程组写成增广矩阵形式,其中每一行表示一个方程,最后一列为常数项。
2. 选择一个主元,通常选择第一列的第一个非零元素作为主元。
3. 将主元所在行的所有元素除以主元,使主元变为1。
4. 将主元所在列的其他行元素通过适当的倍数加到相应行,使得主元所在列的其他元素都变为0。
5. 重复步骤2-4,直到将矩阵转化为上三角形式。
6. 从最后一行开始,通过回代法求解每个未知数的值。
二、高斯消元法步骤示例为了更好地理解高斯消元法的步骤,下面以一个具体的线性方程组为例进行演示。
假设有如下线性方程组:2x + y - z = 1-3x - y + 2z = -2-2x + y + 2z = 3首先,将线性方程组写成增广矩阵形式:[ 2 1 -1 | 1 ][-3 -1 2 | -2 ][-2 1 2 | 3 ]选择第一列的第一个非零元素2作为主元,将主元所在行的所有元素除以主元,使主元变为1,得到:[ 1 0 -0.5 | 0.5 ][-3 -1 2 | -2 ][-2 1 2 | 3 ]然后,将主元所在列的其他行元素通过适当的倍数加到相应行,使得主元所在列的其他元素都变为0,得到:[ 1 0 -0.5 | 0.5 ][ 0 -1 1.5 | -0.5 ][ 0 1 3 | 4 ]接下来,选择第二列的第二个非零元素-1作为主元,将主元所在行的所有元素除以主元,使主元变为1,得到:[ 1 0 -0.5 | 0.5 ][ 0 1 -1.5 | 0.5 ][ 0 1 3 | 4 ]再次进行行变换,将主元所在列的其他行元素通过适当的倍数加到相应行,使得主元所在列的其他元素都变为0,得到:[ 1 0 -0.5 | 0.5 ][ 0 1 -1.5 | 0.5 ][ 0 0 4.5 | 3 ]将矩阵转化为上三角形式后,从最后一行开始,通过回代法求解每个未知数的值。
1.用高斯消元法解下列线性方程组:
1.用高斯消元法解下列线性方程组:(1)123123123123233,350,43,3136;x x x x x x x x x x x x -+=⎧⎪+-=⎪⎨-+=⎪⎪+-=-⎩ (2)12341234123412342353,34232,288,7980;x x x x x x x x x x x x x x x x +++=⎧⎪+++=-⎪⎨++-=⎪⎪+++=⎩(3)1234123412343,31,123;2x x x x x x x x x x x x ⎧⎪--+=⎪-+-=⎨⎪⎪--+=-⎩ (4)12341234123424270,36430,5104250.x x x x x x x x x x x x -++=⎧⎪-++=⎨⎪-++=⎩解(1)21122133128331502133(,)411341131313613136r r r r A b -↔---⎛⎫⎛⎫⎪ ⎪--⎪ ⎪=−−−→ ⎪ ⎪-- ⎪ ⎪----⎝⎭⎝⎭ 212431412412831283051990153093315051990153093315r r r r r r r r -↔------⎛⎫⎛⎫⎪ ⎪--- ⎪ ⎪−−−→−−−→⎪ ⎪-- ⎪ ⎪---⎝⎭⎝⎭ 32434235219()61283128301530153006600110012120000r r r r r r r +-+⨯-----⎛⎫⎛⎫⎪ ⎪---- ⎪ ⎪−−−→−−−→ ⎪ ⎪-- ⎪ ⎪--⎝⎭⎝⎭ 2312521001010200110000r r r r +-⎛⎫⎪⎪−−−→ ⎪ ⎪⎝⎭因此方程组的解为123121x x x =⎧⎪=⎨⎪=⎩(2)1342223513113253423234232(,)12818128187918011324r r r r A b ----⎛⎫⎛⎫⎪ ⎪--⎪ ⎪=−−−→ ⎪ ⎪-- ⎪ ⎪-⎝⎭⎝⎭ 322131344131132511325011131301113130111313000090000900000r r r r r r r r r r ---↔-----⎛⎫⎛⎫ ⎪ ⎪-- ⎪ ⎪−−−→−−−→ ⎪ ⎪- ⎪ ⎪⎝⎭⎝⎭因为()2,(,)3r r ==A A b ,所以方程组无解.(3)21311111011110(,)1113100241111123001222r r r r A b --⎛⎫⎛⎫ ⎪ ⎪---- ⎪ ⎪=--−−−→- ⎪ ⎪ ⎪ ⎪----- ⎪ ⎪⎝⎭⎝⎭212321211101111102110012001222000000000r r r r r ⨯++⎛⎫-- ⎪--⎛⎫⎪ ⎪ ⎪ ⎪−−−→-−−−→- ⎪ ⎪⎪ ⎪⎝⎭ ⎪ ⎪⎝⎭对应的同解方程组为1243412122⎧=++⎪⎪⎨⎪=+⎪⎩x x x x x ,令2142,==x k x k则方程组的解为11221324212122x k k x k x k x k ⎧⎪⎪=++⎪⎪=⎨⎪⎪=+⎪⎪=⎩ (12(,)k k ∈R .(4)1224271224(,)36433643510425510425r r ----⎛⎫⎛⎫ ⎪ ⎪=-−−−→- ⎪ ⎪ ⎪ ⎪--⎝⎭⎝⎭A b 211313223(1)531()21224122415002150012006450000+⨯-+-⨯---⎛⎫--⎛⎫ ⎪⎪ ⎪−−−→-−−−→- ⎪⎪ ⎪- ⎪⎝⎭⎝⎭r r r r r r r r 120111500120000-⎛⎫⎪ ⎪→- ⎪ ⎪⎝⎭对应的同解方程组为12434211152=-⎧⎪⎨=⎪⎩x x x x x 令2142,==x k x k ,则方程组的解为112213242211152x k k x kx k x k =-⎧⎪=⎪⎪⎨=⎪⎪=⎪⎩ 12(,)k k ∈R . 2.讨论p 取何值时,下述非齐次线性方程组无解,有唯一解,有无穷多解?在有解时求解.12321231234,,2 4.x x px x px x p x x x ++=⎧⎪-++=⎨⎪-+=-⎩ 分析 本题为含有参数p 的非齐次线性方程组的求解,由于其系数矩阵为方阵,故可用行列式分析.解 111111011112022p pp p p p=-=++---A 11(1)(1)(4)22=+=+---p p p p可见:(1)当0A ≠,即4≠p 且1≠-p 时,方程组有唯一解,利用克莱姆法则求得212232124121p p x p p p x p p x p ⎧+=⎪+⎪⎪++⎪=⎨+⎪⎪-=⎪+⎪⎩(2)当4=p 时,0A =,此时213111441144(,)141160552011240228r r r r +-⎛⎫⎛⎫⎪ ⎪=-−−−→ ⎪ ⎪ ⎪ ⎪-----⎝⎭⎝⎭A b 232152114410300114011400000000⨯+⎛⎫⎛⎫⎪ ⎪−−−→→ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭r r r对应的同解方程组为132334x x x x =-⎧⎨=-+⎩,令3=x k则方程组的解为12334x k x k x k =-⎧⎪=-⎨⎪=⎩ ()k ∈R .(3)当1=-p 时,0A =,此时213111141114(,)1111000511240238r r r r +---⎛⎫⎛⎫ ⎪ ⎪=--−−−→ ⎪ ⎪ ⎪ ⎪----⎝⎭⎝⎭A b23111402380005r r ↔-⎛⎫ ⎪−−−→-- ⎪ ⎪⎝⎭,因为()2,(,)3==r A r A b ,所以方程组无解.3.当,a b 取何值时,下述非齐次线性方程组无解,有唯一解,有无穷多解?在有解时求出它的全部解. 123423423412340,221,(3)2,32 1.x x x x x x x x a x x b x x x ax +++=⎧⎪++=⎪⎨-+--=⎪⎪+++=-⎩解 1111001221(,)01323211a b a ⎛⎫ ⎪⎪= ⎪--- ⎪-⎝⎭A b 3241311110012************+-⎛⎫ ⎪ ⎪−−−→ ⎪-+ ⎪----⎝⎭r r r r a b a 4211110012************+⎛⎫ ⎪⎪−−−→ ⎪-+ ⎪-⎝⎭r r a b a 由此可见:(1)当1,1=≠-a b 时,()2,(,)3r r ==A A b ,方程组无解.(2)当1,1==-a b 时,()(,)2r r ==A A b ,方程组有无穷多解. 此时(,)A b 可化简为10111012210000000000---⎛⎫⎪⎪⎪⎪⎝⎭ 令3142,==x k x k方程组的解为11221231421221x k k x k k x k x k =+-⎧⎪=--+⎪⎨=⎪⎪=⎩ 12(,)k k ∈R .(3)当1,≠∈a b R 时,方程组有唯一解为123421231110b a x a a b x a b x a x -+⎧=⎪-⎪--⎪=⎪-⎨⎪+=⎪-⎪⎪=⎩4.设121232343454515-=⎧⎪-=⎪⎪-=⎨⎪-=⎪-=⎪⎩x x a x x a x x a x x ax x a ,证明方程组有解的充分必要条件是510==∑i i a ,并在有解的情况下,求出它的全部解.分析 线性方程组解的存在性主要依据线性方程组解的定义及有解判别定理来证明.证明 123451100001100(,)001100001110001a a a a a -⎛⎫ ⎪- ⎪⎪=- ⎪-⎪ ⎪-⎝⎭A b 543211234511100001100001100001100000++++=-⎛⎫ ⎪- ⎪ ⎪-−−−−−→ ⎪- ⎪⎪⎪⎝⎭∑r r r r r i i a a a a a当()(,)r r =A A b 时,方程组有无穷多解,故要满足510==∑ii a.当有解时,继续对(,)A b 作初等行变换,得123423434410001010010010100011000000-+++⎛⎫ ⎪-++ ⎪⎪-+ ⎪- ⎪ ⎪⎝⎭a a a a a a a a a a 令5=x k 由此得出方程组的解为112342234334445x a a a a k x a a a k x a a k x a kx k=++++⎧⎪=+++⎪⎪=++⎨⎪=+⎪=⎪⎩ ()k ∈R5.已知向量(3,5,7,9)α=,(1,5,2,0)β=-(1)如果αξβ+=,求ξ;(2)如果325αξβ-=,求ξ.解 (1)由αξβ+=,可得(1,5,2,0)(3,5,7,9)(4,0,5,9)ξβα=-=--=--- (2)由325αξβ-=,可得111127(35)(14,10,11,27)(7,5,,)2222ξαβ=-=-=-6.设1233()2()5()αααααα-++=+,求α.其中T T T 123(2,5,1,3),(10,1,5,10),(4,1,1,1)ααα===- 解 由已知可得 123332255αααααα-++=+T 1231(325)(1,2,3,4)6αααα=+-= 7.把向量β表示成向量1234,,,αααα的线性组合.(1)1234(1,1,1,1),(1,1,1,1),(1,1,1,1),(1,1,1,1),(1,2,1,1)ααααβ==--=--=--=(2)1234(1,1,0,0),(2,1,3,1),(1,1,0,0),(0,1,1,1),(0,0,0,1)ααααβ====--=解 (1)T T T T T12341111111112(,,,,)1111111111ααααβ⎛⎫⎪--⎪= ⎪--⎪--⎝⎭ 4321313411()21111111111002210022102020010100220000220r r r r r r r r r ---⨯--⎛⎫⎛⎫ ⎪ ⎪---- ⎪ ⎪−−−→−−−→ ⎪ ⎪-- ⎪ ⎪---⎝⎭⎝⎭234224234123441()2145100011111411001101002401010100104100011400014r r r r r r r r r r r r r r ↔--⨯-----⨯⎛⎫ ⎪⎛⎫⎪ ⎪⎪⎪- ⎪ ⎪−−−→−−−−→ ⎪ ⎪ ⎪-⎪ ⎪⎪- ⎪ ⎪⎝⎭ -⎪⎝⎭ 由此可知123451114444βαααα=+--(2)T T T T T 12341210011110(,,,,)0301011011ααααβ⎛⎫ ⎪⎪= ⎪- ⎪-⎝⎭3221414223(1)1210012100010100101003010000200111100121r r r r r r r r r +---⨯-⎛⎫⎛⎫ ⎪ ⎪-- ⎪ ⎪−−−→−−−→ ⎪ ⎪- ⎪ ⎪-----⎝⎭⎝⎭343241232(1)210001010000010100010r r r r r r r r +⨯-+--⎛⎫ ⎪ ⎪−−−−→ ⎪- ⎪⎝⎭由此可知13βαα=-8.判断下列向量组的线性相关性. (1)123(1,1,1),(0,2,5),(1,3,6)ααα===(2)T T T 123(1,1,2,4),(0,3,1,2),(3,0,7,14)βββ=-==(3)T T T 123(1,1,3,1),(4,1,3,2),(1,0,1,2)γγγ==-=-解 (1)因为123,,ααα构成的矩阵为方阵,故可用行列式求解.因为1011001231220156155==,所以向量组123,,ααα线性相关.(2)123(,,)βββ=213141241031031300332170114214022r r r r r r +--⎛⎫⎛⎫ ⎪ ⎪- ⎪ ⎪−−−→ ⎪ ⎪ ⎪ ⎪⎝⎭⎝⎭23242132103011000000r r r r r ⨯--⎛⎫ ⎪ ⎪−−−→ ⎪ ⎪⎝⎭,因为123(,,)23r βββ=<,所以向量组123,,βββ线性相关. (3)3242213123141141110031(,,)3310154122012r r r r r r γγγ---⎛⎫⎛⎫ ⎪ ⎪-- ⎪ ⎪=−−−→ ⎪ ⎪---- ⎪ ⎪⎝⎭⎝⎭24433253141012001000r r r r r r ↔-+⎛⎫ ⎪ ⎪−−−→ ⎪ ⎪⎝⎭,因为123(,,)3r γγγ=,所以向量组123,,γγγ线性无关. 9.设112223334441,,,βααβααβααβαα=+=+=+=+,证明向量组1234,,,ββββ线性相关.分析 可按向量组的线性相关的定义,把证明向量组线性相关转化为证明齐次线性方程组有非零解,或直接寻找1234,,,ββββ之间的线性关系式,若系数不全为0,则向量组线性相关。
用高斯消元法解线性方程组
用高斯消元法解线性方程组高斯消元法是一种常用的解线性方程组的方法。
它通过一系列的行变换将线性方程组转化为一个简化的行阶梯形式,从而可以方便地求解方程组。
基本步骤使用高斯消元法解线性方程组的基本步骤如下:1. 构造增广矩阵:将线性方程组的系数矩阵和常数向量按照方程的顺序组合成一个增广矩阵。
2. 初等行变换:通过初等行变换操作,将增广矩阵转化为行阶梯形或行最简形。
3. 回代求解:从最后一行开始,反向代入得到方程组的解。
详细步骤以下是用高斯消元法解线性方程组的详细步骤:1. 将线性方程组的系数矩阵和常数向量按照方程的顺序组合成一个增广矩阵,如下所示:[a11 a12 ... a1n | b1][a21 a22 ... a2n | b2][... ... ... ... | ...][an1 an2 ... ann | bn]2. 选择第一个非零元素所在的列,记为第 k 列。
3. 通过初等行变换操作,将第 k 列除了第 k 行之外的所有元素变为零。
首先,将第 k 行的第 k 个元素系数标准化为 1,即将第 k 行的所有元素除以第 k 个元素的值。
然后,对第 i 行(i ≠ k)进行以下操作:将第 i 行的第 k 个元素的系数变为零,即将第 i 行减去第 k 行的 k 个元素乘以第 i 行的第 k 个元素的系数。
4. 重复步骤 2 和步骤 3,直至所有列都处理完毕。
5. 如果最后一行的所有元素都为零,则该线性方程组无解。
6. 如果最后一行的最后一个非零元素所在的列号为 m,则 m+1 到 n 列的所有元素均为自由变量。
7. 从最后一行开始,反向代入求解自由变量。
示例假设有以下线性方程组:2x + 3y - z = 13x + 2y + z = 2x + 3y + 2z = 3将该方程组转化为增广矩阵的形式:[2 3 -1 | 1][3 2 1 | 2][1 3 2 | 3]通过高斯消元法的步骤,可以得到以下的行阶梯形式:[1 3/2 1/2 | 3/2][0 7/2 -3/2 | -3/2][0 0 17/7 | 17/14]根据行阶梯形式,可以得到方程组的解为:x = 1/2y = -1/2z = 2/7总结高斯消元法是一种简单而有效的方法,用于解线性方程组。
C++ 数学与算法系列之高斯消元法求解线性方程组
C++ 数学与算法系列之高斯消元法求解线性方程组1. 前言什么是消元法?消元法是指将多个方程式组成的方程组中的若干个变量通过有限次地变换,消去方程式中的变量,通过简化方程式,从而获取结果的一种解题方法。
消元法主要有代入消元法、加减消元法、整体消元法、换元消元法、构造消元法、因式分解消元法、常数消元法、利用比例性质消元法等。
对方程式消元时,是基于如下的初等行变换规则:•改变方程组中方程式的顺序,或者说无论先求解方程组中哪一个方程式,不影响方程组的解。
•对一个方程式中的所有系数乘以或除以某一个非零数,不影响方程组的解。
•方程式之间可以倍乘后相加或相减,不影响解。
其中最常用的为代入消元法和加减消元法,简要介绍一下。
代入消元法如求解2x+3y=10和x+y=4; 2个方程式中的x ,y变量时。
可以把第2个方程式变换成x=4-y。
然后代入到第1个方程中,2(4-y)+3y=10。
可求解出y=2,x=2。
加减消元法还是求解如上的方程组。
可以把第2个方程式乘以2后再去减第1个方程式,或者说让第1个方程式减去第2个方程式乘以2。
2x+3y-2x-2y=10-8。
可以求解y=2。
本文主要和大家聊聊高斯消元法,高斯(Gauss)消元法也称为简单消元法,是求解一般线性方程组的经典算法。
2. 高斯消元法在理解高斯消元化之前,先理解几个基本概念:什么是增广矩阵?增广矩阵是线性代数中的概念,如下线性方程组:使用每个方程式的系数构建的矩阵,称为系数矩阵,表示为:用方程式的系数和结果构建的矩阵称为方程组的增广矩阵。
如下图所示:当方程组中的每一个方程的结果都为0时, 即b1=b2=b3=b4……bm=0,称这样的方程组为齐次线性方程组。
2.1 高斯消元法的思想高斯消元的基本思想:•对于一个有n个变量、有n个方程式的方程组。
•把方程组中除了第1个方程式外的其它方程式中的x1消去,同理,再把除了第2个方程式以下的方程组中其它方程式中的x2消去,依次类推,直到最后1个方程式中只留下xn。
高斯消元法在解线性方程组中的应用
高斯消元法在解线性方程组中的应用高斯消元法是一种非常实用的算法,能够对线性方程组进行求解。
因此,它在数学、物理、化学、工程学等领域都得到了广泛
的应用。
高斯消元法是将线性方程组的系数矩阵转化为所要求的矩阵,
使用一些简单的变换来达到简化方程组的目的。
具体来说,首先
可以通过交换两个方程或多个方程来使系数矩阵的主对角线上的
元素变为非零元。
然后,通过将系数矩阵的某一行乘以一个非零
常数或将某一行加上或减去另一行来使主对角线以下的元素为0。
最终,得到一个上三角矩阵,可以通过回代求解得到方程组的解。
高斯消元法的优缺点:
优点:高斯消元法计算简单,求解速度较快,可在一定范围内
获得较高的精度。
缺点:高斯消元法在某些情况下可能会产生有限或无限多的解,这可能是由于线性方程组中的约束条件不充分或矛盾导致的。
此外,随着线性方程组大小的增加,高斯消元法求解的复杂性会显
著增加。
在大型的稀疏线性方程组中,高斯消元法往往不是最好的选择。
高斯消元法的应用场景:
高斯消元法可以用于求解各种问题,如求解矩阵方程、求解线性方程组变型、线性回归、最小二乘法等。
这些问题的求解都可以转化为求解线性方程组的问题,因此高斯消元法是解决这些问题的关键算法。
总之,高斯消元法是一种重要的数学工具,在各个领域都能够得到广泛的应用。
无论是通过纸笔计算还是计算机程序实现,高斯消元法都应该是每个使用线性代数的科学家和工程师的基本工具之一。
计算机数值方法试题
一、填空(共20分,每题2分)1、设,取5位有效数字,则所得的近似值x=_____.2、设一阶差商,则二阶差商3、数值微分中,已知等距节点的函数值则由三点的求导公式,有4、求方程的近似根,用迭代公式,取初始值,那么5、解初始值问题近似解的梯形公式是6、,则A的谱半径=,A的=7、设,则=和=8、若线性代数方程组AX=b 的系数矩阵A为严格对角占优阵,则雅可比迭代和高斯-塞德尔迭代都_____9、解常微分方程初值问题的欧拉(Euler)方法的局部截断误差为_____10、设,当时,必有分解式,其中L为下三角阵,当其对角线元素足条件时,这种分解是唯一的。
二、计算题(共60 分,每题15分)1、设(1)试求在上的三次Hermite插值多项式H(x)使满足 H(x)以升幂形式给出。
(2)写出余项的表达式2、已知的满足,试问如何利用构造一个收敛的简单迭代函数,使0,1…收敛?3、试确定常数A,B,C和,使得数值积分公式有尽可能高的代数精度。
试问所得的数值积分公式代数精度是多少?它是否为Gauss型的?4、推导常微分方程的初值问题的数值解公式:三、证明题1、设(1)写出解的Newton迭代格式(2)证明此迭代格式是线性收敛的2、设R=I-CA,如果,证明:(1)A、C都是非奇异的矩阵(2)参考答案:一、填空题1、2、3、4、5、6、7、8、收敛9、O(h)10、二、计算题1、1、(1)(2)2、由,可得因故故,k=0,1,…收敛。
3、,该数值求积公式具有5次代数精确度,它是Gauss型的4、数值积分方法构造该数值解公式:对方程在区间上积分,得,记步长为h,对积分用Simpson求积公式得所以得数值解公式:三、证明题1、证明:(1)因,故,由Newton迭代公式:n=0,1,…得,n=0,1,…(2)因迭代函数,而,又,则故此迭代格式是线性收敛的。
2、证明:(1)因,所以I–R非奇异,因I–R=CA,所以C,A都是非奇异矩阵 (2) 故则有()因CA=I–R,所以C=(I–R)A-1,即A-1=(I–R)-1C又RA-1=A-1–C,故由(这里用到了教材98页引理的结论)移项得结合()、两式,得模拟试题一、填空题(每空2分,共20分)1、解非线性方程f(x)=0的牛顿迭代法具有_______收敛2、迭代过程(k=1,2,…)收敛的充要条件是___3、已知数 e=...,取近似值 x=,那麽x具有的有效数字是___4、高斯--塞尔德迭代法解线性方程组的迭代格式中求______________5、通过四个互异节点的插值多项式p(x),只要满足_______,则p(x)是不超过二次的多项式6、对于n+1个节点的插值求积公式至少具有___次代数精度.7、插值型求积公式的求积系数之和___8、 ,为使A可分解为A=LL T, 其中L为对角线元素为正的下三角形,a的取值范围_9、若则矩阵A的谱半径(A)=___10、解常微分方程初值问题的梯形格式是___阶方法二、计算题(每小题15分,共60分)1、用列主元消去法解线性方程组2、已知y=f(x)的数据如下求二次插值多项式及f()3、用牛顿法导出计算的公式,并计算,要求迭代误差不超过。
高斯消元法求解线性方程组
高斯消元法求解线性方程组线性方程组是数学中重要的概念,它描述了一组线性方程的集合。
解决线性方程组的问题在科学和工程领域中具有广泛的应用。
高斯消元法是一种常用的方法,用于求解线性方程组。
本文将介绍高斯消元法的原理和步骤,并通过实例演示其应用。
一、高斯消元法的原理高斯消元法是一种基于矩阵变换的方法,用于将线性方程组转化为简化的行阶梯形式。
其基本思想是通过一系列的行变换,将方程组中的系数矩阵化为上三角矩阵,从而简化求解过程。
具体而言,高斯消元法的步骤如下:1. 将线性方程组的系数矩阵和常数向量写成增广矩阵的形式。
2. 选取一个主元素,通常选择第一列的第一个非零元素作为主元素。
3. 通过行变换,将主元素下方的所有元素化为零。
4. 选取下一个主元素,并重复步骤3,直到将矩阵化为上三角形式。
5. 通过回代法,求解得到线性方程组的解。
二、高斯消元法的步骤为了更好地理解高斯消元法的步骤,我们以一个具体的线性方程组为例进行演示。
假设我们有以下线性方程组:```2x + 3y - z = 14x - y + z = -2x + 2y + 3z = 3```首先,我们将其写成增广矩阵的形式:```[2, 3, -1 | 1][4, -1, 1 | -2][1, 2, 3 | 3]```接下来,我们选取第一列的第一个非零元素2作为主元素,并通过行变换将主元素下方的元素化为零。
具体步骤如下:1. 将第二行乘以2,然后与第一行相减,得到新的第二行:`[0, -7, 3 | -4]`2. 将第三行乘以0.5,然后与第一行相减,得到新的第三行:`[0, 0.5, 2.5 | 1.5]`此时,得到的矩阵为:```[2, 3, -1 | 1][0, -7, 3 | -4][0, 0.5, 2.5 | 1.5]```接下来,我们选取第二列的第二个非零元素-7作为主元素,并通过行变换将主元素下方的元素化为零。
具体步骤如下:1. 将第三行乘以14,然后与第二行相加,得到新的第三行:`[0, 0, 35 | 7]`此时,得到的矩阵为:```[2, 3, -1 | 1][0, -7, 3 | -4][0, 0, 35 | 7]```最后,我们通过回代法求解得到线性方程组的解。
《数值计算方法》课后题答案(湖南大学-曾金平)
习题一1.设x >0相对误差为2%,4x 的相对误差。
解:由自变量的误差对函数值引起误差的公式:(())(())'()()()()f x xf x f x x f x f x δδ∆=≈得(1)()f x =11()()*2%1%22x x δδδ≈===;(2)4()f x x =时444()()'()4()4*2%8%x x x x x xδδδ≈===2.设下面各数都是经过四舍五入得到的近似数,即误差不超过最后一位的半个单位,试指出他们各有几位有效数字。
(1)12.1x =;(2)12.10x =;(3)12.100x =。
解:由教材9P 关于1212.m nx a a a bb b =±型数的有效数字的结论,易得上面三个数的有效数字位数分别为:3,4,53.用十进制四位浮点数计算 (1)31.97+2.456+0.1352; (2)31.97+(2.456+0.1352)哪个较精确?解:(1)31.97+2.456+0.1352 ≈21((0.3197100.245610)0.1352)fl fl ⨯+⨯+ =2(0.3443100.1352)fl ⨯+=0.3457210⨯(2)31.97+(2.456+0.1352)21(0.319710(0.245610))fl fl ≈⨯+⨯ = 21(0.3197100.259110)fl ⨯+⨯ =0.3456210⨯易见31.97+2.456+0.1352=0.210⨯,故(2)的计算结果较精确。
4.计算正方形面积时,若要求面积的允许相对误差为1%,测量边长所允许的相对误差限为多少?解:设该正方形的边长为x ,面积为2()f x x =,由(())(())'()()()()f x xf x f x x f x f x δδ∆=≈解得(())()()'()f x f x x xf x δδ≈=2(())(())22f x x f x x xδδ==0.5%5.下面计算y 的公式哪个算得准确些?为什么?(1)已知1x <<,(A )11121xy x x-=-++,(B )22(12)(1)x y x x =++; (2)已知1x >>,(A )y=,(B )y =; (3)已知1x <<,(A )22sin x y x =,(B )1cos 2xy x-=;(4)(A)9y =(B )y =解:当两个同(异)号相近数相减(加)时,相对误差可能很大,会严重丧失有效数字;当两个数相乘(除)时,大因子(小除数)可能使积(商)的绝对值误差增大许多。
计算方法复习题-试题卷
一计算题
1. 能不能用迭代法求解以下方程,如果不能时,试将方程改写成能用迭代法求解的形式。
2. 用矩阵的LU分解算法求解线性方程组
X1+2X2+3X3 = 0
2X1+2X2+8X3 = -4
-3X1-10X2-2X3 = -11
3. 用高斯消去法求解线性方程组
解:消元过程
4. 给定常微分初值问题试构造一个求解常微分初值问题的两步差分格式。
5. 用矩阵的Doolittle分解算法求解线性方程组
2X1+X2+X3 = 4
6X1+4X2+5X3 =15
4X1+3X2+6X3 = 13
6. 利用Doolittle分解法解方程组Ax=b,即解方程组
解:用公式
7. 用矩阵的Doolittle分解算法求解线性方程组 X1+2X2+3X3 = 1
2X1– X2+9X3 = 0
-3X1+ 4X2+9X3 = 1
解:
8. 用Doolittle分解法解方程组
解:方程组的系数矩阵为
根据分解公式得
9. 方程将其改写为
10. 用高斯消元法解方程组
解:方程组的扩大矩阵为
11. 方程将其改写为
解:注意到迭代公式的形式,
12. 用Doolittle三角分解法求解线性代数方程组:
解:由公式
13. 用高斯消去法求解线性方程组
2X1- X2+3X3 = 2
4X1+2X2+5X3 = 4
-3X1+4X2-3X3 = -3
解:方程组的扩大矩阵为
14. 给定方程
〔1〕分析该方程存在几个根;
〔2〕构造迭代公式,说明迭代公式是收敛的。
15. 用Euler方法求解
(取h=0.2)。
线性代数线性方程组求解
线性代数线性方程组求解线性代数中,线性方程组求解是一个重要的问题。
在实际应用中,求解线性方程组是解决很多问题的基础。
本文将介绍线性代数中线性方程组的求解方法,包括高斯消元法、矩阵的逆和行列式等方法。
1. 高斯消元法高斯消元法是求解线性方程组的一种常见方法。
它基于矩阵变换的原理,通过对增广矩阵进行一系列的变换,将线性方程组转化为简化的阶梯形矩阵,从而求解方程组的解。
首先,将线性方程组写成增广矩阵的形式,例如:[[a11, a12, a13, ..., a1n, b1],[a21, a22, a23, ..., a2n, b2],...[an1, an2, an3, ..., ann, bn]]其中,a11到ann是系数矩阵的元素,b1到bn是常数矩阵的元素。
然后,通过一系列的行变换,将增广矩阵转化为阶梯形矩阵。
具体的行变换包括交换两行、某一行乘以非零常数、某一行加上另一行的若干倍等。
接着,从底部开始,依次回代求解未知数的值。
由于阶梯形矩阵的特点,可以从最后一行开始,将已求解的未知数代入到上一行的方程中,以此类推,最终求解出所有未知数的值。
2. 矩阵的逆和行列式除了高斯消元法外,还可以通过矩阵的逆和行列式来求解线性方程组。
当系数矩阵存在逆矩阵时,可以直接通过逆矩阵求解线性方程组。
假设系数矩阵为A,未知数向量为X,常数向量为B,那么可以使用以下公式求解线性方程组:X = A^(-1) * B其中,A^(-1)表示A的逆矩阵。
当系数矩阵不可逆时,可以通过行列式来判断是否有唯一解。
如果系数矩阵的行列式为非零,说明线性方程组存在唯一解;如果行列式为零,说明线性方程组没有解或者有无穷多个解。
3. MATLAB求解线性方程组除了手动求解线性方程组外,还可以借助计算工具如MATLAB进行求解。
MATLAB提供了函数例如“linsolve”、“inv”等,可以方便地求解线性方程组。
使用MATLAB求解线性方程组通常先定义系数矩阵A和常数向量B,然后通过相关函数求解。
高斯消元法解线性方程组
高斯消元法解践牲方程组在工程技术和工程菅理中有许名冋题经常可以旧结为线性方程组类塑的数学模塑,送些模型中方程和未知量f数常常有多f,而fl方程个数与未知量个数也不一定相同。
那么这算的线性方程组是否有解昵?如果有解,解是否唯一?若解不唯一,解的结构如何昵?这就是下面要过论的冋題。
一、线性方程组设含有〃f未知量、有〃H、方程武组成的方程组勺2勺+…+6”兀a2l x l+a22x2+-- + a2n x n=b2其巾系g 常数®都是已知数,石是未知量(也称为未知a)o当右端常数顶几, b2ib m不全为0时,称方程组⑶)为非齐次线性方程组;当b严咕… »0时,即a llXl+a}2x2 + -+a ln x n=0t/21x I+a22x2+--+a2ll x… =04內+知2勺+-+仏止=0称为齐次线性方程组。
由〃个数人,k2,心组成的一f有序数组(g k2, ■■■, k…),如果将它们依次代入方程组(3.1 )中的“,兀,…,兀后,(3.1 )中的毎个方程部变械恒等式, 则称这个有序数组(J k2, k n)为方程级(3.1 )的一个解。
显然由X. =0, x2=0, 组成的有序数组(0,0, -,0 )是齐次线性方程组(3.2 )的一个解,林之为齐次线性方程组(3.2 )的零解,而当齐次线性方程组的未知量取值不全为零时,號之为非零解。
(利用葩阵来过论线性方程组的解的悄况或求线性方程组的解是很方便的。
因此, 我『I先给出线性方程组的葩阵表示形式。
)非齐次线性方程组(3.1 )的矩晖表示形式为:AX^B其中A ='^11 %«21a22… (2),%=-V2,B-“2 % a ml…4顺bn称力为方程组(3.1)的系数矩晖,X为未知矩阵,3为常数拒阵。
将系数矩阵力利常数葩阵3故在一起构成的葩阵称为方程组(3.1 )的壇广葩阵。
齐次线性方程组(3.2)的矩晖表示形式为:AX=O 二、高斯消元法(下面介绍利用矩阵求解方程组的方法,影么犯阵初等行变换会不会改变方 程组的解昵?我们先看一 f 定理。
数值分析(08)Gauss消元法解线性方程组
end X=backsub(A, b);
%回代求解
消元法是解线性方程组的基本方法,具有计算简 单的优点,但有时由于主元过小,使得计算结果严重 失真,实际中常采用选主元高斯消元法。
§1 Gaussian Elimination – Pivoting Strategies
选主元消去法 /* Pivoting Strategies */
参数表
MATLAB For Gaussian Elimination
function X=gauss(A,b) %Input—A is an n×n nonsingullar maOutput—X is the solution to the system AX=b
进行到底,得到唯一解。
注:事实上,只要 A A ) ... ... A1 存在,则可通过逐 非奇异,即 ... de t( i 次消元及行交换,将方程组化为三角形方程组,求出 a i 1 ... a ii 唯一解。
a11
... a1i
求解的全过程包括两个步骤:消元和回代
1 . 顺序消元
k 1, , n 1 i k 1, , n (1)mik aik ( k ) / akk ( k ) (2)aij ( k 1) aij ( k ) mik akj ( k ),j k 1, , n (3)bi ( k 1) bi ( k ) mik bk ( k )
常见是m n,称为欠定方程组(方程数少于未知数) 此时,从Ax b的无穷多个解中需求出2 范数最小的解。 即求 x , 使 || x ||2 min || x ||2 ,x满足Ax b。
r ( A) r ( A)方程组Ax b无解(即不相容)。 常见是m n,称为超定方程组(又称矛盾方程组) 此时,向量b不在A的列空间R( A)之中,原方程组 无解,但可求出最小二乘意义下的解 x。 即求 x使 || b Ax ||2 min 2
线性方程组的几种求解方法
线性方程组的几种解法线性方程组形式如下:常记为矩阵形式其中一、高斯消元法高斯(Gauss)消元法的基本思想是:通过一系列的加减消元运算,也就是代数中的加减消去法,将方程组化为上三角矩阵;然后,再逐一回代求解出x向量。
现举例说明如下:(一)消元过程第一步:将(1)/3使x1的系数化为1 得再将(2)、(3)式中x1的系数都化为零,即由(2)-2×(1)(1)得由(3)-4×(1)(1)得)1(32)2(......3432=+xx)1(321)1(......23132=++xxx第二步:将(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) 将某行同乘或同除一个非零实数(2) 将某行加入到另一行 (3) 将任意两行互换第三步:将增广矩阵变换成上三角矩阵,即主对角线全为1,左下三角矩阵全为0,形)3(3)3(......1-=x )2(3)3( (63)18-=x )2(32)2(......02=+x x )1(32)3( (63)10314-=--x x示例:(四)高斯消元的公式综合以上讨论,不难看出,高斯消元法解方程组的公式为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) ≠0x 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时无法事先看出来的。
用高斯消元法求解线性方程组
⽤⾼斯消元法求解线性⽅程组线性⽅程组问题可以利⽤矩阵变换求解。
利⽤⾼斯消元法,将矩阵转换成⼀个⾏阶梯矩阵,最后得到⼀个简化⾏阶梯矩阵,就是⽅程的解。
参考资料()Java代码public class FunctionResolver {public static class LinearEquationGroup {/**代表线性⽅程组的矩阵。
⽅程组已经经过归⼀化处理,带未知变量的部分全部位于“=”左边,常数合并后位于“=”右边。
⽐如:2a + b - c = 8-3a - b + 2c = -11-2a + b + 2c = -3对应的矩阵为:2 1 -1 8-3 -1 2 -11-2 1 2 -3*/private BigDecimal[][] matrix;//未知变量的名称,排列顺序和矩阵⼀致,⽐如上⾯的例⼦中,对应的变量名列表就是a, b, cprivate List<String> variantes;public LinearEquationGroup() {}public LinearEquationGroup(BigDecimal[][] matrix) {this.matrix = matrix;check();}private void check() {for (int i = 0; i < matrix.length; i++) {if (matrix.length != (matrix[i].length - 1)) {throw new IllegalArgumentException("输⼊矩阵有误! 必须为n*(n+1)矩阵");}}}public Map<String, BigDecimal> solve() {check();sortRows();eliminateVarianteDownwards();normalize();eliminateVarianteUpwards();Map<String, BigDecimal> ret = new HashMap<>();int i = 0;int lastCol = variantes.size();for (String var : variantes) {ret.put(var, matrix[i++][lastCol]);}return ret;}/*** 重排序⾏, 以便做⾼斯消元. 保证第i⾏的第i列元素不为0*/void sortRows() {int row = 0;int below = 0;int col = 0;for (; row < matrix.length - 1; ++row) {col = row;if (matrix[row][col].compareTo(BigDecimal.ZERO) == 0) {for (below = row + 1; below < matrix.length; below++) {if (matrix[below][col].compareTo(BigDecimal.ZERO) != 0) {BigDecimal[] temp = matrix[row];matrix[row] = matrix[below];matrix[below] = temp;break;}}if (below >= matrix.length) {throw new IllegalArgumentException("⽅程组⽆解或者⽆唯⼀解!");}}}}/*** 从上往下消元。
数值分析复习题及答案
数值分析复习题一、选择题1. 和分别作为π的近似数具有( )和( )位有效数字.A .4和3B .3和2C .3和4D .4和42. 已知求积公式()()211211()(2)636f x dx f Af f ≈++⎰,则A =( )A . 16B .13C .12D .233. 通过点()()0011,,,x y x y 的拉格朗日插值基函数()()01,l x l x 满足( )A .()00l x =0,()110l x = B .()00l x =0,()111l x =C .()00l x =1,()111l x = D .()00l x =1,()111l x =4. 设求方程()0f x =的根的牛顿法收敛,则它具有( )敛速。
A .超线性B .平方C .线性D .三次5. 用列主元消元法解线性方程组1231231220223332x x x x x x x x ++=⎧⎪++=⎨⎪--=⎩ 作第一次消元后得到的第3个方程( ).A .232x x -+= B .232 1.5 3.5x x -+= C .2323x x -+= D .230.5 1.5x x -=-二、填空1. 设2.3149541...x *=,取5位有效数字,则所得的近似值x= .2.设一阶差商()()()21122114,321f x f x f x x x x --===---,()()()322332615,422f x f x f x x x x --===--则二阶差商()123,,______f x x x =3. 设(2,3,1)TX =--, 则2||||X = ,=∞||||X 。
4.求方程 21.250x x --= 的近似根,用迭代公式 1.25x x =+,取初始值 01x =, 那么 1______x =。
5.解初始值问题 00'(,)()y f x y y x y =⎧⎨=⎩近似解的梯形公式是 1______k y +≈。
用高斯消元法求解线性代数方程组
用高斯消元法求解线性代数方程组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(1aa aijj=, 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 aij i ij ij ,,2)1(1)1( =⋅-=,1,,3,211)1(11+==n j a a m i i由方程(1-1)到(1-2)的过程中,元素11a 起着重要的作用,特别地,把11a 称为主元素。
用高斯消去法解方程组
用高斯消去法解方程组高斯消元法解线性方程组如下:高斯消元法,是线性代数中求解线性方程组的一种算法。
它通常被理解为在相应的系数矩阵上执行的一系列操作。
要对矩阵执行行缩减,可以使用一系列基本行操作修改矩阵,直到矩阵的左下角尽可能地用零填充。
基本行操作有三种类型:交换两行将一行乘以一个非零数字将一行的倍数添加到另一行运用以上方法作,一个矩阵总是可以被转换成一个上三角矩阵,实际上是一个行阶梯形。
一旦所有的主系数(每一行中最左边的非零项)都为1,并且包含主系数的每一列在其他地方都为零,这个矩阵就称为行简化阶梯形。
最终的形式是独特的;换句话说,它与所使用的行操作序列无关。
例如,在接下来的行运算序列中(每一步可能进行多个初等运算),第三和第四个矩阵是行简化阶梯形矩阵,最终的矩阵是唯一的行简化阶梯形矩阵。
举例:假设目标是找到并描述下列线性方程组的解集:下表是同时应用于方程组及其增广矩阵的行约简过程。
在实践中,人们通常不使用方程来处理系统,而是使用增广矩阵,它更适合于计算机操作。
行约简过程可以总结为:从L1以下的所有方程中消去x,再从L2以下的所有方程中消去y。
这将使方程组变成三角形。
然后,用反代换法求解每个未知数。
一旦y也从第三行中删除,结果是三角形形式的线性方程组,因此算法的第一部分完成。
从计算的角度来看,以相反的顺序求解变量更快,这一过程被称为反向替换。
人们看到的解决办法是z= 1,y= 3,和x= 2。
所以原始方程组有唯一的解。
第二列描述了刚刚执行了哪些行操作。
所以第一步x从...中消除L2通过添加3 / 2 L一到L2。
接下来,x从...中消除L3通过添加L一到L3。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用高斯消元法求解线性代数方程组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(1aa aijj=, 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 aij i ij ij ,,2)1(1)1( =⋅-=,1,,3,211)1(11+==n j a a m i i由方程(1-1)到(1-2)的过程中,元素11a 起着重要的作用,特别地,把11a 称为主元素。
如果(1-2)中0)1(22≠a ,则以)1(22a 为主元素,又可以把方程组(1-2)化为:⎪⎪⎪⎩⎪⎪⎪⎨⎧=++=++=+++=+++++++)2(1,)2(3)2(3)3(1,3)2(33)2(33)2(1,2)2(23)2(232)1(1,1)1(12)1(121 n n n nn n n n n n n n n n n a x a x a a x a x a a x a x a x a x a x a x (1-3)针对(1-3) 继续消元,重复同样的手段,第k 步所要加工的方程组是:⎪⎪⎪⎪⎪⎩⎪⎪⎪⎪⎪⎨⎧=++=++=+++=+++=++++-+---+---+-----++)1(1,)1()1()1(1,)1()1()1(1,1)1()1(11)2(1,2)2(23)2(232)1(1,1)1(13)1(132)1(121 k n n n k nn k k nk k n k n k nn k k kk k n k n k kn k k k k n n n n n n a x a x a a x a x a a x a x a x a x a x a x a x a x a x a x设0)1(≠-k kka ,第k 步先使上述方程组中第k 个方程中x k 的系数化为1: )(1,)()(1,k n k n k kn k k k k k a x a x a x ++=++然后再从其它(n - k )个方程中消x k ,消元公式为:⎪⎪⎪⎩⎪⎪⎪⎨⎧+=++=⋅-=++==----nk i n k j a a a a n k k j a a a k kjk ik k ij k ij k kk k kjk kj ,11,,11,,1,)()1()1()()1()1()( (1-4) 按照上述步骤进行n 次后,将原方程组加工成下列形式:⎪⎪⎪⎩⎪⎪⎪⎨⎧==+=+++=+++++-+---++)(1,)1(1,1)1(1)2(1,2)2(23)2(232)1(1,1)1(13)1(132)1(121 n n n n n n n n n nn n n n n n n n a x a x a x a x a x a x a x a x a x a x回代公式为:⎪⎩⎪⎨⎧-=-==∑+=++1,,11)()(1,)(1, n k x aa x a x nk j jk kj k n k k n n nn (1-5)综上所述,高斯消去法分为消元过程与回代过程,消元过程将所给方程组加工成上三角形方程组,再经回代过程求解。
由于计算时不涉及x i , i = 1, 2, …, n ,所以在存贮时可将方程组AX = b ,写成增广矩阵(A,b )存贮。
下面,我们统计一下高斯消去法的工作量;在(1-4)第一个式子中,每执行一次需要)(k n n --次除法,在(1-5)第二个式子中,每执行一次需要)()]1([k n k n -⨯--次除法。
因此在消元过程中,共需要[])12)(1(61)1()1()()1(121++=+-=+-+-⨯+-∑∑==n n n k n k n k n k n nk nk次乘作法。
此外,回代过程共有)1(2)(1-=-∑=n nk n nk 次乘法。
汇总在一起,高斯消去法的计算量为:33)13(3232n n n n n n -+=-+ 次乘除法。
1.2 基于VC 的C 语言程序#include<stdio.h>#define n 4 /*n 为方程组系数矩阵的阶数*/ int Gauss(float a[n][n],float b[n]) {int i,j,k,flag=1; float t;for(i=0;i<n-1;i++) {if(a[i][i]==0) { flag=0; break; } else {for(j=i+1;j<n;j++) /*消元过程*/{t=-a[j][i]/a[i][i];b[j]=b[j]+t*b[i];for(k=i;k<n;k++)a[j][k]=a[j][k]+t*a[i][k];}}}return(flag);}void zg_matric(float a[n][n],float b[n]) /*输出增广矩阵*/{int i,j;for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%10f",a[i][j]);printf("%10f",b[i]);printf("\n");}printf("\n");}void main(){static float a[n][n]={{11,1,5,-4},{-2,8,2,3},{3,-2,10,4},{1,3,-2,17}}; float b[n]={13,11,15,19};float x[n]={0,0,0,0};int i,j,flag;zg_matric(a,b);flag=Gauss(a,b);zg_matric(a,b);if(flag==0) /*无解*/printf("Gauss method dose not run.");else /*回带过程开始*/ {x[n-1]=b[n-1]/a[n-1][n-1];for(i=n-2;i>=0;i--){x[i]=b[i];for(j=i+1;j<n;j++)x[i]=x[i]-a[i][j]*x[j];x[i]=x[i]/a[i][i];}for(i=0;i<n;i++) /*输出方程组的解*/printf("x%d=%11.7f\n",i+1,x[i]);}}1.3 运行结果图最新文件---------------- 仅供参考--------------------已改成-----------word文本--------------------- 方便更改赠人玫瑰,手留余香。