이산 수학을 공부하다 보면 행렬에 관한 문제를 풀게 되는데요.
행렬을 배우다 보면 행렬식을 배우게 됩니다.
영어로는 determinant 라고 하면서 계산 하는 방법은 다음과 같습니다.
A 행렬이 다음과 같이 구성 되어 있을때
행렬식 det(A) = a11 * a22 - a12 * a21 과 같이 계산이 됩니다.
그렇다면 이러한 행렬식이 의미하는 것은 무엇일까요?
알고리즘에서 기하문제가 종종 나오는데...
기하 문제에서 사용하는 사각형의 부피를 구할때 이 행렬식을 이용하기도 합니다.
오늘은 이 두개의 벡터가 이루고 있는 평행사변형의 넓이에 대해 알아 볼까 합니다.
위와 같은 벡터가 두개가 있는 경우 행렬식은 이 벡터를 선형 변환 후 두 기저벡터가 이루고 있는 평행사변형의 넓이를 의미합니다.
이것을 벡터의 외적이라고도 하는데요.
위의 그림을 이용해서 행렬식을 구해 보도록 하겠습니다.
위의 두 벡터는 (2,0)(1,2) 로 이루어져 있는데요.
이것을 행렬로 표현 하면 다음과 같이 됩니다.
이 행렬식은 2*2 - 1*0 = 4 의 값이 되는데요.
그럼 이 벡터의 평행사변형 꼴의 사각형의 넓이를 의미하는데요.
두 벡터의 평행사변형 꼴은 위와 같습니다.
평행사변형의 넓이는 밑변 * 높이가 되는데요.
밑변은 2이고 높이는 2가 됩니다.
따라서 넓이는 2 * 2 = 4 와 같이 되는데요.
이러한 원리를 이용하여 삼각형의 넓이도 구할 수가 있는데요.
이러한 평행 사변형의 넓이를 구한 후에 1/2를 곱해 주면 됩니다.
그렇다면 (x1,y1)(x2,y2)(x3,y3) 의 세점을 이용한 삼각형의 넓이를 구하는 것을 살펴 보면 다음과 같겠네요.
이때 x1=0, y1=0 으로 만들게 되면 (x2-x1,y2-y1)(x3-x1,y3-y1) 과 같은 벡터를 만들 수 있겠는데요.
이것을 위와 동일한 벡터 행렬로 만들면 다음과 같이 될것입니다.
이것의 행렬식을 계산하면 (x2-x1)*(y3-y1) - (x3-x1)*(y2-y1) = x2y3-x2y1-x1y3-x3y2+x3y1+x1y2-x1y1=x1y2+x2y3+ x3y1-x1y3-x2y1-x3y2 의 값이 됩니다.
그렇다면 이 세 점을 벡터로 계산하지 말고 세 점을 이용한 삼각형의 넓이를 구해 보도록 하겠습니다.
이러한 삼각형의 넓이를 구하는 공식중 사선식이 있는데
x1,y1을 뒷쪽에 더 추가해서
파랑색은 덧셈 빨강색은 뺄셈을 하면 위와 동일한 식이 나오게 됩니다.
따라서 (x1,y1)(x2,y2)(x3,y3) 의 사선식은
(x2-x1,y2-y1)(x3-x1,y3-y1) 의 두개의 벡터를 이용한 행렬식을 이용해서 풀수도 있을것 같네요.
이때 넓이를 구하게 될때는 절대값을 취해 주어야 한다는 점은 점의 순서가 바뀌면 음수값이 나올 수 있다는 점 주의 해 주시면 될것 같습니다.
2017/09/08 - [강의실/정보영재] - 세점을 알때 삼각형의 넓이 구하기
예전에 세점을 알때 삼각형의 넓이를 구하는 방법과 두 벡터를 알때 행렬식을 이용해서 넓이를 구하는 방법과 일맥 상통하다고 보면 될것 같습니다.
이렇게 행렬식이 어떤 쓰임새로 이용되는지 알게 되면 행렬식을 구하는 방법에 대해 좀 더 흥미가 생기지 않을까 생각해서 행렬식의 기하학적 의미를 포스팅 해 보게 되었습니다.
인천 서구 원당컴퓨터 학원
'강의자료 > 정보영재' 카테고리의 다른 글
Code Block 디버그 오류(For MinGW compilers, it's 'gdb.exe') (295) | 2019.11.21 |
---|---|
행렬의 곱을 이용한 피보나치 수열 구하기 (437) | 2019.10.15 |
[컴퓨팅 사고력]2의 보수 3의 보수는 무엇일까? (8) | 2019.09.23 |
CodeBlock 환경설정 초기화 방법 (7) | 2019.09.18 |
[컴퓨팅 사고력]하노이탑 문제(Hanoi Tower Problem) 이해하기 (5) | 2019.09.03 |