본문으로 건너뛰기

절3.4행렬 곱셈

목표
  1. 변환의 합성을 이해합니다.
  2. 행렬 곱과 행렬 변환의 합성 사이의 관계를 이해합니다.
  3. 행렬을 포함한 기본적인 대수 계산에 익숙해집니다.
  4. 계산 절차: 행렬 곱셈(두 가지 방법).
  5. 그림: 변환의 합성.
  6. 용어: 합성.

이 절에서는 변환의 합성을 공부합니다. 앞으로 보겠지만, 합성은 변환들을 사슬처럼 이어 붙이는 방법입니다. 행렬 변환의 합성은 두 행렬을 곱한다는 개념에 대응합니다. 또한 변환과 행렬의 덧셈 및 스칼라 곱셈도 다룹니다.

소절3.4.1선형 변환의 합성

선형대수학에서 합성은 미적분학에서와 같은 의미입니다. 정의는 다음과 같습니다.

정의

T\colon\R^n\to\R^m과 U\colon\R^p\to\R^n을 변환이라고 합시다. 이들의 합성은 다음과 같이 정의되는 변환 T\circ U\colon\R^p\to\R^m입니다.

\begin{equation*}
(T\circ U)(x) = T(U(x)).
\end{equation*}

두 변환을 합성한다는 것은 두 변환을 사슬처럼 이어 붙인다는 뜻입니다. T\circ U는 먼저 U를 적용한 다음 T를 적용하는 변환입니다(연산 순서에 유의하십시오). 더 정확히 말하면, 입력 벡터 x에서 T\circ U의 값을 구하려면 먼저 U(x)를 계산한 다음, 이 U의 출력 벡터를 T의 입력 벡터로 사용합니다. 즉, (T\circ U)(x) = T(U(x))입니다. 물론 이는 U의 출력이 T의 올바른 입력일 때, 즉 U의 치역이 T의 정의역에 포함될 때에만 의미가 있습니다.

\begin{tikzpicture}[every label/.append style={text=black, thin border}, scale=.65]
  \draw[grid lines] (-3,-3) grid (3,3)
    (0,-3.5) node[black] {$\R^p$}
    (2,1)  node[point, "$x$" left] (x) {};
  \draw[grid lines,xshift=8cm] (-3,-3) grid (3,3)
    (0,-3.5) node[black] {$\R^n$}
    (-1,-2) node[point, "$U(x)$" above] (Ux) {};
  \draw[grid lines,xshift=16cm] (-3,-3) grid (3,3)
    (0,-3.5) node[black] {$\R^m$}
    (-2,2) node[point, "$T\circ U(x)$" below right] (TUx) {};
  \draw[|->, shorten=1.5pt, out=0, in=180]
    (x) to node[below,midway] {$U$} (Ux);
  \draw[|->, shorten=1.5pt, out=0, in=180]
    (Ux) to node[below,midway] {$T$} (TUx);
  \draw[shorten=1.5pt, out=0, in=180]
    (x) to node[above=2pt,midway,thin border] {$T\circ U$} (TUx);
\end{tikzpicture}

다음은 합성 T\circ U를 먼저 U를 실행한 다음 그 출력을 받아 T에 넣는 “기계”로 나타낸 그림입니다. 이 소절 in 절 3.1에도 비슷한 그림이 있습니다.

