其他分享
首页 > 其他分享> > 大连理工大学矩阵与数值分析上机实验

大连理工大学矩阵与数值分析上机实验

作者:互联网

目录

2020年所有上机实验代码结果

2.1

代码

结果

获取方式,微信搜索公众号 “技术乱舞”

扫码关注下方微信公众号,回复“矩阵实验”或者“dlut”即可获得所有代码实验结果


2020年所有上机实验代码结果


2.1

分别利用Gauss消元法和列主消去法编程求解方程组 ,其中

A=\begin{bmatrix} 31 & -13 &0 &0 &0 &-10 &0 &0 &0 \\ -13& 35 & -9 &0 &-11 &0 &0 &0 &0 \\ 0 &-9 &31 &-10 &0 &0 &0 &0 &0 \\0 &0 &-10 &79 &-30 &0 &0 &0 &-9 \\0 &0 &0 &-30 &57 &-7 &0 &-5 &0 \\0 &0 &0 & 0 &-7 &47 &-30 &0 &0 \\0 &0 & 0 &0 &0 &-30 &41 &0 & 0 \\0 &0 &0 &0 &-5 &0 &0 &27 &-2 \\0 &0 &0 &-9 &0 &0 &0 &-2 &29 \end{bmatrix}

 b=(-15,27,-23,0,-20,12,-7,7,10)^{T}

并求出矩阵分解及列主元的分解(求出),并用分解的方法求的逆矩阵及的行列式


代码

function [x , L,U,Ani] = DelGauss(A,b)
% Gauss 消去法
% 输出解x,L,U,A的逆矩阵
Acopy=A;
n = length(b);
L = zeros(n,n);
for k = 1:n-1
    mul = A(k+1:n,k)/A(k,k);
    L(k+1:n,k) = mul;
    A(k+1:n,k+1:n) = A(k+1:n,k+1:n) - mul * A(k,k+1:n);
    b(k+1:n) = b(k+1:n) - mul * b(k);
    A(k+1:n,k) = zeros(n-k,1);
end 
x = zeros(n,1);
x(n) = b(n)/ A(n,n);
U = A;
for k = n-1:-1:1
    x(k) = (b(k) - A(k,k+1:n) * x(k+1:n))/A(k,k);
end
L(logical(eye(size(L))))=1;
Uni=inv(U);
Lni=inv(L);
Ani=Uni*Lni;


function [x,L,U,P] = ZGauss(A,b)
% 列主元Guass 消去法
% 输出解x,L,U,P
n = length(b);
L = zeros(n,n); 
P = eye(n,n);
for k=1:n-1
    [ap,pos] = max(abs(A(k:n,k)));
    pos = pos +k -1;
    if pos > k
        A([k,pos],:) = A([pos,k],:);
        b([k pos],:) = b([pos,k],:);
        P([k,pos],:) = P([pos,k],:);
    end
    mul = A(k+1:n,k) / A(k,k);
    L(k+1:n,k) = mul;
    A(k+1:n,k+1:n) = A(k+1:n,k+1:n) - mul * A(k ,k+1:n);
    b(k+1:n) = b(k+1:n) - mul * b(k);
    A(k+1:n,k) = zeros(n-k,1);
end
x = zeros(n,1);
x(n) = b(n) / A(n,n);
U = A;
for k = n-1:-1:1
    x(k) = (b(k) - A(k,k+1:n) * x(k+1:n)) / A(k,k);
end
L(logical(eye(size(L))))=1;

结果

高斯消元法结果

列主高斯消元法结果

获取方式,微信搜索公众号 “技术乱舞”

扫码关注下方微信公众号,回复“矩阵实验”或者“dlut”即可获得所有代码实验结果

标签:end,大连理工大学,上机,矩阵,pos,实验,zeros,mul
来源: https://blog.csdn.net/aeneag/article/details/120657320