함수란?
함수는 두 집합 간의 맵핑룰(mapping rule)이다.
- 입력이 정의되는 집합을 D(domain)이라 한다. 출력이 정의되는 집합 C을 codomatin(공역)이라 하며, codomain 중 실제 함수의 출력이 나오는 부분집합은 range(치역)이라 한다.
- 함수 f는 아래 그림 D의 각 원소 x가 C의 한 원소 y(=f(x))에 대응되는 매핑룰(mapping rule)이다.
- domain과 codomain을 강조하여 다음과 같이 적기도 한다.
선형함수(linearfunction)
만일 함수 f가 아래 두가지 조건을 만족하면 함수 f를 선형 함수(linear function)이라고 한다.(c는 임의의 스칼라)
변환(Transformation)
함수의 입력이 n-벡터이고 출력이 m-벡터인 함수 T인 경우. 즉 함수의 입출력이 벡터인 함수를 변환(transformation)이라고 한다.
특별이 n = m 인 경우, 해당 변환을 연산자(operator)라고 한다.
- m x n 행렬 A에 대해 Ax는 n-벡터를 입력으로 받아 m-벡터를 출력으로 내는 변환
로 볼수있다. 이 변환은 행렬이 정의하기 때문에 행렬변환(matrix transformation)이라고 한다.
그런데 행렬변환은 다음의 선형함수 성질을 모두 만족하기 때문에 선형변환(linear transformation)이라고 한다.
정리하면 m x n 행렬은 n-벡터를 입력으로 받아 m-벡터를 출력으로 내는 선형변환 이며, 임의의 선형변환은 행렬로 표현가능하다. 즉, 행렬은 선형변환의 구현체이다.
행렬변환 코딩하기
행렬변환이 입출력이 벡터로 정의된 선형함수라면, 해당 함수를 어떻게 코딩할 수 있을까? 우리가 원하는 방식대로 동작하는 행렬변환을 코딩하는 방법은 무엇일까
- 구현하고자 하는 기능(function)의 입력과 출력이 벡터로 정의되는지 확인한다.
- 구현하고자 하는 기능이 선형인지 확인한다.
- 입련이 n-벡터이고, 출력이 m-벡터이면 m x n 표준행렬(standard matrix)을 구성한다.