본문 바로가기

공학 문제해결/수학

3x3 행렬식 Determinant 쉽게 구하는 방법

안녕하세요. 이번 포스팅에서는 행렬식(D, determinant)를 구하는 방법에 대하여 알아보려고 합니다.

특히, 3x3 정방행렬에 대해서 쉽게 푸는 방법을 알려드려고 합니다. 대학에 들어와서도 아래와 같이 행렬식을 계산하지 않고, 조금 더 쉽게 푸는 방법을 익혀서 사용하고 있습니다. 이를 통해서 3x3 행렬의 행렬식(determinant)도 몇초 안에 계산해보겠습니다.

우선, 일반적으로 행렬식을 구하는 과정은 다음과 같습니다.


1x1 행렬은 원소의 개수가 1개뿐이므로 행렬식도 그 원소 그대로 나오게 됩니다. 다른 작업을 할 여지가 없습니다.

2x2 행렬은 중*고등학교 때에 익히 배우셨던, D = ad - bc 라는 공식을 통해서 행렬식을 구할 수 있습니다. 즉, 아래와 같은 내용을 배우셨을 겁니다. 2x2 행렬의 원소를 각각 a,b,c,d로 두고 이것의 행력식은 아래에서 첫번째 계산이며, 두번째 줄은 이 행렬의 역행렬을 계산하는 방법입니다. 이까지는 수능공부를 하셨더라면 아주 쉽게 구하실 수 있는 부분입니다.


이제 문제는 3x3 행렬부터 입니다. 이렇게 크기가 커지게 되면, 행렬 계산을 손으로 하기가 힘들어지기 시작하는데요. 이를 위해서 MATLAB이라는 공학 범용 프로그램을 이용해서 손쉽게 구할 수도 있지만, 3x3 행렬까지는 눈으로도 풀 수 있도록 아래의 방법을 익혀두시면 좋습니다. (MATLAB에 대한 내용도 문제풀이 위주로 포스팅하고 있으니 블로그 카테고리를 참고해주세요.)

3x3 행렬도 우선, 기본적으로는 아래와 같이 구할 수 있습니다.


각각의 원소가 지정되어 있고, 위처럼 첫행의 원소에 (해당하는 행, 열의 값을 제외한) 나머지의 행렬식을 곱해주면서 차례로 더하고 빼는 형식입니다. 이렇게 계산하게되면 위 공식에서 우항처럼 2x2 행렬의 행렬식을 구하는 과정으로 바뀌기 때문에 3x3 행렬을 2x2 행렬로 차원을 낮춰서 풀 수가 있게 됩니다.

이와같이 4x4 행렬도 3x3 행렬로 바꾼뒤에 다시 2x2 행렬로 바꾸게 되면 행렬식을 손으로 계산할 수 있습니다. 하지만, 컴퓨터라는 아주 좋은 계산기가 있기 때문에 큰 행렬은 컴퓨터에게 넘겨줍니다. 우리는 3x3 행렬을 위의 방식보다 쉬운 방법을 배워보겠습니다.


3x3 행렬은 위와 같이 행렬식(D, determinant)를 적을 수 있습니다. 행렬은 ' [ ] ' 기호로 표시하고, 행렬식은 ' | | ' 기호로 일반적으로 표시합니다. 이제 쉽게 풀려면,


위와 같이 1, 2번째 열을 우측에 붙여줍니다. 빨간색 선이 있는 좌측에서 선이 지나가는 원소들을 다 곱해준 뒤에, 더해줍니다. 그리고 마이너스(빼기, -)를 붙여주고 우측에 있는 파란색 선이 지나가는 원소들을 곱해주어 더해준 값을 빼주게 됩니다. 이렇게 되면 앞에서 3x3 행렬식을 구하기 위해서 2x2 행렬식으로 낮췄던 방법과 동일한 결과를 얻을 수 있습니다. 실제로 2x2 행렬식으로 낮춰주는 공식을 아래와 같이 그대로 쭈욱 전개하면 위의 빨강*파랑 선으로 표시한 계산결과와 동일하다는 것을 알 수 있습니다.


