用列主元Gauss消去法求解方程组(matlab代码实现)

用列主元Gauss消去法求解方程组

【摘要】

       在本论文中所讲的列主元消去法是在高斯消去法的消去过程中,在待消元的所在列中选取主元,即把那列中未知数的系数绝对值最大者作为主元,将方程的行交换,置于著元素对角线位置处后在进行消元的方法。在列主元消去法中,未知数仍然是按照顺序消除的,通过选主元能避免误差被放大的情况,可以提高界的精度。

【关键词】列主元消去 高斯消去 选取主元 系数绝对值最大

一、背景

   人们在应用高斯消去法求解的过程中发现他的计算具有一定的局限性,只有在≠0的情况下才可以正常进行计算,是按照方程组中方程给定的顺序进行的,但是当=0时,消元过程就无法进行。另外,即使当≠0时,如果其他值很小,用它做除数时,根据数值运算应遵循的原则知道这种情况舍入误差会增大,严重影响计算结果的精度。为克服这一局限性,我们便可以引入本论文所要讨论的方法—列主元高斯消去法。

二、  算法的理论推导 

编程思路:

1、输入矩阵阶数n,增广矩阵A(n,n+1)

2、对k=1,2,…n

    (a)按列主元,选取l使

    (b)如果l≠k,交换A(n,n+1)的第k行与第l行元素。

    (c)消元计算:

              i=k+1,…,n

          i=k+1,…,n  j=k+1,…,n+1

3、回代计算:

            i=n,n-1,…,1

4、输出解向量,…,。

三、  算法的程序实现

A=input('输入系数矩阵A:');
B=input('输入b向量(按行向量):');
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

四、  问题的描述

例题:用列主元消去法求解下列方程组

     用列主元Gauss消去法求解方程组(matlab代码实现)_第1张图片

算法的程序实现如上图所示。

五、  小结

通过学习《数值分析》这门课程,我感觉我的逻辑思维得到了很大的提高,其中的逼近思想与各种理论体系的融汇贯通让我感受到了数学的魅力,误差的谨慎处理让我感受到了数学的严谨性,数值分析带给我的快乐是让我真正理解了什么是数学,对数学这个学科有了更深的认识,通过《数值分析》这门课程的学习让我对数学方向了有了规划,更有了前进的动力。

 

 


你可能感兴趣的:(用列主元Gauss消去法求解方程组(matlab代码实现))