1. 벡터
벡터랑 한 개의 행이나 한 개의 열로 이루어진 행렬을 말합니다.
한 개의 열로 이루어진 행렬을 열벡터라고 합니다.
마찬가지로 한 개의 행으로 이루어진 행렬을 행벡터라고 합니다.
벡터 중에서 특별한 형태를 가지고 있으며 자주 쓰이는 것이 있습니다.
단위벡터, 영벡터, 합벡터가 있습니다.
1) 단위 벡터
단위벡터란 벡터의 하나의 원소가 1이고, 이것을 제외한 모든 원소가 0인 벡터를 의미합니다.
이때 i번째 원소가 1인 단위벡터를 i번째 단위벡터라고 합니다.
2) 영벡터
영벡터란 모든 원소가 0인 벡터를 말합니다.
3) 벡터의 연산
- 벡터의 덧셈
- 같은 차원의 공간인 벡터의 덧셈, 뺄셈은 가능합니다. (하지만 3차원 이상의 벡터는 연산이 불가능합니다.)
- 벡터의 덧셈은 교환법칙이 성립합니다. (a+b = b+a)
- 벡터의 뺄셈
- 같은 차원의 공간인 벡터 두 개가 필요합니다.
- 벡터 합에서 두번째 값을 음수로 생각할 수 있습니다.
- 벡터의 스칼라곱
- 벡터의 스칼라곱을 이용하면 벡터의 길이와 방향을 바꿀 수 있습니다.
- 흔히 상수 배가 가능하다고 표현합니다.
2. 행렬의 연산
행렬에서 주된 수리적 연산은 뎃셈, 뺄셈, 곱셈이 있습니다.
나눗셈은 정의되지 않는 대신 역행렬에 대한 연산을 할 수 있습니다.
1) 행렬의 덧셈과 뺄셈
행렬의 덧셈 C=A+B 를 계산하기 위해서는 두 개 또는 그 이상의 행렬이 같은 크기의 행과 열을 가져야 합니다.
행렬 C의 원소들은 합해지는 행렬들의 대응되는 원소들 끼리의 합입니다.
Cij = Aij + Bij
행렬의 뺄셈 역시 C=A-B 의 계산에서도 역시 뺄셈을 수행하고자 하는 두 개 또는 그 이상의 행렬의 같은 크기의 행과 열을 가져야 하고, 행렬 C의 원소들은 대응되는 원소들끼리의 차입니다.
Cij = Aij - Bij
행렬의 덧셈에서는 교환법칙이 성립하지만, 뺄셈에서는 성립하지 않습니다.
2) 행렬의 곱셈
A, B 그리고 C를 사용하여 행렬의 곱 C = AB 를 계산하기 위해서는 다음의 사항에 유의해야 합니다.
- 첫번째 행렬 A의 열의 수는 두 번째 행렬 B의 행의 개수와 동일해야 합니다.
- 행렬 C의 행의 개수는 첫번째 행렬 A의 행의 개수와 동일합니다.
- 행렬 C의 열의 개수는 두번째 행렬 B의 열의 개수와 동일합니다.
- 행렬 C의 i행 j열의 원소 Cij는 곱 a-ik.b-kj의 합과 같습니다.
- 행렬의 곱셈에서는 교환법칙이 성립하지 않습니다.
- 행렬의 곱셈에서는 결합법칙이 성립합니다.
3) 행렬의 스칼라 곱
행렬 A에 스칼라 s를 곱하는 것은 행렬의 각 원소에 스칼라를 곱하는 것과 같습니다.
* 스칼라 (Scalar)
- 크기만을 나타내는 것
- 하나의 숫자로 표현할 수 있고, 해당 숫자는 스칼라의 크기를 나타냅니다.
- 스칼라는 덧셈, 뺄셈, 곱셈, 나눗셈이 가능합니다. 이는 사칙연산에서 적용되는 것과 비슷합니다.
4) 행렬의 비정칙성
행렬의 성질 가운데는 정칙성과 비정칙성이 있습니다.
만약 행렬의 역이 존재한다면 그 행렬은 정칙이라고 하고,
역이 존재하지 않는다면 비정칙이라고 합니다.
행렬이 비정칙이면 역을 구하기 위해 연립방정식의 유일한 해는 존재하지 않습니다.
5) 대각합 (트레이스)
A가 정방행령일 때만 가능합니다.
주 대각 원소를 모두 더한 값을 의미합니다.
tr(A)로 표시합니다.
6) 행렬 연산의 성질
1. A+B = B + A
2. A + (B + C) = (A + B) + C
3. A(BC) = (AB)C
4. A(B + C) = AB + AC
5. (B + C) A = BA + CA
6. A(B - C) = AB - AC
7. (B - C)A = BA - CA
8. (a는 상수), a(B + C) = aB + aC
9. (a는 상수), a(B - C) = aB - aC
10. (a, b는 상수), (a + b) C = aC + bC
11. (a, b는 상수) a(bC) = abC
12. (a는 상수) a(BC) = (aB) C = B(aC)
* 참고사항
python library를 이용하여 행렬의 연산을 쉽게 구현할 수 있습니다.
1) 행렬의 덧셈, 뺄셈
numpy로 array 를 정의하고 더하기, 빼기 연산자를 통해서 쉽게 구할 수 있습니다.
2) 행렬의 스칼라 곱
numpy 로 구현 시 * 또는 multiply 함수를 사용하여 구할 수 있습니다.
3) 행렬의 곱
numpy 로 구현 시 matmul 함수를 사용할 수 있습니다.
A와 B행렬은 같은 shape을 가지고 있어야 합니다.
'숫자' 카테고리의 다른 글
[공평 분배] 싸우지 않고 케이크를 나눠 먹는 방법 (0) | 2023.05.03 |
---|---|
[메르센 소수] 외계인이 지구인과 대화를 한다면 어떻게 소통할 수 있을까? (0) | 2023.05.02 |
행렬 (0) | 2023.04.20 |
기저/차원 (Basis / Dimension) (0) | 2023.04.19 |
전파오차 / Taylor 급수 (0) | 2023.04.18 |
댓글