dolittle.m

来自「Doolittle是一种解矩阵的方法 它的作用是对矩阵进行lu分解」· M 代码 · 共 47 行

M
47
字号
function [L,U,x]=Dolittle(A,b)
%A=input('please your data A=','s'); %输入所求的A
%b=input('please your data b=','s'); %输入所求的b
b=b';
[n,n]=size(b); %求循环次数
for j=1:n %上三角阵第一行元素的赋值
    U(1,j)=A(1,j);
end
for i=2:n %下三角阵第一列元素的赋值
    L(i,1)=A(i,1)/U(1,1);
end
for k=2:n
    for j=k:n % 求U
        for t=1:k-1
            U(k,j)=A(k,j)-L(k,t)*U(t,j);
        end
    end
    for i=k+1:n
        for t=1:k-1 %求L
            L(i,k)=A(i,k)-L(i,t)*U(t,k);
        end
        L(i,k)=L(i,k)/U(k,k);
    end
end
y(1)=b(1);
for i=2:n
    for t=1:i-1
        y(i)=b(i)-L(i,t)*y(t);
    end
end
x(n)=y(n);
for i=n-1:-1;1
    for t=i+1:n
        x(i)=y(i)-U(i,t)*y(t);
    end
    x(i)=x(i)/U(i,i);
end
disp(U)

   


    

    

            

⌨️ 快捷键说明

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