역행렬 출력 프로그램을 짜고싶은데요..
지나
엣전에도 올렸지만..
방법이 2가지라는군요 -_-;;
가우스 조르단이 존재하는건 알지만...
이 방법으로 하지말고, 직접 수반행렬을 이용해서 풀어보라는군요...;일단, 방법은 아는데, 제가 이것을 어떻게 구현해야하는지를 모르겠습니다.. 워낙에 C는 허접이라;;
수학적으로는 풀기가 참 좋은데... 이걸 컴퓨터로 짜야하니.. 막막... -ㅅ-..
방법은 일단 올려놓을테니.. 도움좀 부탁드립니다;
에서 이 포함되는 행과 열을 제외한 나머지 원소들만으로 된 행렬식을 에 대한 소행렬식이라 부르고 기호로 이라 쓴다. 한편 이 포함되는 행과 열의 원소를 모두 0이라 하고 의 자리에 1을 넣은 행렬식을 여인수라 정의하고 이라 하자. 일반적으로 와 의 관계는 (4)와 같다. (1)을 전개하면 (5)가 된다. (5)를 로 각각 묶어 정리한 것이 (6)이다. 3.2. 여인수전개 (6)을 소행렬식을 이용해 표현한 것이 (7)이다. (8)을 의 제1행에 대한 여인수전개라 한다. 여인수전개는 어떤 행(혹은 열)에 대해서도 성립한다.
3행3열까지의 행렬식은 사루스법칙으로 비교적 쉽게 풀 수 있지만, 4행4열 이상은 직접 푸는 것이 꽤 어렵다. 따라서 n차 행렬식을 여인수전개를 통해 n개의 (n-1)차 행렬식으로 분해하여 푼다. 이때 행렬식의 성질을 이용 하여 특정 행(혹은 열)에 0을 많이 만든 후 그 행을 중심으로 여인수전개하면 계산 량을 줄일 수 있다.
P.
예1)아래 행렬렬식을 간단히 하여 구해보자. 풀이
: 제1열에 제2열을 3배한 값을 빼줌.
: 제1행에 대해 여인수전개 예2)아래 행렬렬식을 간단히 하여 풀어보자.
풀이
[풀이 팁]
0이 많은 행(혹은 열)을 지목한다.
행렬식의 성질을 이용하여 그 행에 0을 많이 만든다
지목한 행을 중심으로 여인수전개 한다
제1열을 가지고 여인수전개를 하면,
원식
: 제1행에 제3행을 더해줌
: 제1열에 대해 여인수전개
3.3 역행렬 구하기 --------------- (9) 여인수를 원소로 하는 행렬 를 본래 행렬 의 여인수행렬이라 한다. 여인수행렬을 전치한 행렬 를 수반행렬 혹은 전치여인수 행렬이라 한다.
--------------- (10) --------------- (11)
-
든해솔
3 * 3겠죠? 정방행렬의 크기에 제한을 두지 않는 조건을 둔다면, 문제 난이도가 팍 올라갑니다. 만약 정방행렬의 크기에 제한을 두지 않는 조건이 붙는다면, 행렬식 구하는 데는 인터넷을 찾아보니까 LU 분할법이 있더군요.
% 임의의 행렬 M으로 부터 상삼각행렬 L 하삼각행렬 U로 분할한다. 이 때 두 행렬의 관계는 M = L * U
[L, U] = lu(M);
% 행렬식은 다음의 식으로 구해진다.
det(M) = det(L) * prod( dia