
function [L, U] = lu_nopivot(A) 
%vous pouvez appeller cette fonction en tapant  [L,U]=lu_nopivot(A) avec
%votre choix de A; il faut que vous mettiez ce fichier sur votre "path"
%donc si vous avez une erreure, choisir "Add to path"
n = size(A, 1); % nombre de lignes de 
L = eye(n); % On commence avec L=I et on produira lentement L
U = A;  %On commence avec U=A et on produira lentement U
for k = 1 : n
    if U(k,k)==0  %si l'élément sur la diagonale est nulle, on est pris
        disp('erreure: aucune décomposition LU')
        return;  %retourner sans finir
    end;
    % Autrement: il faut diviser la k-ieme ligne de U par U(k,k)
    % Puis éliminer les éléments en dessous.
    % On retient ces coéfficients (multiplicateurs) en L:
    L(k,k) = U(k,k);
    L(k + 1 : n, k) = U(k + 1 : n, k);
    % Puis on effectue ces opérations sur U:
    U(k,:) = U(k,:)/L(k,k);
    for l = k + 1 : n
        U(l, :) = U(l, :) - L(l, k) * U(k, :);
    end
end
end