deslu.m

来自「programas matlab metodos numericos」· M 代码 · 共 31 行

M
31
字号
%antes de ejecutar cargar una matriz X y un vector solucion v
n=length(X);
%obtiene el largo de la matriz X
d=1;
for j=2:n
d=det(X(1:j,1:j))*d;
end
%verifica si tiene descomposicion LU (no tiene si d=0)
if d~=0
    [L,U,P] = lu(X);
    % descomposicion LU percial de la matriz X
    v(1:n,1)=P(1:n,1:n)*v(1:n,1);
    %permuta la filas del vector solucion v
        s(1,1)=v(1,1);
    for i=2:n
        s(i,1)=(v(i,1)-L(i,1:i-1)*s(1:i-1,1));
    end
    % resuelve el sistema L*s=v
    x(n,1)=s(n,1)/U(n,n);
    for k=n-1:-1:1
        x(k,1)=(s(k,1)-U(k,k+1:n)*x(k+1:n,1))/U(k,k);
    end
    %resuelve el sistema U*x=s
     x
    %muestra x
else
    %codigo cuando no se puede resolver
    'segui participando'
end

⌨️ 快捷键说明

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