위와 같이 말씀드렸던 내용은 전개할 수 있습니다. 여기서 마지막 줄에 보시면 좌측에 3개의 항은 위에서 표시한 빨간색 선으로 된 부분의 내용이고, 마이너스(빼기, -) 이후에 괄호()내에 보시면 파란색 선으로 표시된 부분의 내용이 들어가 있는 것을 보실 수 있습니다. 이런식으로 전개한 내용이 더 쉽게 이해하고 외울 수 있기 때문에 사용하시는 것을 추천드립니다. 그리고 설명하기 위해서 행렬식에서 1, 2번째 열을 우측에 붙여둔 것이지만, 실제로 구할 때에는 거기에 숫자가 적혀있다라고 생각만 하신 뒤에 대각선을 그어보시면서 계산하게 되면, 3x3 행렬의 행렬식을 구하는 데에 10초도 걸리지 않습니다.

즉, 좌측 위에서 부터 그은 직선을 모두 곱해줘서 더해준 다음, 우측 위에서 부터 그은 직선들의 곱의 합들을 빼주면 됩니다. 2x2 행렬식으로 낮춰서 풀게되면 우선, 전개하면서 적느라 10초가 지나갈텐데, 한시가 급한 저희들에게는 10초 만에 이렇게 3x3 행렬식을 구하는 방법이 더 좋을 수 있습니다.

이번 포스팅에서는 3x3 행렬식을 최대한 간단하게 풀어보는 방법에 대해서 집중적으로 알려드렸습니다. 추후 기회가 된다면, 댓글을 통해 올라오는 질문들에 답할 예정입니다. 궁금한 점이 생기신다면, 질문해주시면 감사하겠습니다. 이상!



【MATLAB】 기초 연습문제 2.5 (함수, plot)

【MATLAB】 문제 2.18 풀이

【MATLAB】 제곱근을 근사적으로 구하는 방법 - 나눔과 평균 문제풀이


  • Radian 2018.11.29 18:45 신고 댓글주소 수정/삭제 댓글쓰기

    덕분에 꿀팁 얻고 갑니다.
    궁금한게 있는데 해당 방법은 3차 이하 행렬만 해당되는지 궁금해서 질문 올립니다.
    한 번 심심해서 4차나 5차에도 적용이 되는지 궁금해서 위와 같은 방법으로 해봤는데 답이 다르게 나오네요.
    4차 같은 경우에는 4차행렬 옆에다가 4x3 부분만 떼서 옆에 붙였고 5차도 이와 같은 방법으로 옆에다가 5x4 부분을 떼서 붙였는데, 이 방법은 틀린가요?

    • 4차 이상 정방행렬에서는 위 내용처럼 3차 정방행렬로 바꾸셔서 진행하시면 가능합니다. (행렬식을 구하기 위해서)

      우선 제가 '4차행렬 옆에다가 4x3 부분만 떼서 옆에 붙였고'의 말을 제대로 이해하지 못하겠네요ㅠㅜ

      4차행렬의 경우에도 위에 있는 사진을 참고해서 3차행렬로 바꾸실 수 있습니다.

      포스팅 제일 첫 사진을 보시면, 3차 행렬을 2차행렬로 바꿔서 행렬식을 구하는 것을 보실 수 있는데, 4차 행렬의 경우에도 이런 식으로 3차 행렬로 변환할 수 있습니다. 그리고 난 뒤에 제가 작성했던 방식대로 풀이를 진행하신다면 빠르게 풀이가 가능합니다.

      (글로 전달드리는 것이라 정확하게 이해시켜드리지 못한거 같아 죄송하고 후에 시간이 된다면 이 부분에 대해서도 포스팅을 진행해보도록 하겠습니다.)