高斯主元消去法-matlab,高斯列主元消去法在Matlab中的实现

在我们的实验和工程中经常会遇到求解方程组的问题,而利用计算机求解是比较强有力的方法。高斯消去法是一种比较直观和简单的方法,但高斯消去法的特点是每次都是按照系数矩阵的主对角线上元素的顺序依次消元的,在这种迭代过程中容易出现两个问题:第一,一旦遇上某个主元等于零,消元过程便无法进行下去;第二,人们在长期的工作中发现,即使消元过程能进行下去,但当某个主元的绝对值很小时,求出的结果与真实值之相差甚远。为了避免高斯消元中出现的上述两个问题,一般采用所谓选主元的方法(即高斯列主元消去法),其特点是:每次在系数矩阵中一次按列在主对角线及以下的元素中,选取最大的元素作为主元,将它调到主对角线上,然后用它消去主对角线以下的元素,最后化为同解的上三角形方程组去求解。由于列主元消去法在目前工程实际中应用广泛,但涉及该算法的计算量庞大,因此,必须借助计算机来完成该算法的求解过程。1算法的主要思想高斯列主元消去法的算法步骤:设有n元线性方程组a11a12…a1na21a22…a2n…………an1an2…ann?x1x2xn?=b1b2bn?(1)1)对方程组(1)确定i1,使得ai11=max1inai1,选取ai11作为第一个主元,然后交换第1、第i1个方程。2)令li1=ai1/a11,i=2,3,…,n,用-li1()乘第一个方程加到第i个方程上(i=2,3,…,n),得同解方程组a(1)11a(1)12…a(1)1n0a(2)22…a(2)2n…………0a(2)n2…a(2)nn?x1x2xn?=b(1)1b(2)2b(2)n?(2)其中a(2)ij=a(1)ij-li1a(1)1j,i,j=2,3,…,nb(2)i=b(1)i-li1b(1)1,i=2,3,…,n3)对方程组(2)确定i2,使得ai22=max2inai2,选取ai22作为第二个主元,然后交换第2、第i2个方程。4)令li2=a(2)i2/a(2)22,i=3,4,…,n,用-li2()乘第二个方程加到第i个方程上(i=3,4,…,n),得同解方程组a(1)11a(1)12a(1)13…a(1)1n0a(2)22a(2)23…a(2)2n00a(3)33…a(3)3n……………00a(3)n3…a(3)nn?x1x2x3x4x5?=b(1)1b(2)2b(3)3b(3)n?(3)561其中a(3)ij=a(2)ij-li2a(2)2j,i,j=3,4,…,nb(3)i=b(2)i-li2b(2)2,i=3,4,…,n5)设已完成第k-1步消元,得到同解方程组a(1)11a(1)12…a(1)1k…a(1)1n0a(2)22…a(2)2k…a(2)2n…00…a(k)kk…a(k)kn…00…a(k)nk…a(k)nn?x1x2xkxn?=b(1)1b(2)2b(k)kb(k)n?反复进行上述过程,那么,经过n-1步消元,最后便得到如下的与原方程组同解的上三角形方程组:a(1)11a(1)12…a(1)1n0a(2)22…a(2)2n…………00…a(n)nn?x1x2xn?=b(1)1b(2)2b(n)n?(4)由此可以看出,经过了n-1步逐步消元后,矩阵已经化成上三角形式,此时由(4)的最后一个方程就可求出xn,然后将xn代入倒数的第二个方程,求出xn-1,依次类推,可顺序解出xi,x……最后,由第一个方程求出x1。从而可得方程组的解为:xn=b(n)/a(n)nnxk=(b(k)k-nj=k+1a(k)kjxj)/a(k)kk,k=n-1,n-2,…,2,1?总之,高斯列主元消去法大概可分为

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验一 列 【实验内容】 1. 理解高斯顺序; 2. 理解元高斯在求解精度上的优点; 3. 完成列的程序; 4. 会用系统内置命令求解有唯一解的线性方程组; 【试验方与步骤】 一 、 回答下面的问题 1. 什么是线性方程组直接解和迭代解,各自的特点和使用问题类型是什么? 2. LU 分解是直接解还是迭代解, L 、 U 矩阵的特点是什么,应用在哪些问题 ,请举例说明。 3. 给出一个舍入误差严重影响计算结果精度的例子,试着能否从多个角度说明产 生该问题的原因。 4. 迭代解的收敛性有什么意义,收敛条件用什么判定? 5. 给出例子,并说 明迭代收敛的速度。 二 、 完成下列计算,写出代码 1. 用 crame 则、用 LU 分解函数、逆矩阵函数分别完成 P35 例 3.2.1 2. 编写列程序,完成 P35 例 3.2.1 和习题 3 第 2 题 3. 用雅克比、高斯 塞德尔和 SOR 迭代完成习题 3 第 13 题,进行收敛速度的比较 分析 第 2 页 共 13 页 【实验结果】 一、第一大题 1.线性方程组的解 2.LU 分解 1. LU 分解属于直接解 2. L 矩阵特点:一个对角线上的元素全为1 的下三角矩阵(即单位下三角矩阵)。 3. U 矩阵特点:上三角矩阵 4. 应用:LU 分解要应用在数值分析,用来解线性方程、求反矩阵或计算行列式 解 直接解 迭代解 定义 经过有限步算数运算,可求得方程组 的精确解的方 用某种极限过程逐步逼近线性 方程组精确解的方 特点 运算步骤有限、可得精确解 极限逼近思想 适用问 题类型 计算过程没有舍入误差 向量值序列收敛于向量* x 即 *) ( limx x k k = → 举例    − = + = 3 20 26 5 2 8 x y x y    = − = = = = −    − = + = * 1 * 2 53 106 2, 1 3 20 26 50 20 80 y x x x y x y x y 即有精确解 ,所以 两式相加,得    − = + = 3 20 26 5 2 8 x y x y , 0,1,2,... 0.15 1.3 0.4 1.6 ( 1) ( ) ( 1) ( ) =     = − = − + + + k y x x y k k k k 改写为迭代公式 其结果不断逼近精确解 然后不断迭代, 取 0,得 1.6, -1.3, (0) (0) (1) (1) x = y = x = y = 第 3 页 共 13 页 3.舍入误差严重影响计算结果精度的例子 建立 dx的递推公式 x x I n n  + = 1 0 5 (教材第二页) 1:      − = − = − 1 0 5 1 5 ln 6 ln n In n I I 2: 由0  In  In − 1,得5In − 1  In +5In − 1  6In − 1      = − +    =  +    + =    − − − n I I I I n I n n I I n n n n n 5 1 5 1 0.0087301587 0.0087301587 2 1 ) 5 21 1 6 21 1 ( 5 1 6 1 0 1 5 1 20 20 将 1 带入上式,得 1 由于计算机只能存储有限位小数,所以在1 ,随着n 的增大,其误差就会越来 越大,最后很大程度的偏向精确解;但是在2 尽管20 I 取得比较粗略,但是随着n 的增大,其误差随传播逐步缩小,所以其最后计算得到的结果是可靠的。 4.迭代解的收敛性 迭代解 的收敛性 意义 无线逼近精确解,便于在计算机上实现编程 收敛条件的 判定 向量值序列收敛于向量x * 即 * ( ) limx x k k = → 第 4 页 共 13 页 5.举例说明迭代收敛的速度 分别用雅可比迭代(J)、高斯—塞德尔迭代(G-S)、超松弛迭代(SOR)计算方组 =            − − − − 0 1 4 1 4 1 4 1 0           3 2 1 x x x =   10 8 10 雅可比迭代 高斯—塞德尔迭代 次 数 X1 X2 X3 误差 次数 X1 X2 X3 误差 1 2.5000 2.0000 2.5000 2.1594954 1 2.5000 2.6250 3.1563 1.4570586 2 3.0000 3.2500 3.0000

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值