코딩의 기록

행렬 (1)

모루우 2025. 3. 12. 01:54
728x90
반응형

행렬(Matrix)

- 일반적으로 2차원인 경우 행렬이라고 함

- 3차원 이상은 텐서

 

행렬의 정의

- m * n (row * column) 직사각형 모양으로 배열한 것

- 여기서 m * n이 행렬의 크기임

여기서 i열 j행의 원소를 a(아래첨자)ij 라고 하며 성분이라고도 함

 

행렬의 종류

1. 정방행렬 (Square Matrix)

행과 열의 수가 같은 것

주대각성분: 행열이 같은 숫자를 가지는 a()mn들의 집합?

 

2. 영행렬(Zero Matrix)

모든 성분이 0인 행렬

 

3. 단위행렬(Identity Matrix)

주대각성분이 1이고 나머지는 0인 것

I 또는 E로 표기함

 

4. 삼각행렬(Triangular Matrix)

정방행렬 중 주 대각선 아래 또는 위가 모두 0인 것

상삼각행렬: 정방행렬 중 주 대각선 아래가 모두 0인 것

하삼각행렬: 정방행렬 중 주 대각선 위가 모두 0인 것

 

5. 대각행렬(Diagonal Matrix)

주대각성분을 제외한 모든 성분이 0인 행렬

상삼각행렬이자 하삼각행렬로 분류가능

 

6. 전치행렬(Transpose Matrix)

행렬의 모든 행을 대응하는 열과 바꾼 행렬

행렬 A의 전치 행렬은 A^T로 표기

걍 돌린다고 생각하면 편할듯?

2행 3열인 애가 3행 2열로

 

7. 대칭행렬(Symmetric Matrix)

A = A^T인 행렬

정방행렬의 일종

 

8. 반대칭행렬(Antisymmetic Matrix)

A = -A^T인 행렬

 

9. 역행렬(Inverse Matrix)

AB = BA = I(단위 행렬) 일 때 A와 B는 서로의 역행렬

 

10. 직교행렬(Orthogonal Matrix)

A^T(전치행렬)*A = I(단위행렬)또는 A^-1 = A^T 가 성립하는 정방행렬

(어떤 행렬의 행 벡터와 열 벡터가 유클리드 공간의 정규 직교를 이루는 행렬)

직교행렬을 구성하는 열벡터는 크기가 1이며 서로 직교

직교행렬을 구성하는 행벡터의 크기가 1이며 서로 직교

* 직교성(Orthogonal): 독립의 충분조건. 직교하면 독립함(역은 성립하지 않음)

* 선형 독립(linear independence): 집합의 각 원소가 다른 원소로 설명할 수 없을 때 선형 독립이라고 함(진짜 독립적일 때)

개소리 ㄴㄴ

 

만약 2차원 공간에서 본다면 a벡터를 k배 해서 b벡터를 만들 수 없음. 이런 것이 선형 독립이라고 함

 

여기서 직교는 독립의 한 케이스가 됨 왜냐하면

이런식으로 직교하면 독립이 되기 때문에

 

근데 사실 n차원 공간에서 서로 독립일 수 있는 벡터가 n개 뿐이라는게 좀 이해가 안가는 부분이다 왜냐하면

 

이렇게 하면 파란색 벡터는 2개의 독립벡터를 가지게 되는 것 아닌가? 근데 사실 그렇게 치면 파란색 벡터의 독립 벡터는 무한개가 되기는 한다. 이건 내가 이해를 잘못했거나 뭔가 예시가 잘못됐거나 둘 중 하나일듯.

 

 

다음 각 행렬에서 정방행렬, 일행렬, 영행렬, 단위행렬, 대칭행렬, 반대칭행렬, 상삼각행렬, 하삼각행렬, 대각행렬, 직교행렬인지 파악해보자

A = 정방행렬, 대칭행렬, 상삼각행렬, 하삼각행렬, 대각행렬

B = 정방행렬, 대칭행렬

C = 정방행렬, 반대칭행렬

D = 정방행렬, 상삼각행렬 (아래가 0인게 상삼각이다 아래가 없다고 생각하자)

