首页 > 其他分享 >数值分析实验3:LU分解及列主元高斯去法

数值分析实验3:LU分解及列主元高斯去法

时间:2022-11-11 00:55:31浏览次数:40  
标签:end 去法 Aug 及列 主元 LU

LU分解及列主元高斯去法

(一)实验目的与要求

1.  通过编程计算实践,理解体会LU分解及列主元高斯去法的思想。

2.  通过编程计算实践,熟练各种算法的计算流程。

3.  通过各种方法对同一题目的求解,体会各种方法的精度差异。

4. 通过编程计算实践,深入领会和掌握迭代算法的改进思路,提高对算法

改进技巧的本质的认识以及算法流程的实际控制技术。

 

(二)实验内容或原理   

  1. 用LU分解及列主元高斯去法解出如下线性方程组

 

 

 

  1. 用上述方法求出他们的实数根,精确度0.0001
  2. 分析各种方法的差异率:分析收敛速度和总计算量之间的关系。

 

(三)实验主要仪器设备及材料

 PC微机,Mcrosoft Windows 操作系统,Microsoft Office Powerpoint 2003。C语言等计算机编程语言。

 

(四)实验报告要求

填写实验报告,包括姓名、学号、专业班级和实验名称等项。完成以下各项具体要求后,交给老师。


实验5_1_1

clear;clc;

A=[

    10 -7 0 1;

    -3 2.099999 6 2;

    5 -1 5 -1;

    2 1 0 2

    ];

b=[8;5.900001;5;1];

[m,n]=size(A);

L=eye(n);

U=zeros(n);

flag='ok';

for i=1:n

    U(1,i)=A(1,i);

end

for r=2:n

    L(r,1)=A(r,1)/U(1,1);

end

for i=2:n

    for j=i:n

        z=0;

        for r=1:i-1

            z=z+L(i,r)*U(r,j);

        end

        U(i,j)=A(i,j)-z;

    end

    if abs(U(i,i))<eps

        flag='failure';

        return;

    end

    for k=i+1:n

        m=0;

        for q=1:i-1

            m=m+L(k,q)*U(q,i);

        end

        L(k,i)=(A(k,i)-m)/U(i,i);

    end

end

L

U

y=L\b;

x=U\y;

detA=det(L*U)

 

 


实验5_1_2

function x=shiyan5_1_2(A,b);

A=[

    10 -7 0 1;

    -3 2.099999 6 2;

    5 -1 5 -1;

    2 1 0 2

    ];

b=[8;5.900001;5;1];

[n,n]=size(A);

x=zeros(n,1);

Aug=[A,b];

for k=1:n-1

    [piv,r]=max(abs(Aug(k:n,k)));

    r=r+k-1;

    if r>k

        temp=Aug(k,:);

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

        Aug(r,:)=temp;

    end

    if Aug(k,k)==0,error('对角元出现0'),end

    for p=k+1:n

        Aug(p,:)=Aug(p,:)-Aug(k,:)*Aug(p,k)/Aug(k,k);

    end

end

A=Aug(:,1:n);

b=Aug(:,n+1);

x(n)=b(n)/A(n,n);

for k=n-1:-1:1

    x(k)=b(k);

for p=n:-1:k+1

    x(k)=x(k)-A(k,p)*x(p);

end

x(k)=x(k)/A(k,k);

end

detA=det(A)

标签:end,去法,Aug,及列,主元,LU
From: https://www.cnblogs.com/zhangfurong/p/16879353.html

相关文章