안녕하세요 여러분, GEPP를 사용하여 행렬식 (이 부분은 이미 계산 한 것)과 역행렬을 계산할 프로그램을 작성하고 있습니다. 여기서 문제는 GEPP를 사용하여 행렬을 역행하는 방법을 완전히 알지 못하기 때문에 발생합니다. Gauss Elimination ([A | I] => [I | B])을 사용하여 역산하는 법을 알고 있습니다. 나는 인터넷을 통해 검색했지만 아직 단서가 없다. 나를 설명해 주시겠습니까? 여기Gaussian Elimination by Partial Pivoting에 의한 행렬 역함수 찾기
function [det1,X ] = gauss_czesciowy(A, b)
%GEPP
perm=0;
n = length(b);
if n~=m
error('vector has wrong size');
end
for j = 1:n
p=j;
% choice of main element
for i = j:n
if abs(A(i,j)) >= abs(A(p,j))
p = i;
end
end
if A(p,j) == 0
error('Matrix A is singular');
end
%rows permutation
t = A(p,:);
A(p,:) = A(j,:);
A(j,:) = t;
t = b(p);
b(p) = b(j);
b(j) = t;
if~(p==i)
perm=perm+1;
end
% reduction
for i = j+1:n
t = (A(i,j)/A(j,j));
A(i,:) = A(i,:)-A(j,:)*t;
b(i) = b(i)-b(j)*t;
end
end
%determinant
mn=1;
for i=1:n
mn=mn*A(i,i);
end
det1=mn*(-1)^perm;
% solution
X = zeros(1,n);
X(n) = b(n)/A(n,n);
if (det1~=0)
for i = 1:n
s = sum(A(i, (i+1):n) .* X((i+1):n));
X(i) = (b(i) - s)/A(i,i);
end
end
end
부분)을 검색하면 http://math.stackexchange.com/이이 질문을하기에 더 좋은 장소 일 수 있습니다. –