% ピボット型LU分解（メモリ節約型）
% n次の正方行列AのLU分解A = LUを計算するピボット型アルゴリズム
% Lの計算結果を配列Aの下三角部（対角部を除く）に
% Uの計算結果を配列Aの上三角部に格納する．

A = [ 2, -1, -5;...
      3, -4,  1;...
     -2,  7,  3 ];
n = 3;

for k = 1:n
    % 行列UとLの計算
    A(k+1:n,k) = A(k+1:n,k)/A(k,k);
    % 行列Aの更新
    A(k+1:n,k+1:n) = A(k+1:n,k+1:n) - A(k+1:n,k)*A(k,k+1:n);
end

A
