본문 바로가기

수학/수치해석

11차시 - 반복법과 역행렬 (2)

2. 역행렬

1) 역행렬이란

  • An×m 행렬일 경우 AB=BA=I를 만족하는 행렬 B
  • A,의 역행렬은 A^(-1)이라고 표현

  • detAa의 행렬식
  • adjA는 행렬 A의 원소들에 대응하는 여인수들로 된 행렬의 전치행렬

  • 보기 2와 같이 detA0일 경우 역행렬이 존재하지 않음.
  • 행렬 A의 역행렬이 존재할 경우

  • 보기 3과 같이 연립방정식의 해를 구할 수 있음.

 

 

2) 역행렬구하기

  • 2 x 2 행렬의 역행렬

 

  • 3 x 3 행렬의 역행렬

 

 

3) 가우스-조르당 방법을 이용한 역행렬

  • Ax=b의 역행렬식은 Ax=Ib와 같음
  • 두 행렬 AI에서 기본행연산을 수행하더라도 등식은 성립
  • 행렬 A에 가우스 조르당법을 적용하여 행렬 A를 단위행렬로 만들고, 행렬 I에 같은 연산과정을 적용

  • Ax=Ib의 행렬식은 Ix=Cb형태의 행렬식을 구함
  • x=Cb 이므로 C=A^(-1)

 

 

4) MATLAB을 이용한 가우스-조르당 방법으로 역행렬 구하기

function b = mat_inv2(a)
% Find dimensions of input matrix 
[r,c] = size(a);

% If input matrix is not square, stop function 
if r ~ = c 
	disp(‘Olny Square Matrices, please’)
	b = [];
	return
end

% Target identity matrix to be transformed into the output
% inverse matrix
b = eye(r);

%The following code actually performs the matrix inversion 
for j = 1 : r
	for i = j : r
		if a(i,j) ~= 0
			for k = 1 : r
				s = a(j,k); a(j,k) = a(i,k); a(i,k) = s; 
				s = b(j,k); b(j,k) = b(i,k); b(i,k) = s;
			end
			t = 1/a(j,j);
 
			for k = 1 : r
				a(j,k) = t * a(j,k);
				b(j,k) = t * b(j,k); 
			end
			for L = 1 : r
				if L ~= j
					t = -a(L,j); 
					for k = 1 : r
						a(L.k) = a(L,k) + t * a(j,k);
						b(L,k) = b(L,k) + t * b(j,k); 
					end
				end 
			end
		end
		break 
	end
	% Display warning if a row full of zeros is found 
	if a(i,j) == 0
		disp(‘Warning: Singular Matrix’) 
		b = ‘error’;
		return
	end 
end
% Show the evolution of the input matrix, so that we can 
% confirm that it became an identity matrix.

a

 

'수학 > 수치해석' 카테고리의 다른 글