数值分析实验二:列主元素高斯消去法和列主元素高斯-约当消去法的比较研究

本实验的目的是使用列主元素高斯消去法和列主元素高斯-约当消去法解决线性方程组Ax=b,其中A为n阶非奇异方阵,x、b是n阶列向量。我们将对这两种方法进行比较研究,并分析选主元素的重要性。

一、实验目的:

在数值分析中,解决线性方程组是非常重要的一步骤。列主元素高斯消去法和列主元素高斯-约当消去法都是解决线性方程组的常用方法。本实验的目的是使用这两种方法解决线性方程组Ax=b,並比较它们的优缺点。

二、实验方法:

1.列主元素高斯消去法:在每步消元过程中,选列主元素。对k=1,2,…,n-1,逐次计算lik=aik(k-1)/akk(k-1),aij(k)=aij(k-1)-likakj(k-1),bi(k)=bi(k-1)-likbk(k-1)。逐步回代求得原方程的解xk=(bk(k-1)- ∑j=k+1nakj(k-1)xj)/akk(k-1)。

2.列主元素高斯-约当消去法:在每步消元过程中,选列主元素。对k=1,2,…,n,逐次计算akj(k)=akj(k-1)/akk(k-1),aij(k)=aij(k-1)-aik(k-1)*akj(k)。逐步回代求得原方程的解xk=(bk(k-1)- ∑j=k+1nakj(k-1)xj)/akk(k-1)。

三、实验内容:

我们使用以下方程组进行实验:

x1 + 1.1348x2 + 3.8326x3 + 1.1651x4 = 9.5342

0.5301x1 + 1.7875x2 + 2.5330x3 + 1.5435x4 = 6.3941

3.4129x1 + 4.9317x2 + 8.7643x3 + 1.3142x4 = 18.4231

1.2371x1 + 4.9998x2 + 10.6721x3 + 0.0147x4 = 16.9237

四、实验程序:

我们使用MATLAB编程语言编写了两个函数:agui_gauss和agui_gaussJodon,分别实现列主元素高斯消去法和列主元素高斯-约当消去法。

1)列主元素高斯消去法:


function x = agui_gauss(a,b)

n = length(b);

a = [a,b];

for k = 1:(n-1)

    [ar,r] = max(abs(a(k:n,k)));

    r = r+k-1;

    if r > k

        t = a(k,:);

        a(k,:) = a(r,:);

        a(r,:) = t;

    end

    a((k+1):n,(k+1):(n+1)) = a((k+1):n,(k+1):(n+1))-a((k+1):n,k)/a(k,k)*a(k,(k+1):(n+1));

    a((k+1):n,k) = zeros(n-k,1);

end

x = zeros(n,1);

x(n) = a(n,n+1)/a(n,n);

for k = n-1:1

    x(k,:) = (a(k,n+1)-a(k,(k+1):n)*x((k+1):n))/a(k,k);

end

2)列主元素高斯-约当消去法:


function x = agui_gaussJodon(a,b)

n = length(a);

a = [a,b];

for k = 1:n

    m = a(k,k);

    for j = k:n+1

        a(k,j) = a(k,j)/m;

    end

    for i = 1:n

        w = a(i,k);

        for j = k:n+1

            if(i~=k)

                a(i,j) = a(i,j)-w*a(k,j);

            end

        end

    end

end

x = zeros(n,1);

for i = 1:n

    x(i) = a(i,n+1)/a(i,i);

end

想要深入了解高斯消去法的更多细节和应用?可以参考以下资源:数值分析高斯消去法数值分析高斯消去法matlab实验3.1高斯消去法的数值稳定性实验。这些链接将为您提供更全面的解答和相关实验案例。

五、实验结果:

通过实验,我们可以看到,列主元素高斯消去法和列主元素高斯-约当消去法都可以解决线性方程组Ax=b。但是,它们在计算效率和数值稳定性方面存在一定的差异。我们可以通过实验结果来比较这两种方法的优缺点。

六、结论: