게임제작기법연구

게임제작기법연구 2주차

ckhyeok 2020. 4. 9. 01:28

함수에 사용하는 용어 정리 

Domain(정의역), PreImage(정의역)

- 함수가 정의된 투입값들의 집합이다. 또한 정의역에 있는 모든 요소는 다 사용해야만 한다.

ex1) f(x) = 2x에서의 정의역은 모든 실수이다.

ex2) g(x) = 2/x 에서는 0을 제외한 모든 실수이다.


Codomain(공역)

- 정의역에 대응하는 집합이며, 공역에 있는 모든 요소는 다 사용하지 않아도 된다.


Range(치역), Image(치역) 

- 정의역에서의 각각의 요소와 대응 된 값라고 생각한다. 또한  공역의 부분집합 이라 생각한다.

Input : x를 f라는 기계에 집어넣을 때 투입되는 요소, 벡터 하나가 인풋이다.
Output : f라는 기계에서 x가 투입 된 후 나타난 결과물 f(x), 아웃풋은 벡터가 될 수 있고 스칼라가 될 수 있음.

 

Argument  : 정의역에 대입되는 숫자나 문자 등의 값, 인풋에 해당하는 요소들

Variable : 집합의 결정에 할당 될 수 있는 가능한 값

 

퓨어함수 : 프로그래밍에서 쓰는 함수와 다르게 함수용 언어에서 쓰는 함수

 

 

두 집합을 사용해 함수를 표현할 것

함수가 아닌 것

1. 정의역의 요소 중 하나가 2개를 가르키는 경우.

2. 정의역의 요소 중 하나가 아무것도 가르키지 않는 경우.

3. 정의역의 요소가 공역의 요소보다 더 많은 경우


Surjection(전사함수)의 정의

- 공역과 치역이 같은 것을 의미한다. 하지만 꼭 정의역의 요소와 공역의 요소가 1:1 대응할 필요는 없다.

ex) X = 1,2,3,4   Y =  A,B,C 에서 1->A, 2->B, 3,4->C


Injection(단사함수)의 정의

- 정의역의 모든 요소가 공역에 1:1 대응이 되어야 한다. 하지만 공역과 크기가 똑같을 필요는 없다.

ex) X = 1,2,3   Y =  A,B,C,D 에서 1->A, 2->B, 3->D (C는 매칭이 안 된 상태)


Bijection(전단사함수)의 정의

- 위 두개의 함수의 장점만 가져온 것이라 생각하며, 모든 요소가 중복없이, 빠짐없이 1:1 대응해야 함.

ex) X = 1,2,3,4   Y = A,B,C,D 에서 1->A, 2->B, 3->C, 4->D


전사도 아니고 단사도 아닌 함수

- 공역의 모든 요소가 대응되지 않았으며, 정의역에 모든 요소가 공역에 포함되는 함수. !역함수가 존재하지 않는 함수

ex) X = 1,2,3,4,5   Y = A,B,C,D,E 에서 1->A, 2->B, 3->C, 4,5->D 인 경우 (E는 매칭이 안 된 상태)


함수의 종류와 고찰

항등 함수(Identity)의 의미

- 요소가 대응됐을 때 같은 값을 가지는 것(Bijection이란 것이 기본으로 깔려있음)

ex) X = 1,2,3,4 Y = 1,2,3,4 1->1, 2->2, 3->3, 4->4


역함수(Inverse)의 의미

- 정의역과 치역이 뒤바뀐 관계이다. 그말은 즉, 치역과 공역이 같지 않으면 역함수가 존재하지 않는다.


왜 역함수가 존재하기 위한 조건이 Bijection인가?

- Y의 모든 요소를 써서 X로 가야하는데 Bijection이 아니면 Y의 요소를 다 사용하지 않거나 혹은 하나의 요소가

  2개에 대응 되기 때문에 함수의 정의에 어긋남. 그래서 꼭 Bijection이여야만 역함수가 존재할 수 있다.

 

합성 함수

- 집합이 3개가 있고 f(x)에서 g(x)로 2단으로 대응되는 함수이며 g·f(x)라고 부름.

!교환법칙 성립x(항등함수가 아닌이상), 결합법칙 성립o


합성 함수의 역함수

- g의 역함수가 먼저 실행되고 f의 역함수가 실행 됨. 두 함수를 합성한 새로운 함수가 항등함수가 됨.

 

선형성(Linearity)

- 선형적인 비례이며, 어떤 값을 넣어도 그 값에 비례하는 값이 나오는 것. !직선이며, 원점을 지난다.

1. f(x+y) = f(x)+f(y)
2. a*f(x) = f(a*x)


선형성을 가지는 함수의 유형

-  y = ax 형태로 두 집합간의 매핑이 되어있는 관계로 스칼라 곱으로만 매핑이 된다.

 

벡터의 선형 사상

- 두 벡터공간 사이에 정의되는 사상 가운데 벡터공간의 성질을 보존하는 함수.

  선형성을 유지하면서 사상한다. 행렬 = 선형사상과 동일 = 선형변환

  선형사상이 되기 위해서는 벡터의 각 함수들이 ax+by 꼴이면 선형사상을 유지할 수 있다.

 

선형 독립과 선형 의존의 차이

- 독립 : 벡터 x1, x2가 있다고 했을 때, 이들의 선형 조합을 c1x1 + c2x2라고 하고 c1=0, c2=0인 경우를 제외하고는

          c1, c2에 임의의 값을 넣어 연산을 했을 때 어떠한 값을 넣어도 결과 값이 0이 나오지 않는 경우

  !가장 심플한 독립 (1,0), (0,1)

- 의존 : 반대로 임의의 c1, c2 값으로 선형 독립 연산을 했을 때 결과 값이 0인 경우가 발생하면 x1, x2는 의존 관계이다.

 

벡터 공간의 차원의 의미(Span)

- 두 벡터 v1[1,2] v2[2,1]가 있다 가정 후, 이 두 벡터가 어떤 공간을 만드는 것을 말하며

  벡터들의 모든 가능한 선형 결합에 대한 결과벡터들을 하나의 공간에 몰아 넣은것을 의미함.

  벡터에 따라 2차원의 Line과 3차원의 Plane과 같이 부분적인 공간 또한 채울 수 있다.


표준 기저 벡터의 정의

- 선형 독립인 가장 심플한 벡터의 형태이며 (1,0), (0,1)이다. 이 둘을 조합해서 모든 벡터를 만들 수 있다.

  이것을 각각 e1, e2라고 부른다.

 

 

[추가 주제]

왜 y = 2x + 1은 선형성이 아닌가?

1. f(x+y) = f(x)+f(y) 
2. a*f(x) = f(a*x)

위에 말한 두 가지의 공식이 적용 되지 않는다.

이것이 왜 중요하다고 생각하냐면 지금은 y=2x+1 처럼 간단한 식이지만 나중에 복잡한 계산식을 가지고 계산한다고 했을때 우리는 위 두가지 공식이 적용된다는 사실을 통해 결과값을 어느정도 예측이 가능하지만 그게 아닌 경우 문제가 직관적이지 않게 되기 때문에 문제가 된다고 생각한다.

 

 

'게임제작기법연구' 카테고리의 다른 글

게임제작기법연구 7주차  (0) 2020.05.26
게임제작기법연구 6주차  (0) 2020.05.19
게임제작기법연구 5주차  (0) 2020.05.12
게임제작기법연구 4주차  (0) 2020.05.05
게임제작기법연구 1주차  (0) 2020.04.07