数值分析(08)Gauss消元法解线性方程组
- 格式:ppt
- 大小:889.00 KB
- 文档页数:26
课程设计任务书前 言回顾普通解方程组的方法,一般都是先逐个削去未知变量,最终得到只有一个未知变量的方程,解之,把得到的值回代到消去变量过程中得到的方程组,逐个求出未知变量。
这种解线性方程组的基本方法就是这里要介绍的高斯消去法。
数学上,高斯消元法(或译:高斯消去法),是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。
当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。
高斯消元法可以用在电脑中来解决数千条等式及未知数。
高斯消元法可以用来找出一个可逆矩阵的逆矩阵。
用关联矩阵表述网络拓扑结构,并根据厂站拓扑结构和网络拓扑结构等概念简化了电力系统的拓扑结构。
根据广义乘法和广义加法的运算规则,将改进的高斯消元算法应用于电力系统拓扑结构分析中,并引入稀疏、分块处理等技术提高了上述拓扑分析的效率。
采用上述高斯消元算法对山东电网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问题的提出在科学和工程计算中,线性方程组(1)数值解非常重要,而求解线性方程组(1)的计算方法一般分为两类:直接法和迭代法。
不管是哪一类算法都只能在预定的计算步数内或给定的精度内得到近似解,所有的算法都存在着误差问题。
误差的来源是在求解线性方程组的过程中,由于系数相除所产生的舍入误差累积带入了未知量的求解过程,导致了线性方程组解的误差,即求解线性方程组误差来源于除法。
如果我们在求解过程中不使用或尽可能少使用除法,或对于除法采取分数代入(因为计算机的字长总是有限的),误差就可以完全消除,或达到误差最小。
本文在不增加计算量的情况下,将系数加减消元法融入到Gauss消去法中,在归一消元化为等价同解的上三角形方程组(n)的过程中,将系数加减消元,避逸了除法运算所产生的舍入误差,消除了消元过程中除法造成的误差累积,大大提高了线性方程组解的精确值。
2传统的Gauss消去法求解线性方程组Gauss消去法求解线性方程组的步骤如下:①消去:对于k从1到n-1归一化②回代Gauss消去法在归一过程中每执行一次就要作n-k+1次系数相除,相应地产生了n-k+1个舍入误差,产生的舍入误差又带入随后的乘法运算,累积所产生的误差个数就为(n-k+1)(n-k)。
因此,仅归一消元过程就产生了个累积误差,再加上回代过程中所作的次乘法所产生的累积误差,整个Gauss消去法中总共产生的误差个数(加减法不会产生误差)为。
尽管每次乘除所产生的误差符号不会都相同,从而使误差在累积时发生相互抵的消现象,但累积所产生的误差仍是相当大的,现仅以2阶线性方程组为例说明:例1方程组Gauss消去法求解:消元回代得而方程组的精确解为仅2阶就产生了这么大的误差原因何就在于系数与不能整除或在计算机允许的范围内不能除尽,将所产生的舍入误差带入了随后的运算,致使的解产生了误差。
3改进Gauss消去法求解线性方程组将系数加减消去法,融入到Gauss消去法中,改进Gauss消去法。
高斯消元法解线性方程组线性方程组是数学中常见的问题,其中包含多个线性方程,求解线性方程组即为找到满足所有方程的解。
高斯消元法是一种常用的方法,可以有效地解决线性方程组。
本文将介绍高斯消元法的原理和步骤,并通过一个具体的例子来演示其应用。
一、高斯消元法原理高斯消元法是通过一系列的行变换来将线性方程组转化为上三角形式,进而求解方程组。
具体步骤如下: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. 构造增广矩阵:将线性方程组的系数矩阵和常数向量按照方程的顺序组合成一个增广矩阵。
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总结高斯消元法是一种简单而有效的方法,用于解线性方程组。
高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。
高斯消元法的原理是:若用初等行变换将增广矩阵化为,则AX = B与CX = D是同解方程组。
所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。
以上是线性代数课的回顾,下面来说说高斯消元法在编程中的应用。
首先,先介绍程序中高斯消元法的步骤:(我们设方程组中方程的个数为equ,变元的个数为var,注意:一般情况下是n个方程,n个变元,但是有些题目就故意让方程数与变元数不同)1. 把方程组转换成增广矩阵。
2. 利用初等行变换来把增广矩阵转换成行阶梯阵。
枚举k从0到equ – 1,当前处理的列为col(初始为0) ,每次找第k行以下(包括第k行),col列中元素绝对值最大的列与第k行交换。
如果col列中的元素全为0,那么则处理col + 1列,k不变。
3. 转换为行阶梯阵,判断解的情况。
①无解当方程中出现(0, 0, …, 0, a)的形式,且a != 0时,说明是无解的。
②唯一解条件是k = equ,即行阶梯阵形成了严格的上三角阵。
利用回代逐一求出解集。
③无穷解。
条件是k < equ,即不能形成严格的上三角形,自由变元的个数即为equ – k,但有些题目要求判断哪些变元是不缺定的。
这里单独介绍下这种解法:首先,自由变元有var - k个,即不确定的变元至少有var - k个。
我们先把所有的变元视为不确定的。
在每个方程中判断不确定变元的个数,如果大于1个,则该方程无法求解。
如果只有1个变元,那么该变元即可求出,即为确定变元。
以上介绍的是求解整数线性方程组的求法,复杂度是O(n3)。
浮点数线性方程组的求法类似,但是要在判断是否为0时,加入EPS,以消除精度问题。
高斯消元法简介在信息学竞赛中,很多问题都可以转化成线性方程组或者与之相关的问题。
因此,我们需要了解线性方程组的各种解法。
Gauss消元法解解线性⽅程组摘要本⽂叙述了Gauss 顺序消元法解线性⽅程的算法思想以及其求解过程,同时简要叙述了Gauss 主元素消元法以及Gauss 全主元消元法。
紧接着给出了Gauss Seidel -迭代法的算法思想,本⽂给出了这三个消元⽅法以及⼀个迭代法的算法流程图,由于全主元消元法是前两个算法的基础上改进⽽来,故本⽂采⽤第三种⽅法进⾏编程计算,前两种⽅法不再重复编程,然后给出⼀个实例的计算结果,运⾏时间,在⽂章最后分析该实例的计算结果,针对同⼀实例,⼜采⽤Gauss Seidel -⽅法编程实现,然后对结果进⾏分析和对⽐。
最后给出了本⼈在编程时遇到的⼀些问题和解决办法。
关键词:Gauss 顺序消元法 Gauss 主元素消元法 Gauss 全主元消元法⼀、算法的简要描述1.1Gauss 顺序消元法Gauss 消元法在中学⾥已经学习过,其⽅法实质,就是运⽤初等变换,将线性⽅程组Ax b =转化为同解的上三⾓矩阵⽅程组1Ux L b -=(1.1.1)其中,U 为上三⾓矩阵,L 为下三⾓矩阵。
然后对式(1.1.1)进⾏回代求解,即得⽅程组的解。
⼿算的过程是⾮常清楚的,现在需回答的是计算机求解,如何实现上述计算过程。
设线性⽅程组为1111221331121122223322112233n n n n n n n nn n na x a x a x a xb a x a x a x a x b a x a x a x a x b ++++=??++++=??++++= 写成矩阵形式为1112111212222221222m m m n n a a a x b aa a xb a a a x b=???????(1.1.2)设线性⽅程组如上式所⽰,记(1)A A =,(1)b b =,与是增⼴矩阵具有形式(1)(1)[][]A b A b =,此时⽅程组为(1)(1)A x b =。
第⼀次消元。
数值分析实验报告-清华大学--线性代数方程组的数值解法(总15页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--线性代数方程组的数值解法实验1. 主元的选取与算法的稳定性问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
主元的选择从数学理论上看起来平凡,它却是数值分析中十分典型的问题。
实验内容:考虑线性方程组 n n n R b R A b Ax ∈∈=⨯,,编制一个能自动选取主元,又能手动选取主元的求解线性方程组的Gauss 消去过程。
实验要求:(1)取矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=1415157,6816816816 b A ,则方程有解T x )1,,1,1(* =。
取n=10计算矩阵的条件数。
让程序自动选取主元,结果如何?(2)现选择程序中手动选取主元的功能。
每步消去过程总选取按模最小或按模尽可能小的元素作为主元,观察并记录计算结果。
若每步消去过程总选取按模最大的元素作为主元,结果又如何?分析实验的结果。
(3)取矩阵阶数n=20或者更大,重复上述实验过程,观察记录并分析不同的问题及消去过程中选择不同的主元时计算结果的差异,说明主元素的选取在消去过程中的作用。
(4)选取其他你感兴趣的问题或者随机生成矩阵,计算其条件数。
重复上述实验,观察记录并分析实验结果。
程序清单n=input('矩阵A 的阶数:n=');A=6*diag(ones(1,n))+diag(ones(1,n-1),1)+8*diag(ones(1,n-1),-1); b=A*ones(n,1);p=input('计算条件数使用p-范数,p='); cond_A=cond(A,p) [m,n]=size(A);Ab=[A b];r=input('选主元方式(0:自动;1:手动),r=');Abfor i=1:n-1switch rcase(0)[aii,ip]=max(abs(Ab(i:n,i)));ip=ip+i-1;case (1)ip=input(['第',num2str(i),'步消元,请输入第',num2str(i),'列所选元素所处的行数:']);end;Ab([i ip],:)=Ab([ip i],:);aii=Ab(i,i);for k=i+1:nAb(k,i:n+1)=Ab(k,i:n+1)-(Ab(k,i)/aii)*Ab(i,i:n+1);end;if r==1Abendend;x=zeros(n,1);x(n)=Ab(n,n+1)/Ab(n,n);for i=n-1:-1:1x(i)=(Ab(i,n+1)-Ab(i,i+1:n)*x(i+1:n))/Ab(i,i);endx运行结果(1)n=10,矩阵的条件数及自动选主元Cond(A,1) =×103Cond(A,2) = ×103Cond(A,inf) =×103程序自动选择主元(列主元)a.输入数据矩阵A的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=0b.计算结果x=[1,1,1,1,1,1,1,1,1,1]T(2)n=10,手动选主元a. 每步消去过程总选取按模最小或按模尽可能小的元素作为主元矩阵A 的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1(1)(1)61786115[]861158614A b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦第1步消元,请输入第1列所选元素所处的行数:1(2)(2) 6.0000 1.00007.00004.6667 1.0000 5.66678.0000 6.000015.0000[]8.00001.000015.00006.0000 1.00008.0000 6.0000 1.000015.00008.0000 6.000014.0000A b ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第2步消元,请输入第2列所选元素所处的行数:2…(实际选择时,第k 步选择主元处于第k 行) 最终计算得x=[, , , , , , , , , ]Tb. 每步消去过程总选取按模最大的元素作为主元 矩阵A 的阶数:n=10计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1(1)(1)61786115[]861158614A b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦第1步消元,请输入第1列所选元素所处的行数:2(2)(2)8.0000 6.0000 1.000015.0000-3.50000.7500-4.250008.0000 6.0000 1.000015.0000[]8.0000 6.000015.00008.0000 1.00006.0000 1.000015.00008.0000 6.000014.0000A b ⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第2步消元,请输入第2列所选元素所处的行数:3…(实际选择时,第k 步选择主元处于第k+1行) 最终计算得x=[1,1,1,1,1,1,1,1,1,1]T(3)n=20,手动选主元a. 每步消去过程总选取按模最小或按模尽可能小的元素作为主元 矩阵A 的阶数:n=20计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1(1)(1)61786115[]861158614A b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦第1步消元,请输入第1列所选元素所处的行数:1(2)(2) 6.0000 1.00007.00004.6667 1.0000 5.66678.0000 6.000015.0000[]8.00001.000015.00006.0000 1.00008.0000 6.0000 1.000015.00008.0000 6.000014.0000A b ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第2步消元,请输入第2列所选元素所处的行数:2…(实际选择时,第k 步选择主元处于第k 行) 最终计算得x=[,,,,,,,,,,,,,,,,,,,]T b. 每步消去过程总选取按模最大的元素作为主元 矩阵A 的阶数:n=20计算条件数使用p-范数,p=1选主元方式(0:自动;1:手动),r=1(1)(1)61786115[]861158614A b ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦第1步消元,请输入第1列所选元素所处的行数:2(2)(2)8.0000 6.0000 1.000015.0000-3.50000.7500-4.250008.0000 6.0000 1.000015.0000[]8.0000 6.000015.00008.0000 1.00006.0000 1.000015.00008.0000 6.000014.0000A b ⎡⎤⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦第2步消元,请输入第2列所选元素所处的行数:3…(实际选择时,第k步选择主元处于第k+1行)最终计算得x=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]T(4)A分别为幻方矩阵,Hilbert矩阵,pascal矩阵和随机矩阵简要分析计算(1)表明:对于同一矩阵,不同范数定义的条件数是不同的;Gauss消去法在消去过程中选择模最大的主元能够得到比较精确的解。
gauss消元法解方程组
Gauss消元法是求解线性代数方程组最常用的一种方法,通过消元法可以将方
程组转化为一个标准的形式,从而求得它的唯一解。
在互联网领域,Gauss式消元
法被广泛的用于求解各种复杂问题,例如:最小二乘曲线拟合、求解爬虫搜索结果、训练深度学习算法等。
Gauss消元法的思想极为简单,它的运算步骤常常可以被简化为三个步骤:一
是找到此方程组所具有的最高次项,二是把此次方程组化为阶梯状,三是以此元素开始,以发酵行消元法求出需要求解的方程式的解。
运算过程中,Gauss消元法每一步都是以一个元素对其余元素的简化为基础的,而不是整体的检查;同时,这一过程可以在最少的元素简化过程中达到最快的求解速度,具备很好的可扩展性和泛化能力。
同时,在运算过程中,也可以有效的避免精度损失,使得最终计算出的结果具备较高可靠性。
Gauss消元法在互联网领域的应用覆盖了多个领域,因为它具备快速求解、精
度可靠之外,其本身也结构简单,不需要大量的运算量,且计算结果中的溢出几率极低,从而使得PHP、Python、Kotlin、Go等多语言的脚本程序都能很好的使用到此消元法中。
总之,Gauss消元法可以在互联网领域起到不可替代的作用,从而为技术的发
展和计算性能的提升做出重要的贡献。
数值试验报告分析一、实验名称:解线性方程组的列主元素高斯消去法和LU 分解法二、实验目的及要求:通过数值实验,从中体会解线性方程组选主元的必要性和LU分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。
三、算法描述:本次试验采用的是高斯列主元消去法和LU分解法求解线性方程组的解。
其中,高斯消去法的基本思想是避免接近于零的数作分母;能进行到底的条件: 当A可逆时,列主元Gauss(高斯)消去法一定能进行到底。
优点: 具有很好的数值稳定性;具有与顺序Gauss 消去法相同的计算量。
列主元Gauss(高斯)消去法的精度显著高于顺序Gauss(高斯)消去法。
注意:省去换列的步骤,每次仅选一列中最大的元。
矩阵的三角分解法是A=LU,L 是下三角阵,U是上三角阵,Doolittle 分解:L 是单位下三角阵,U是上三角阵;Crout 分解:L 是下三角阵,U是单位上三角阵。
矩阵三角分解的条件是矩阵 A 有唯一的Doolittle 分解的充要条件是 A 的前n-1 顺序主子式非零;矩阵A有唯一的Crout 分解的充要条件是 A 的前n-1 顺序主子式非零。
三角分解的实现是通过(1)Doolittle 分解的实现;(2)Doolittle 分解的缺点:条件苛刻,且不具有数值稳定性。
(3)用Doolittle 分解求解方程组: AX=b LUX=b LY=bA=LU UX=Y ;四、实验内容:解下列两个线性方程组3.01 6.03 1.99 x1 11) 1.27 4.16 1.23 x2 10.987 4.81 9.34 x3 110 7 0 1 x1 83 2.099999 6 2 x2 5.9000012) 5 1 5 1x3 52 1 0 2 x4 1a、用你熟悉的算法语言编写程序用列主元高斯消去法和LU分解求解上述两个方程组,输出Ax=b 中矩阵 A 及向量b, A=LU 分解的L 及U,detA 及解向量x.b、将方程组(1)中系数 3.01 改为 3.00 ,0.987 改为0.990 ,用列主元高斯消去法求解变换后的方程组,输出列主元行交换次序,解向量x 及detA ,并与(1)中结果比较。
线性方程组的几种解法线性方程组形式如下:常记为矩阵形式其中一、高斯消元法高斯(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时无法事先看出来的。
Gauss消去法求解线性方程组
Gauss消去法,又称高斯-约旦消去法,是求解线性方程组的一种常用方法。
其基本思想是通过行变换将线性方程组转化为行最简形式,然后利用回代法求解。
以下是Gauss消去法求解线性方程组的详细步骤:
1. 将线性方程组的系数矩阵和常数向量组成增广矩阵。
2. 从第一行开始,将第一列的元素作为主元,并通过初等行变换将其它行的第一元素消成0。
3. 将第二行的第二个元素作为主元,并通过初等行变换将其它行的第二元素消成0。
4. 以此类推,直到将增广矩阵转化为行最简形式。
5. 利用回代法求解,即从最后一行开始,解出未知数依次代入上面的方程中求解。
其中,初等行变换包括以下三种:
1. 交换矩阵中两行的位置。
表示为 Ri<->Rj。
2. 将矩阵中某一行的每个元素乘以一个非零常数k。
表示为Ri*k。
3. 将矩阵中某一行的每个元素加上另一行对应元素的k倍。
表
示为 Ri+k*Rj。
Gauss消去法是一种较为常用的求解线性方程组的方法,但当系数矩阵存在奇异现象或行列式为0时,此方法无法求解。
此时可以采用LU分解法、SOR迭代法等其他方法进行求解。
数值试验报告分析一、实验名称:解线性方程组的列主元素高斯消去法和LU 分解法二、实验目的及要求:通过数值实验,从中体会解线性方程组选主元的必要性和LU 分解法的优点,以及方程组系数矩阵和右端向量的微小变化对解向量的影响。
三、算法描述:本次试验采用的是高斯列主元消去法和LU 分解法求解线性方程组的解。
其中,高斯消去法的基本思想是避免接近于零的数作分母;能进行到底的条件:当A 可逆时,列主元Gauss(高斯)消去法一定能进行到底。
优点:具有很好的数值稳定性;具有与顺序Gauss 消去法相同的计算量。
列主元Gauss(高斯)消去法的精度显著高于顺序Gauss(高斯)消去法。
注意:省去换列的步骤,每次仅选一列中最大的元。
矩阵的三角分解法是A=LU,L 是下三角阵,U 是上三角阵,Doolittle 分解:L 是单位下三角阵,U 是上三角阵;Crout 分解:L 是下三角阵,U 是单位上三角阵。
矩阵三角分解的条件 是矩阵A 有唯一的Doolittle 分解的充要条件是A 的前n-1顺序主子式非零;矩阵A 有唯一的Crout 分解的充要条件是A 的前n-1顺序主子式非零。
三角分解的实现是通过(1)Doolittle 分解的实现; (2)Doolittle 分解的缺点:条件苛刻,且不具有数值稳定性。
(3)用Doolittle 分解求解方程组: AX=b LUX=b LY=bA=LU UX=Y ;四、实验内容:解下列两个线性方程组(1) ⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛--11134.981.4987.023.116.427.199.103.601.3321x x x (2) ⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----15900001.582012151526099999.23107104321x x x x a 、用你熟悉的算法语言编写程序用列主元高斯消去法和LU 分解求解上述两个方程组,输出Ax=b 中矩阵A 及向量b, A=LU 分解的L 及U ,detA 及解向量x.b 、将方程组(1)中系数3.01改为3.00,0.987改为0.990,用列主元高斯消去法求解变换后的方程组,输出列主元行交换次序,解向量x及detA,并与(1)中结果比较。