120428 게임 프로그래머를 위한 기초수학과 물리 제 5장 행렬연산

28
게게 게게게게게게 게게 게게게게게 게게 게 5 게 게게게게 아아아 http://cafe.naver.com/architect1 아아아 http://blog.naver.com/sikyungelove

Upload: tedypicker

Post on 24-Jun-2015

2.211 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

게임 프로그래머를 위한 기초수학과 물리

제 5 장 행렬연산

아꿈사 http://cafe.naver.com/architect1

최유림http://blog.naver.com/sikyungelove

Page 2: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

http://cfile23.uf.tistory.com/image/193754364ED4B8CF421A04

어렵지 않아요 ~!

Page 3: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 4: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬

가로와 세로로 나열된 수의 집합배열 : 수 , 변수 , 문자 등을 격자 형태로 구성행렬 : 수만 저장하는 배열

[0 2 34 5 67 8 9]

[−1 2 ]

a b 0 1

Page 5: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬

차수 : 행의 원소수 x 열의 원소수위 행렬의 차수는 ? 3x3 행렬

행렬 A 의 1 행 0 열의 원소의 값은 ? 4

=

각 행렬 주위엔

대괄호

[]

행과 열은

0부터

행 열

가로

: 행

세로

: 열

0행 2열

Page 6: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 7: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬 연산을 하기 위한 준비난수 행렬 만들기 행렬 출력하기

행렬 연산 java 코드http://introcs.cs.princeton.edu/java/95linear/Matrix.java.html

i 행 j 열에 0 부터 9 까지의 랜덤값 입력

Page 8: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 9: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 상동 ( 일치 )

조건 1. 차수가 같은 두 행렬차수가 다르면 , 결코 두 행렬은 같을 수 없음

조건 2. 같은 행과 열에 위치하는 원소가 같음상응하는 원소가 하나라도 다르면 두 행렬은 같을 수 없음

Page 10: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 상동

For 문을 이용해 두 행렬을 0 행 0 열부터 비교

상응 원소의 값이 다를 경우errFlag 값을 변경하여

상동 판별

Page 11: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 12: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 합 , 차두 행렬의 차수가 같을때 , 상응하는 원소 더하기

= =

두 행렬의 차수가 같을때 , 상응하는 원소 빼기

= =

Page 13: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 합 , 차

상응하는 원소 더하기

상응하는 원소 빼기

Page 14: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 15: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 스칼라 곱각 원소에 스칼라 값 곱하기

-5 = =

스칼라 곱을 이용하여 행렬의 차 구하기두번째 행렬 원소에 -1 스칼라 곱하여 두 행렬 더하기

=

= =

결과 같음

Page 16: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 스칼라 곱

각 원소에 스칼라 곱하기

두번째 행렬 원소에 -1 스칼라 곱한 뒤 ,

첫번째 행렬과 더하기

스칼라의 곱을 이용하여 행렬의 차 구하기

Page 17: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 18: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 곱조건 . 안쪽에 있는 두 수는 반드시 같아야 함

첫번째 행렬 열의 수와 두번째 행렬 행의 수 가 다르면 곱셈 불가능

[ 2 34 −8 ]2x2 1x2

곱셈 불가능

[ 2 34 −8 ]2x2 2x1

곱셈 가능

Page 19: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 곱바깥쪽의 두 수가 결과의 차수를 결정

첫번째 행렬 행의 수 x 두번째 행렬 열의 수

[ 2 34 −8 ]2 x 2 2 x 1

곱셈 결과= 2x1

행렬

곱셈 가능

[ 4 −8 1 ]

1 x 3 3 x 1곱셈 결과= 1x1

행렬

곱셈 가능

Page 20: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 곱

=

=

http://postfiles16.naver.net/20100528_271/mktstar_1275038859932Q1vDD_jpg/%EC%89%BD%EC%A3%A0_mktstar.jpg?type=w2

Page 21: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 곱교환법칙이 성립하지 않음

=

=

=

Page 22: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬의 곱

삼중 for 문을 이용

책은 temp[i][j] += a[i]]

[j]*b[k][j]로 나와 있는데 ,

temp[i][j] += a[i][k]*b[k][j]

가 맞습니다 !

Page 23: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

행렬행렬 연산을 하기 위한 준비행렬의 상동행렬의 합 / 차행렬의 스칼라 곱행렬의 곱전치행렬

Page 24: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

전치행렬각 원소의 행과 열을 바꾼 행렬

전치행렬

1단계

. 대각선은 그대로

2단계

. 대각선을 중심으로 원소 뒤집기

[𝑎00 ¿𝑎11 ¿𝑎22 ] [𝑎00 𝑎10 𝑎20

𝑎01 𝑎11 𝑎21𝑎02 𝑎12 𝑎22 ]

Page 25: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

전치행렬

𝐵=[1 4 72 5 83 6 9]

1단계[1 ¿5 ¿9]

1단계 [1 ¿ ]2단계¿¿ [14 ]

Page 26: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

전치행렬

행과 열 바꾸기

Page 27: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

데모 , Q&A

Page 28: 120428 게임 프로그래머를 위한 기초수학과 물리   제 5장 행렬연산

게임 프로그래머를 위한 기초수학과 물리

제 5 장 행렬연산

감사합니다