이 코드는 LU 분해를위한 코드이지만 L 및 U의 행렬식을 포함하여 출력이 LU 또는 PLU의 행렬식을 결정할 수 있도록하려고합니다.MATLAB : LU 분해에 결정자를 포함하는 방법
function [ P, L, U ] = LUdecomposition(A)
A=input('matrix A =');
m = size(A);
n = m(1);
L = eye(n);
P = eye(n);
U = A;
for i=1:m(1)
if U(i,i)==0
maximum = max(abs(U(i:end,1)));
for k=1:n
if maximum == abs(U(k,i))
temp = U(1,:);
U(1,:) = U(k,:);
U(k,:) = temp;
temp = P(:,1);
P(1,:) = P(k,:);
P(k,:) = temp;
end
end
end
if U(i,i)~=1
temp = eye(n);
temp(i,i)=U(i,i);
L = L * temp;
U(i,:) = U(i,:)/U(i,i);
end
if i~=m(1)
for j=i+1:length(U)
temp = eye(n);
temp(j,i) = U(j,i);
L = L * temp;
U(j,:) = U(j,:)-U(j,i)*U(i,:);
end
end
end
P = P';
end
결정자를 포함하면 무엇을 의미합니까? 출력 인수에 추가하는 것을 의미합니까? – percusse
출력 대신에 P = P '가되도록 출력하려면 det (LU) – dupsy
'function [P, L, U, detLU] = LU 분해능 (A) ......... detLU = det (L * U) end' – percusse