본문 바로가기

데이터과학/mathmatics

행렬이 뭐죠?

이번에는 행렬에 대한 공부를 하고 있습니다.
솔직히 학부를 도시공학과를 전공했다는 이유로 공업수학 및 기타 수학에 관한 것은 전무합니다. 대학을 진학할 때에 수학을 하지 않는 다는 이유로 도시공학과를 진학했다면 믿으시겠습니까? :-)

어쨌든 지금은 무지하게 후회하고 있습니다. 솔직히 다시 정석을 보기에는 부담스럽고 해서 우연히 서점에서 보게된 교학사에서 출간된 '수학공식 활용사전'이라는 책으로 수학의 목마름을 달래고 있습니다.

행렬?
수 또는 문자를 직사각형 모양으로 나열하여 양쪽을 괄호로 묶어서 나타낸 것을 행렬이라 하고, 그 각각의 수 또는 문자를 행렬의 성분이라 한다. 또는 수의 직사각형배열이다. 그 배열된 수를 그 행렬의 성분(entries)이라 한다.

꼭 숫자가 오지 않아도 괜찮은 것일까요? 수 또는 문자라는 문구에서 혼란이 옵니다. 그래서 위키피디아를 살펴봅니다.

Matrix(Mathmatics)?
In mathematics, a matrix (plural matrices) is a rectangular table of elements (or entries), which may be numbers or, more generally, any abstract quantities that can be added and multiplied. Matrices are used to describe linear equations, keep track of the coefficients of linear transformations and to record data that depend on multiple parameters. Matrices are described by the field of matrix theory. They can be added, multiplied, and decomposed in various ways, which also makes them a key concept in the field of linear algebra.

  음, 일단은 더하거나 뺄 수 있는 추상적인 개념까지 포함한다고 정의하고 있지만, 솔직히 Abstract Quantities 라고 하는 의미를 잘 모르겠습니다. 하지만 굳이 프로그래밍 적으로 이해하자면, a 와 b 라는 변수에 대해서 합과 곱을 a + b, a * b 로 표현할 수 있듯이 배열 내에 이러한 문자열 또는 수식등의 직접적인 숫자가 아닌 숫자를 대표할 수 있는 추상적인 표현방식까지 포함한다고 보는 것이 맞을 것 같습니다.
정리하면, 숫자 또는 숫자를 대표할 수 있는 심벌사각형 형태로 표현한 것 정도라고 생각됩니다.

행렬의 곱셈에 대한 성질?
1. k(AB) = (kA)B = A(kB) 단, k는 실수
2. 결합법칙
  (AB)C = A(BC)
3. 분배법칙
   A(B+C) = AB + AC
  (A+B)C = AC + BC
4. 일반적으로 교환법칙은 성립하지 않는다.
  AB != BA

단위행렬?
n차 정사각행렬(square matrix of order n) A에 대하여 ( n x n 정방행렬을 말한다 )
AE = EA = A 를 만족하는 n차의 정사각행렬 E를 n차의 단위행렬이라 한다.

즉, 2차의 단위행렬은O(n^{2.807}) \!\ 이 되겠습니다.
그리고 1 이라는 숫자가 있는 대각선 위치를 행렬 A의 주대각선(main diagonal)상에 있다고 표현합니다. 행렬의 성분을 논할 때에는 항상 스칼라(scalar)로 가정한다고 봅니다.

행렬의 연산의 종류?
합(sum), 차(difference), 스칼라곱(scalar multiple), 곱(product)

대충 행렬이란 이런 거구나 하는 정도로 느낌이 옵니다. 사실 별거 아니다 라는 생각이 듭니다. 제 생각에는 수학에서는 컴퓨터 프로그래밍 같이 구조체 자료구조 이런 것들이 없으니 뭔가 도구가 필요했던 것 같습니다. 보다 직관적이고 사람들과 얘기하기 편하고 표현하기에도 좋은 그런 도구 말입니다.

이 글은 스프링노트에서 작성되었습니다.