E = 정방행렬, 하삼각행렬 (반대)

F = 정방행렬, 직교행렬(행렬의 곱셈은 1행 * 1열, 1행 * 2열, 2행 * 1열, 2행 * 2열 이렇게 진행함 사실 전부 다 곱하는 것임)

참고로 F는 회전행렬이라고 하며 회전은 길이를 변형하지 않으면서 방향만 바꾸는 변환임. 즉 길이를 그대로 보존하기 때문에 직교행렬이 된다고 하는데.. 한 50%는 무슨 소리인지 모르겠다

 

행렬의 덧셈 A+B

두 행렬의 크기가 같을 경우에만 정의

위치가 같은 각 원소끼리만 더함

[a(ij) +- b(ij)](i=1 ~ m, j = 1 ~ n)

 

행렬의 스칼라배 kA

각 원소를 k배 A행렬이 m * n 일 경우

k[a(ij)](i= 1 ~ m, j = 1 ~ n)

 

행렬의 곱셈 A*B

A의 크기가 m * p, B의 크기가 p * n 일 때만 정의 (A의 열의 개수와 B의 행의 개수가 같아야 함 이는 내적계산을 하기 위해서임)

(이는 선형대수학의 선형변환과 행렬 사이의 함수의 합성과 행렬 곱을 자유롭게 오갈 수 있도록 하기 위해서)

AB의 크기는 m * n

결국 A의 행을 곱한다는 것은 1행의 열 값을 곱한다는 거고, B의 열을 곱한다는 것은 1열의 행 값을 곱한다는 것임

이때 열 값과 행 값이 같아야지 곱셈이 된다는 것

 

 

-2A = [-10, 16/ -2, 0/ -4, -14]

B+C = [-3, -1/ 5, 4]

AB = [-4, -15/ -4, -3/6, -6]

 

* 내적과 외적

내적 (ab=a∣∣bcosθ)

벡터에는 방향이 있으며 일치하는 만큼 곱한다 (적(쌓을적)은 곱한다는 것)

이때 서로 방향이 90도가 되면 내적의 값은 0이 된다 (직교?하면 I가 되는 것과 같은 개념?)

결과값은 스칼라로 나옴

컴퓨터 그래픽이나 기계학습을 할 때 벡터의 방향이 얼마나 비슷한지 측정할 때 사용, 정사영(projection) 계산

 

벡터의 내적은 얼마나 같은 방향인가(사이각 알아보기?)를 알아보기 위해 (같은 방향을 향하는 정도라는 스칼라 찾기)

 

외적 (a×b=a∣∣bsinθn)

벡터를 곱하는 또 다른 방법으로 방향은 A, B 벡터의 수직이고 크기는 두벡터가 이루는 정사각형의 넓이임

결과값은 벡터로 나옴

3D 그래픽, 물리학에서 회전 방향 계산/각속도(애니메이션, 로봇공학)할 때 사용

 

벡터의 내적은 얼마나 수직한가(방향)를 알아보기 위해 (수직한 방향이라는 새로운 벡터 찾기)

 

 

 

요약

1. 행렬의 곱은 A행렬의 열 값과 B행렬의 행 값이 같아야 곱셈이 가능 하며 이때 AB의 크기는 A의 행(m) * B의 열(n)

2. 단위 행렬은 주성분이 1이고 나머지 성분이 0인 행렬, I또는 E라고 표시 (Identity matrix)

3. 전치행렬은 행렬의 모든 행을 대응하는 열로 바꾸는 것 열은 행으로 바꾸고. A^T 라고 함

이때 대칭행렬은 A = A^T, 반대칭행렬은 A = -A^T

4. 직교행렬은 A^T * A = I (스칼라가 0)/ A^T = A^-1일 때를 말하며 직교할 때는 선형독립함(A원소로 B원소를 설명할 수 없음) 단 역은 성립하지 않음

5. 내적은 사이각, 스칼라를 구하기 위해 사용하는 벡터의 곱셈이고 외적은 수직벡터를 알아보기 위해 사용하는 벡터의 곱셈이다

728x90
반응형