행렬 곱셈 계산기
호환되는 차원의 두 행렬을 즉시 곱하세요 — 선형대수와 공학을 위한 자동 차원 검증 제공.
행렬 A와 행렬 B를 입력하세요. 행은 세미콜론, 열은 쉼표로 구분한 뒤 계산을 클릭하면 곱을 구할 수 있습니다.
행렬 곱셈 계산기
호환되는 차원의 두 행렬을 즉시 곱하세요 — 선형대수와 공학을 위한 자동 차원 검증 제공.
행은 세미콜론(;), 열은 쉼표(,)로 구분하세요. A × B에서는 A의 열 수가 B의 행 수와 같아야 합니다.
행렬 곱셈 계산기에 대해
행렬 곱셈은 선형대수의 핵심 연산 중 하나입니다. 대응되는 요소를 단순히 더하는 덧셈과 달리, 곱셈은 첫 번째 행렬의 행과 두 번째 행렬의 열을 연결하는 점곱 규칙으로 정의됩니다. 그 결과는 두 선형 변환이 어떻게 합성되는지를 나타냅니다. 즉, B를 먼저 적용한 다음 A를 적용하는 것은 단일 행렬 AB를 적용하는 것과 같은 효과를 냅니다.
A × B의 곱이 정의되려면 A의 열 수가 B의 행 수와 같아야 합니다. A가 m×n 행렬이고 B가 n×p 행렬이면, 곱 C = A × B는 m×p 행렬이 됩니다. C[i][j]는 A의 i행과 B의 j열의 점곱으로 계산됩니다: C[i][j] = Σ(k=0 to n−1) A[i][k] × B[k][j]. 즉, 결과의 각 원소는 A의 한 행 전체와 B의 한 열 전체에 의존합니다.
행렬 곱셈은 교환법칙이 성립하지 않습니다. 일반적으로 AB ≠ BA이며, A와 B의 차원이 맞지 않으면 BA는 아예 정의되지 않을 수도 있습니다. 하지만 결합법칙은 성립합니다: (AB)C = A(BC). 즉, 연속된 곱셈을 어떤 방식으로 묶어도 최종 결과는 같게 유지됩니다.
단위행렬을 곱하면 어떤 행렬도 변하지 않습니다: AI = IA = A. 이는 일반 곱셈에서 1이 하는 역할과 같습니다. 단위행렬은 주대각선에 1이 있고 나머지는 모두 0입니다.
실제 응용에서는 행렬 곱셈이 다양한 계산을 간결한 표기로 압축합니다. 컴퓨터 그래픽스는 행렬 곱셈으로 3D 좌표에 회전, 이동, 원근 투영을 적용합니다. 로보틱스는 회전 행렬의 연쇄를 사용해 좌표계를 변환합니다. 머신러닝에서는 신경망 층의 순전파가 본질적으로 행렬-벡터 곱셈입니다: output = W × input + bias. 마르코프 체인, 그래프 인접 계산, 통계의 공분산 전파도 모두 행렬 곱셈에 의존합니다. 따라서 행렬 곱셈을 이해하는 것은 정량 분야에서 일하는 사람에게 필수적인 역량입니다.
행렬 곱셈 예시
정방행렬과 비정방행렬의 곱을 보여 주는 4가지 예시와 단계별 원소 계산입니다.
| 입력 | 곱 | 메모 |
|---|---|---|
| A = [[1,2],[3,4]], B = [[2,0],[1,2]] | [[4,4],[10,8]] | C[0][0] = 1×2 + 2×1 = 4. C[0][1] = 1×0 + 2×2 = 4. C[1][0] = 3×2 + 4×1 = 10. C[1][1] = 3×0 + 4×2 = 8. |
| A = [[1,2,3]], B = [[4],[5],[6]] | [[32]] | A는 1×3이고 B는 3×1입니다. 곱은 1×1이며, 1×4 + 2×5 + 3×6 = 4+10+18 = 32입니다. 이는 두 벡터의 점곱입니다. |
| A = [[1,0],[0,1]], B = [[7,3],[2,8]] | [[7,3],[2,8]] | 2×2 단위행렬을 곱하면 B는 변하지 않습니다. 단위행렬은 행렬 곱셈의 곱셈 항등원입니다. |
| A = [[1,2],[3,4],[5,6]], B = [[7,8,9],[10,11,12]] | [[27,30,33],[61,68,75],[95,106,117]] | A는 3×2이고 B는 2×3이므로 곱은 3×3입니다. C[0][0] = 1×7 + 2×10 = 27. C[2][2] = 5×9 + 6×12 = 45+72 = 117. |
행렬 곱셈 계산기 사용 방법
- 첫 번째 칸에 행렬 A를 입력하세요. 같은 행의 원소는 쉼표로, 행은 세미콜론으로 구분합니다. 예를 들어 1,2;3,4는 [[1,2],[3,4]]를 의미합니다.
- 두 번째 칸에 같은 형식으로 행렬 B를 입력하세요. A × B가 성립하려면 A의 열 수와 B의 행 수가 같아야 합니다.
- 계산을 클릭하세요. 결과 행렬 C = A × B가 아래에 표시되며, 차원은 (A의 행 수) × (B의 열 수)입니다.
- 필요하다면 결과의 임의 위치 [i][j]를 골라 A의 i행과 B의 j열의 점곱을 직접 계산해 한 항목을 검산할 수 있습니다.
- 초기화를 클릭하면 두 입력이 모두 지워져 새 계산을 시작할 수 있습니다. 어느 한 행렬을 바꿔 보며 변화가 곱에 미치는 영향도 확인할 수 있습니다.
자주 묻는 질문
두 행렬은 언제 곱할 수 있나요?
행렬 A의 열 수가 행렬 B의 행 수와 같을 때만 A와 B를 곱할 수 있습니다(A × B). A가 m×n이고 B가 n×p라면 곱은 존재하며 결과는 m×p 행렬입니다. 이 내부 차원 조건이 맞지 않으면 곱셈은 정의되지 않습니다.
행렬 곱셈은 교환법칙이 성립하나요?
아니요. 일반적으로 AB와 BA가 모두 정의되더라도 AB ≠ BA입니다. 예를 들어 A가 회전, B가 전단을 나타내면 적용 순서에 따라 결과가 달라집니다. 이러한 비가환성은 행렬 대수를 일반 숫자 연산과 구분하는 특징 중 하나입니다.
단위행렬이란 무엇인가요?
단위행렬 I는 주대각선에 1이 있고 나머지는 0인 정방행렬입니다. 어떤 행렬 A에 I를 곱해도 A는 그대로입니다: AI = IA = A. 단위행렬은 행렬 곱셈에서 스칼라 곱셈의 1과 같은 역할을 합니다.
머신러닝에서 행렬 곱셈은 어떻게 쓰이나요?
신경망에서는 완전연결층의 순전파가 output = W × input + bias로 계산됩니다. 여기서 W는 가중치 행렬이고 input은 열 벡터입니다. 역전파에서는 전치 행렬 곱셈을 사용해 그래디언트를 전달합니다. 배치 계산은 이를 행렬-행렬 곱으로 확장해 GPU가 신경망 학습을 매우 효율적으로 처리하게 합니다.
원소별 곱셈과 행렬 곱셈의 차이는 무엇인가요?
원소별 곱셈(Hadamard product)은 같은 크기의 두 행렬에서 대응하는 원소를 곱합니다: (A ⊙ B)[i][j] = A[i][j] × B[i][j]. 반면 행렬 곱셈은 행과 열의 점곱을 사용합니다: (AB)[i][j] = Σ A[i][k] × B[k][j]. 두 연산은 요구 조건과 결과가 서로 다릅니다.
비정방행렬도 곱할 수 있나요?
네. 내부 차원만 맞으면 비정방행렬도 곱할 수 있습니다. 예를 들어 2×3 행렬에 3×4 행렬을 곱하면 2×4 행렬이 됩니다. 결과 행렬의 행 수는 첫 번째 행렬에서, 열 수는 두 번째 행렬에서 옵니다. 비정방행렬의 곱은 실무에서도 매우 흔하며, 예를 들어 입력 벡터 배치 (n×d)에 가중치 행렬 (d×k)을 곱하면 해당 층의 출력 (n×k)을 얻습니다.