gaussian_elimination.m

来自「用MATLAB写的Gaussian Elimination算法即LU算法」· M 代码 · 共 37 行

M
37
字号
function [L,U]=LU(A)
% Gaussian Elimination
Size=size(A);
m=Size(1,1); %计算行数
R=eye(m);%产生单位矩阵,以后用于L
n=Size(1,2);%计算列数
num=1;%设置变换的行数
Z=0;%记录行变换次数
for i=1:m
    for k=i:m
        if abs(A(i,i))<abs(A(k,i))
            temp=A(i,i);
            A(i,i)=A(k,i);
            A(k,i)=temp;
            num=k;            
        end
    end
    if i<num
        for j=(i+1):n
            temp=A(i,j);
            A(i,j)=A(num,j);
            A(num,j)=temp;            
        end
        Z=Z+1;
    end
    for k=(i+1):m
        R(k,i)=A(k,i)/A(i,i);
        for j=i:n
            A(k,j)=A(k,j)-A(i,j)*R(k,i);
        end
    end
end
disp('进行列变换的次数为:');
disp(Z);
L=R;
U=A;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?