\tikzset{
  pics/gear/.style args={#1/#2}{
    code = { % #1 = number of gears, #2 = tooth length
      \filldraw[fill=black!30] (1cm-#2/2,0)
        let \n{angle} = {360/#1} in
          \foreach \gear [evaluate=\gear as \startangle using \gear*\n{angle}]
              in {1,...,#1}
            {
              arc[radius=1cm-#2/2, start angle=\startangle-\n{angle},
                  delta angle=\n{angle}/4]
              -- (\startangle-3*\n{angle}/4+\n{angle}/10:1cm+#2/2)
              arc[radius=1cm+#2/2,
                  start angle=\startangle-3*\n{angle}/4+\n{angle}/10,
                  end angle  =\startangle-  \n{angle}/4-\n{angle}/10]
              -- (\startangle-  \n{angle}/4:1cm-#2/2)
              arc[radius=1cm-#2/2, start angle=\startangle-\n{angle}/4,
                  delta angle=\n{angle}/4]
            };
          \draw (0,0) circle[radius=.4cm];
        }
    },
  % machine is an input/output machine for illustrating functions
  machine/.pic = {
    \filldraw[rounded corners=.3mm, fill=steel!30] (1.5, -1)
      -- (1.5, -.5) -- (1.5-.2, -.5) -- (1.5-.2, .4) -- (1.5, .4)
      -- (1.5, 1) -- (-1.5, 1) -- (-1.5, -1) -- cycle;
    \filldraw[fill=steel!30] (-1.5, -.2)
      -- (-1.5-.5, -.5) -- (-1.5-.5, .5) -- (-1.5, .2);
    \coordinate (-input) at (-1.5-.5, 0);
    %\fill (-1.5-.4, -.05) rectangle (-1.5+.5, .05);
    %\fill (-1.5+.3, -.15) -- (-1.5+.7, 0) -- (-1.5+.3, .15);
    \filldraw[yshift=-.1cm, fill=black!30] (1.5-.2, -.3)
      -- (1.5+.4, -.3)
      arc[radius=.15, start angle=-90, end angle=90]
      -- (1.5-.2,0);
    \draw[yshift=-.1cm] (1.5+.4, -.15) circle[radius=.1];
    %\fill (1.5-.7, -.05) rectangle (1.5+.2, .05);
    %\fill (1.5+.0, -.15) -- (1.5+.4, 0) -- (1.5+.0, .15);
    \coordinate (-output) at (1.5+.5, 0);
    \pic[transform shape, scale=.4] at (-.4, -.4) {gear={15/.2cm}};
    \pic[transform shape, scale=.4] at ( .4, -.4) {gear={15/.2cm}};
    % Need to expand \tikzpictextoptions *first* so as not to confuse \pgfkeys
    \expandafter\node\expandafter[\tikzpictextoptions] at (0, .5) {\tikzpictext};
    },
  machine2/.pic = {
    \filldraw[rounded corners=.3mm, fill=steel!30] (3.5, -1)
      -- (3.5, -.5) -- (3.5-.2, -.5) -- (3.5-.2, .4) -- (3.5, .4)
      -- (3.5, 1) -- (-1.5, 1) -- (-1.5, -1) -- cycle;
    \filldraw[fill=steel!30] (-1.5, -.2)
      -- (-1.5-.3, -.4) -- (-1.5-.3, .4) -- (-1.5, .2);
    \coordinate (-input) at (-1.5-.3, 0);
    %\fill (-1.5-.4, -.05) rectangle (-1.5+.5, .05);
    %\fill (-1.5+.3, -.15) -- (-1.5+.7, 0) -- (-1.5+.3, .15);
    \filldraw[yshift=-.1cm, fill=black!30] (3.5-.2, -.3)
      -- (3.5+.1, -.3)
      arc[radius=.15, start angle=-90, end angle=90]
      -- (3.5-.2,0);
    \draw[yshift=-.1cm] (3.5+.1, -.15) circle[radius=.1];
    %\fill (1.5-.7, -.05) rectangle (1.5+.2, .05);
    %\fill (1.5+.0, -.15) -- (1.5+.4, 0) -- (1.5+.0, .15);
    \coordinate (-output) at (3.5-.2, 0);
    % Need to expand \tikzpictextoptions *first* so as not to confuse \pgfkeys
    \expandafter\node\expandafter[\tikzpictextoptions] at (1, .75) {\tikzpictext};
    },
}
\begin{tikzpicture}[thin border nodes]
  \pic[scale=2, "$T\circ U$"] (machine) at (0, 0) {machine2};
  \filldraw[dashed, rounded corners=3mm, thick, fill=white!96!black]
     (-2.5, -1.2) rectangle (6, 1.2);
  \pic[scale=.75, "$U$"] (machine1) at (-.5, 0) {machine};
  \pic[scale=.75, "$T$"] (machine2) at (4, 0) {machine};
  \draw[thick, shorten=1mm, arrows={<[scale=1.5]-}]
     (machine-input) -- node[above=.7mm] {$\R^p$} ++(-1cm,0) node[left] {$x$};
  \draw[thick, shorten=1mm, arrows={-[scale=1.5]>}]
     (machine-output) -- node[above=.7mm] {$\R^m$} ++(1.1cm,0) node[right] {$T\circ U(x)$};
  \draw[shorten=1mm, ->] (machine-input) -- (machine1-input);
  \draw[shorten=1mm, ->] (machine1-output) --
     node[above=1mm, font=\small] {$U(x)$}
     node[below=1mm, font=\small] {$\R^n$} (machine2-input);
  \draw[shorten=1mm, ->] (machine2-output) -- (machine-output);

\end{tikzpicture}
합성의 정의역과 공역

  • T\circ U가 정의되려면 U의 공역이 T의 정의역과 같아야 합니다.
  • T\circ U의 정의역은 U의 정의역입니다.
  • T\circ U의 공역은 T의 공역입니다.

정의 in 절 3.1에서 항등변환은 모든 벡터 x에 대해 \operatorname{Id}_{\R^n}(x) = x로 정의되는 변환 \operatorname{Id}_{\R^n}\colon\R^n\to\R^n임을 상기하십시오.

합성의 성질

S,T,U를 변환이라 하고 c를 스칼라라고 합시다. T\colon\R^n\to\R^m이고, 다음 각 항등식에서 합성이 정의되는 데 필요한 경우 정의역과 공역이 서로 맞는다고 가정합니다. 다음 성질들은 쉽게 확인할 수 있습니다:

\begin{align*}
S\circ(T+U) \amp= S\circ T+S\circ U \amp
(S + T)\circ U \amp= S\circ U + T\circ U \amp\\
c(T\circ U) \amp= (cT)\circ U \amp
c(T\circ U) \amp= T\circ(cU) \rlap{\;\;\text{ if $T$ is linear}}\\
T\circ\operatorname{Id}_{\R^n} \amp= T \amp
\operatorname{Id}_{\R^m}\circ T \amp= T\\
\amp \amp S\circ(T\circ U) \amp= (S\circ T)\circ U \amp
\end{align*}

마지막 성질을 결합법칙이라고 합니다. 양변을 풀어 쓰면 다음과 같습니다:

\begin{equation*}
S\circ(T\circ U)(x) = S(T\circ U(x)) = S(T(U(x))) = S\circ T(U(x)) = (S\circ T)\circ U(x).
\end{equation*}

다시 말해, S\circ (T\circ U)와 (S\circ T)\circ U는 모두 먼저 U를, 다음에 T를, 그다음에 S를 적용하여 정의되는 변환입니다.

변환의 합성은 일반적으로 교환법칙이 성립하지 않습니다. 즉, 두 합성이 모두 정의되는 경우에도 일반적으로 T\circ U\neq U\circ T입니다.

소절3.4.2행렬 곱셈

이 소절에서는 겉보기에는 관련이 없어 보이는 행렬 연산, 즉 행렬 곱셈을 소개합니다. 다음 소절에서 보겠지만, 행렬 곱셈은 대응하는 선형 변환들의 합성과 정확히 대응합니다. 먼저 몇 가지 용어가 필요합니다.

표기법

A를 m\times n 행렬이라고 합시다. 일반적으로 i번째 행과 j번째 열에 있는 성분을 a_{ij}로 씁니다. 이를 행렬의 i,j 성분이라고 합니다.

\def\spvdots{\vphantom{\vbox{\hbox{(}\kern0pt}}\smash{\vdots}}
  \begin{tikzpicture}[scale=1.2]
    \matrix[math matrix]  (aij)
      {
        a_{11} \& \cdots \& a_{1j} \& \cdots \& a_{1n} \\
        \spvdots \&        \& \spvdots \&        \& \spvdots \\
        a_{i1} \& \cdots \& a_{ij} \& \cdots \&  a_{in} \\
        \spvdots \&        \& \spvdots \&        \& \spvdots \\
        a_{m1} \& \cdots \& a_{mj} \& \cdots \& a_{mn} \& \\
      };
      \node[fit=(aij-1-3) (aij-5-3), inner sep=2pt,
          draw=blue!50, thick, rounded corners,
          label={[text=blue!50]below:\small$j$th column}] {};
      \node[fit=(aij-3-1) (aij-3-5), inner sep=2pt,
          draw=green!70!black, thick, rounded corners] (row) {};
      \node[text=green!70!black, rotate=90, anchor=north, yshift=.5mm, font=\small]
        at (row.east) {$i$th row};
  \end{tikzpicture}
정의(행렬 곱셈)

A를 m\times n 행렬, B를 n\times p 행렬이라고 합시다. B의 열들을 v_1,v_2,\ldots,v_p로 나타냅니다.

\begin{equation*}
B = \mat{| | ,, |; v_1 v_2 \cdots, v_p; | | ,, |}.
\end{equation*}

곱 AB는 열이 Av_1,Av_2,\ldots,Av_p인 m\times p 행렬입니다.

\begin{equation*}
AB = \mat{| | ,, |; Av_1 Av_2 \cdots, Av_p; | | ,, |}.
\end{equation*}

다시 말해, 행렬 곱셈은 열 단위로 정의됩니다. 즉, “B의 열들에 대해 분배됩니다.”

벡터 Av_1,Av_2,\ldots,Av_p가 정의되려면 B의 행의 개수가 A의 열의 개수와 같아야 합니다.

행렬 곱에서 행렬의 크기

  • AB가 정의되려면 B의 행의 개수가 A의 열의 개수와 같아야 합니다.
  • \b m\times\r n 행렬과 \r n\times\b p 행렬의 곱은 \b m\times\b p 행렬입니다.

행렬 B의 열이 하나뿐이면(즉, B가 벡터이면) AB 역시 열이 하나뿐입니다. 열이 하나인 행렬은 벡터와 같으므로, 행렬 곱의 정의는 이 정의 in 절 2.3에서 다룬 행렬-벡터 곱의 정의를 일반화합니다.

A가 정사각행렬이면 A를 자기 자신과 곱할 수 있습니다. 그 거듭제곱을 다음과 같이 정의합니다.

\begin{equation*}
A^2 = AA \qquad A^3 = AAA \qquad \text{etc.}
\end{equation*}
행렬 곱셈의 행-열 규칙

이 정의 in 절 2.3에서 행벡터와 열벡터의 곱은 다음 스칼라임을 상기하십시오.

\begin{equation*}
\mat{a_1 a_2 \cdots, a_n} \vec{x_1 x_2 \vdots, x_n}
= a_1x_1 + a_2x_2 + \cdots + a_nx_n.
\end{equation*}

행렬 곱을 구하는 다음 절차는 손으로 계산하기에 훨씬 더 적합합니다. 앞의 정의는 아래의 이 정리와 같은 정리를 증명하는 데 더 적합합니다.

계산 절차: 행렬 곱셈의 행-열 규칙

A를 m\times n 행렬, B를 n\times p 행렬이라 하고 C = AB라 합시다. 그러면 C의 ij 성분은 A의 i번째 행과 B의 j번째 열의 곱입니다:

\begin{equation*}
c_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \cdots + a_{in}b_{nj}.
\end{equation*}

다음은 행렬 곱을 나타낸 도식입니다:

\begin{equation*}
\def\spvdots{\vphantom{\vbox{\hbox{(}\kern0pt}}\smash{\vdots}}
\begin{tikzpicture}[baseline, scale=.95]
\matrix[math matrix]  (aij)
{
a_{11} \& \cdots \& a_{1k} \& \cdots \& a_{1n} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
a_{i1} \& \cdots \& a_{ik} \& \cdots \& a_{in} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
a_{m1} \& \cdots \& a_{mk} \& \cdots \& a_{mn} \\
};
\node[fit=(aij-3-1) (aij-3-5), inner sep=2pt,
draw=green!70!black, thick, rounded corners] (row) {};
\node[text=green!70!black, rotate=90, anchor=north, yshift=2mm, font=\small]
at (row.east) {$i$th row};
\end{tikzpicture}\hskip-1mm
\begin{tikzpicture}[baseline, scale=.95]
\matrix[math matrix]  (bij)
{
b_{11} \& \cdots \& b_{1j} \& \cdots \& b_{1p} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
b_{k1} \& \cdots \& b_{kj} \& \cdots \& b_{kp} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
b_{n1} \& \cdots \& b_{nj} \& \cdots \& b_{np} \\
};
\node[fit=(bij-1-3) (bij-5-3), inner sep=2pt,
draw=blue!50, thick, rounded corners,
label={[text=blue!50]below:\small$j$th column}] {};
\end{tikzpicture}
\hskip-4pt=\hskip-4pt
\begin{tikzpicture}[baseline, scale=.95]
\matrix[math matrix,
label=below:$\textcolor{green!70!black}i\textcolor{blue!50}j$ entry]
(cij)
{
c_{11} \& \cdots \& c_{1j} \& \cdots \& c_{1p} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
c_{i1} \& \cdots \& c_{ij} \& \cdots \& c_{ip} \\
\spvdots \&        \& \spvdots \&        \& \spvdots \\
c_{m1} \& \cdots \& c_{mj} \& \cdots \& c_{mp} \\
};
\draw[thick, green!70!black]
(cij-3-3.center) circle[radius=1.35ex];
\draw[thick, blue!50]
(cij-3-3.center) circle[radius=1.35ex+\pgflinewidth];
\end{tikzpicture}
\end{equation*}

행렬 곱셈은 기대할 만한 성질을 많이 만족하지만(이 절의 끝을 참고하십시오), 일반적으로 성립하지 않는 성질도 여럿 있으므로 행렬 연산을 할 때는 주의해야 합니다.

행렬 곱셈의 주의 사항

  • 행렬 곱셈은 교환법칙이 성립하지 않습니다: 두 곱이 모두 정의되고 크기가 같더라도 AB는 보통 BA와 같지 않습니다. 이 예제를 참고하십시오.
  • 행렬 곱셈은 소거법칙을 만족하지 않습니다: A\neq 0이더라도 AB=AC라고 해서 B=C인 것은 아닙니다. 예를 들어 다음과 같습니다:
    \begin{equation*}
\mat{1 0; 0 0}\mat{1 2; 3 4} = \mat{1 2; 0 0}
= \mat{1 0; 0 0}\mat{1 2; 5 6}.
\end{equation*}
  • A\neq 0이고 B\neq 0이더라도 AB=0일 수 있습니다. 예를 들어 다음과 같습니다:
    \begin{equation*}
\mat{1 0; 1 0}\mat{0 0; 1 1} = \mat{0 0; 0 0}.
\end{equation*}

행렬 곱셈은 일반적으로 교환법칙이 성립하지 않지만, AB=BA를 만족하는 행렬 A와 B의 예도 있습니다. 예를 들어 A가 영행렬이거나 A=B이면 항상 성립합니다. 독자 여러분도 다른 예를 찾아보시기 바랍니다.

소절3.4.3합성과 행렬 곱셈

이 소단원의 목적은 행렬 곱셈이 변환의 합성에 대응한다는 것, 즉 T \circ U의 표준행렬이 T의 표준행렬과 U의 표준행렬의 곱임을 보이는 것입니다. 행렬 곱셈에 대한 우리의 복잡한 공식이 실제로 “두 변환을 연달아 잇는 것”과 같은 직관적인 의미를 지닌다는 것은 믿기 어려울 것입니다!

증명

이 정리는 우리가 행렬 곱을 그렇게 정의한 것이 타당함을 보여 줍니다. 이것이 행렬 곱을 이런 방식으로 정의하는 유일한 이유입니다. 다시 말하면 다음과 같습니다.

곱과 합성

두 선형변환의 합성의 행렬은 각 변환의 행렬의 곱입니다.

이 정의 in 절 3.3에서 단위행렬이란 \R^n의 표준 좌표 벡터들을 열로 갖는 n\times n 행렬 I_n이었음을 떠올리십시오. 단위행렬은 항등변환의 표준행렬입니다. 즉, \R^n의 모든 벡터 x에 대해 x = \operatorname{Id}_{\R^n}(x) = I_nx입니다. 임의의 선형변환 T : \R^n \to \R^m에 대해

\begin{equation*}
I_{\R^m} \circ T = T
\end{equation*}

이고, 같은 이유로 임의의 m \times n 행렬 A에 대해

\begin{equation*}
I_mA=A
\end{equation*}

입니다. 마찬가지로 T \circ I_{\R^n} = T이고 AI_n=A입니다.

소절3.4.4변환과 행렬의 대수

이 소단원에서는 변환에 대해 수행할 수 있는 두 가지 연산, 즉 덧셈과 스칼라 곱을 더 설명합니다. 그런 다음 이 연산들을 행렬의 언어로 옮깁니다. 이는 선형변환의 합성에 대해 했던 것과 비슷하지만, 훨씬 덜 미묘합니다.

정의

  • T,U\colon\R^n\to\R^m를 두 변환이라 합시다. 이들의 합은 다음과 같이 정의되는 변환 T+U\colon\R^n\to\R^m입니다.
    \begin{equation*}
(T+U)(x) = T(x) + U(x).
\end{equation*}
    변환의 덧셈은 두 변환의 정의역과 공역이 같을 때에만 정의된다는 점에 유의하십시오.
  • T\colon\R^n\to\R^m를 변환이라 하고, c를 스칼라라 합시다. c와 T의 스칼라 곱은 다음과 같이 정의되는 변환 cT\colon\R^n\to\R^m입니다.
    \begin{equation*}
(cT)(x) = c\cdot T(x).
\end{equation*}

다시 강조하면, 두 변환 T,U\colon\R^n\to\R^m의 합은 T+U라 불리는 또 다른 변환이며, 입력 벡터 x에서의 그 값은 T와 U의 출력의 합입니다. 마찬가지로, T와 스칼라 c의 곱은 cT라 불리는 또 다른 변환이며, 입력 벡터 x에서의 그 값은 벡터 c\cdot T(x)입니다.

변환의 덧셈과 스칼라 곱셈의 성질

S,T,U\colon\R^n\to\R^m를 변환이라 하고 c,d를 스칼라라 합시다. 다음 성질들은 쉽게 확인할 수 있습니다.

\begin{align*}
T + U \amp= U + T \amp
S + (T + U) \amp= (S + T) + U\\
c(T + U) \amp= cT + cU \amp
(c + d)T \amp= cT + dT\\
c(dT) \amp= (cd)T \amp
T + 0 \amp= T
\end{align*}

위의 성질 중 하나에서 우리는 0을 모든 입력 벡터에서 0이 되는 변환 \R^n\to\R^m를 나타내는 데 사용했습니다. 즉, 모든 x에 대해 0(x) = 0입니다. 이것을 영변환이라고 합니다.

이제 행렬에 대한 유사한 연산을 제시합니다.

정의

  • 두 m\times n 행렬의 합은 A와 B의 성분을 각각 더하여 얻는 행렬입니다.
    \begin{equation*}
\mat{a_{11} a_{12} a_{13}; a_{21} a_{22} a_{23}} +
\mat{b_{11} b_{12} b_{13}; b_{21} b_{22} b_{23}} =
\mat{a_{11}+b_{11} a_{12}+b_{12} a_{13}+b_{13};
a_{21}+b_{21} a_{22}+b_{22} a_{23}+b_{23}}
\end{equation*}
    다시 말해, A+B의 i,j 성분은 A와 B의 i,j 성분의 합입니다. 행렬의 덧셈은 두 행렬의 크기가 같을 때에만 정의된다는 점에 유의하십시오.
  • 스칼라 c와 행렬 A의 스칼라 곱은 A의 모든 성분에 c를 곱하여 얻습니다.
    \begin{equation*}
\def\r{\textcolor{red}}
\r c\mat{a_{11} a_{12} a_{13}; a_{21} a_{22} a_{23}} =
\mat{\r ca_{11} \r ca_{12} \r ca_{13}; \r ca_{21} \r ca_{22} \r ca_{23}}
\end{equation*}
    다시 말해, cA의 i,j 성분은 A의 i,j 성분의 c배입니다.

위의 사실에 비추어 볼 때, 다음 성질들은 변환의 대응하는 성질로부터 따라 나옵니다. 이 성질들은 정의로부터 직접 쉽게 확인할 수도 있습니다.

행렬의 덧셈과 스칼라 곱셈의 성질

A,B,C를 m\times n 행렬이라 하고 c,d를 스칼라라 합시다. 그러면 다음이 성립합니다.

\begin{align*}
A + B \amp= B + A \amp
C + (A + B) \amp= (C + A) + B\\
c(A + B) \amp= cA + cB \amp
(c + d)A \amp= cA + dA\\
c(dA) \amp= (cd)A \amp
A + 0 \amp= A
\end{align*}

위의 성질 중 하나에서 우리는 0을 모든 성분이 0인 m\times n 행렬을 나타내는 데 사용했습니다. 이것은 영변환의 표준행렬이며, 영행렬이라고 합니다.

행렬의 덧셈과 스칼라 곱셈을 행렬의 곱셈과 결합할 수도 있습니다. 행렬 곱셈은 변환의 합성에 대응하므로(정리), 다음 성질들은 변환의 대응하는 성질로부터 따라 나옵니다.

행렬 곱셈의 성질

A,B,C를 행렬이라 하고 c를 스칼라라고 합시다. A가 m\times n 행렬이고, 다음 각 항등식에서 곱이 정의되어야 하는 경우 B와 C의 크기가 서로 맞는다고 가정합니다. 그러면 다음이 성립합니다.

\begin{align*}
C(A+B) \amp= C A+C B \amp
(A + B) C \amp= A C + B C \amp\\
c(A B) \amp= (cA) B \amp
c(A B) \amp= A(cB)\\
A I_n \amp= A \amp
I_m A \amp= A\\
(A B)C \amp= A (BC) \amp
\end{align*}

위 성질의 대부분은 정의로부터 직접 쉽게 확인할 수 있습니다. 그러나 결합법칙 (AB)C=A(BC)는 그렇지 않습니다(직접 해 보십시오!). 이 성질은 행렬 곱셈을 변환의 합성과 연관 짓고, 변환의 합성이 결합법칙을 만족한다는 자명한 사실을 이용하면 훨씬 쉽게 증명할 수 있습니다.