doolittle.m

来自「为配套王能超版本数值分析简明教程编写,方便学生教师演示!」· M 代码 · 共 34 行

M
34
字号
function [L,U,x]=Doolittle(A,b)
[n,m]=size(A);
if n==m & det(A)~=0
    for i=1:n;
    U(1,i)=A(1,i);L(i,i)=1;
    L(i,1)=A(i,1)/U(1,1);
    end
    for k=2:n;
        for j=k:n;
            s=0;
            for r=1:k-1;
                s=s+L(k,r)*U(r,j);
            end
            U(k,j)=A(k,j)-s;
        end
        for i=k+1:n;
            s=0;
            for r=1:k-1;
                s=s+L(i,r)*U(r,k);
            end
            L(i,k)=(A(i,k)-s)/U(k,k);
        end
    end
    y(1)=b(1)/L(1,1);
    for i=2:n;
        y(i)=(b(i)-L(i,1:i-1)*y(1:i-1)')/L(i,i);
    end
    x(n)=y(n)/U(n,n);
    for j=n-1:-1:1;
        x(j)=(y(j)-U(j,j+1:n)*x(j+1:n)')/U(j,j);
    end
else 
       disp('此矩阵不为方阵,不能进行lu分解')
end

⌨️ 快捷键说明

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