読者です 読者をやめる 読者になる 読者になる

倭算数理研究所

科学・数学・学習関連の記事を、「倭マン日記」とは別に書いていくのだ!

2次元ベクトルの分解

2次元 線型代数

任意の2次元ベクトルをいくつかの基底(正規直交基底、、直交基底、斜交基底?)に分解する公式を導いてみます。

正規直交基底への分解

{ x,\,y } 方向の単位ベクトルをそれぞれ { \textbf{i},\,\textbf{j} } とすると、これらは以下を満たします:

  { \displaystyle
\begin{align*}
    |\textbf{i}| &= |\textbf{j}| = 1 &
    \textbf{i}\cdot\textbf{j} &= 0 & \qquad \cdots (1)
\end{align*}
}

このとき、任意のベクトル { \textbf{x} } に対して以下を満たす係数 { k_1,\,k_2 } を求めましょう:

  { \displaystyle
\begin{align*}
    \textbf{x} = k_1\textbf{i} + k_2\textbf{j}
\end{align*}
}

{ \textbf{i},\,\textbf{j} } の正規直交性 (1) を用いると

  { \displaystyle
\begin{align*}
    \textbf{x}\cdot\textbf{i} &= k_1 &
    \textbf{x}\cdot\textbf{j}  &= k_2
\end{align*}
}

と求まるので、結局

  { \displaystyle
\begin{align*}
    \textbf{x} = (\textbf{x}\cdot\textbf{i})\textbf{i} + (\textbf{x}\cdot\textbf{j})\textbf{j}
\end{align*}
}

となります。

直交基底への分解

{ x,\,y } 方向の基底ベクトルをそれぞれ { \textbf{a},\,\textbf{b} } とします:

  { \displaystyle
\begin{align*}
    |\textbf{a}| &= a &
    |\textbf{b}| &= b &
    \textbf{a}\cdot\textbf{b} &= 0
\end{align*}
}

このとき正規直交基底 { \textbf{i},\, \textbf{j} }

  { \displaystyle
\begin{align*}
    \textbf{i} &= \frac{\textbf{a}}{a} &
    \textbf{j} &= \frac{\textbf{b}}{b} 
\end{align*}
}

となるので、前節の結果を使うと、任意のベクトル { \textbf{x} } は以下のように分解できます:

  { \displaystyle
\begin{align*}
    \textbf{x}
        &= \left(\textbf{x}\cdot\frac{\textbf{a}}{a}\right)\,\frac{\textbf{a}}{a}
            + \left(\textbf{x}\cdot\frac{\textbf{b}}{b}\right)\,\frac{\textbf{b}}{b} \\
        &= \left(\frac{\textbf{x}\cdot\textbf{a}}{\textbf{a}^2}\right)\textbf{a}
            + \left(\frac{\textbf{x}\cdot\textbf{b}}{\textbf{b}^2}\right)\textbf{b}
\end{align*}
}

結果だけ書くと

  { \displaystyle
\begin{align*}
    \textbf{x}
        &= \left(\frac{\textbf{x}\cdot\textbf{a}}{\textbf{a}^2}\right)\textbf{a}
            + \left(\frac{\textbf{x}\cdot\textbf{b}}{\textbf{b}^2}\right)\textbf{b}
\end{align*}
}

となります。

任意の2つのベクトルへの分解(斜交座標系)

上記2つの場合は(敢えて)成分を使わずに計算してみましたが、今の場合は成分を使って計算した方が楽。

基底ベクトル
2つの基底ベクトル { \textbf{a},\,\textbf{b} } の成分を以下のように定めましょう:

  { \displaystyle
\begin{align*}
    \textbf{a} &= \begin{pmatrix} a_1 \\ a_2\end{pmatrix} &
    \textbf{b} &= \begin{pmatrix} b_1 \\ b_2\end{pmatrix}
\end{align*}
}

これらが基底を成すために、互いに平行ではいという条件が必要。 この条件は

  { \displaystyle
\begin{align*}
    a_1 b_2 - a_2 b_1 \ne 0
\end{align*}
}

と書けます。 ここで少し記法の導入。 2つの2次元縦ベクトル { \textbf{p},\,\textbf{q} } を横に並べて作った2次の正方行列とその行列式をそれぞれ { (\textbf{p}\;\textbf{q}) ,\, |\textbf{p}\;\textbf{q}| } と表しましょう。 つまり { \textbf{p} = \begin{pmatrix} p_1 \\ p_2\end{pmatrix},\,\textbf{q} = \begin{pmatrix} q_1 \\ q_2\end{pmatrix} } とするとき

  { \displaystyle
\begin{align*}
    (\textbf{p} \; \textbf{q}) &= \begin{pmatrix} p_1 & q_1 \\ p_2 & q_2 \end{pmatrix} &
    |\textbf{p} \; \textbf{q}| &= \begin{vmatrix} p_1 & q_1 \\ p_2 & q_2 \end{vmatrix} = p_1q_2 - p_2q_1
\end{align*}
}

となります。 このとき { \textbf{a},\,\textbf{b} } が基底をなす(平行でない)という条件は

  { \displaystyle
\begin{align*}
    |\textbf{a}\;\textbf{b}| \ne 0
\end{align*}
}

と書くことができます。

任意のベクトルの分解
任意の分解したいベクトル { \textbf{x} } の成分を以下のようにします:

  { \displaystyle
\begin{align*}
    \textbf{x} &= \begin{pmatrix} x \\ y\end{pmatrix}
\end{align*}
}

このとき、{ \textbf{x} } を以下のように係数 { k_1,\,k_2 } を使って分解できたとしましょう:

  { \displaystyle
\begin{align*}
    \textbf{x} &= k_1 \textbf{a} + k_2 \textbf{b} & \cdots (2)
\end{align*}
}

この { k_1,\,k_2 }{ \textbf{x},\,\textbf{a},\,\textbf{b} } で表せれば OK。 (2) 式を成分で書き下して少し変形すると

  { \displaystyle
\begin{align*}
    \begin{pmatrix} x \\ y \end{pmatrix}
        &= k_1\begin{pmatrix} a_1 \\ a_2 \end{pmatrix} + k_2\begin{pmatrix} b_1 \\ b_2 \end{pmatrix} \\
        &= \begin{pmatrix} k_1a_1 + k_2b_1 \\ k_1a_1 + k_2b_2 \end{pmatrix} \\
        &= \begin{pmatrix} a_1 & b_1 \\ a_2 & b_2 \end{pmatrix}\begin{pmatrix} k_1 \\ k_2 \end{pmatrix} \\
        &= (\textbf{a} \; \textbf{b})\begin{pmatrix} k_1 \\ k_2 \end{pmatrix}
\end{align*}
}

左から { (\textbf{a} \; \textbf{b})^{-1} } を掛けて

  { \displaystyle
\begin{align*}
    \begin{pmatrix} k_1 \\ k_2 \end{pmatrix}
        &= (\textbf{a} \; \textbf{b})^{-1}\begin{pmatrix} x \\ y \end{pmatrix} \\
        &= \frac{1}{|\textbf{a} \; \textbf{b}|}\begin{pmatrix} b_2 & -b_1 \\ -a_2 & a_1 \end{pmatrix}\begin{pmatrix} x \\ y \end{pmatrix} \\
        &= \frac{1}{|\textbf{a} \; \textbf{b}|}\begin{pmatrix} b_2x - b_1y \\ -a_2x + a_1y \end{pmatrix} \\
        &= \frac{1}{|\textbf{a} \; \textbf{b}|}\begin{pmatrix} |\textbf{x} \; \textbf{b}| \\ |\textbf{a} \; \textbf{x}| \end{pmatrix} \\
\end{align*}
}

つまり

  { \displaystyle
\begin{align*}
    k_1 &= \frac{|\textbf{x} \; \textbf{b}|}{|\textbf{a} \; \textbf{b}|} &
    k_2 &= \frac{|\textbf{a} \; \textbf{x}|}{|\textbf{a} \; \textbf{b}|}
\end{align*}
}

を得ます。 分解の係数が得られたので (2) 式に代入し直すと

  { \displaystyle
\begin{align*}
    \textbf{x} &= \frac{|\textbf{x} \; \textbf{b}|}{|\textbf{a} \; \textbf{b}|} \textbf{a}
                    + \frac{|\textbf{a} \; \textbf{x}|}{|\textbf{a} \; \textbf{b}|} \textbf{b}
\end{align*}
}

となります。

{ \textbf{a},\,\textbf{b} } が直交するときは・・・
基底ベクトル { \textbf{a},\,\textbf{b} } が直交するときは、上記の表式は前節の「直交基底への分解」の式と等価になるはずですね。 ただし、あまり自明ではないので一応確かめておきましょう。

{ \textbf{x} }{ \textbf{a} } のなす角を { \theta } とします。 簡単のため { 0 \le \theta \le \tfrac{\pi}{2} } とし、{ \theta = \tfrac{\pi}{2} } のとき { \textbf{x} }{ \textbf{b} } に重なるとします。 { \textbf{x},\,\textbf{b} } のなす角は { \tfrac{\theta}{2} - \theta } となります。これらの関係と公式

  { \displaystyle
\begin{align*}
    \textbf{p}\cdot\textbf{q} &= |\textbf{p}||\textbf{q}|\cos\theta \\
    |\textbf{p} \; \textbf{q}| &= p_1q_2 - p_2q_1 = \sqrt{|\textbf{p}|^2|\textbf{q}|^2 - (\textbf{p}\cdot\textbf{q})^2} \\
        &= |\textbf{p}||\textbf{q}|\sin\theta
\end{align*}
}

{\theta}{ \textbf{p},\,\textbf{q} } のなす角)を用いると

  { \displaystyle
\begin{align*}
    |\textbf{a} \; \textbf{b}| &= |\textbf{a}||\textbf{b}| \\
    |\textbf{a} \; \textbf{x}|
        &= |\textbf{a}||\textbf{x}|\sin\theta 
        = |\textbf{a}||\textbf{x}|\cos\left(\tfrac{\pi}{2}-\theta\right) \\
    |\textbf{x} \; \textbf{b}|
        &= |\textbf{b}||\textbf{x}|\sin\left(\tfrac{\pi}{2}-\theta\right)
        = |\textbf{b}||\textbf{x}|\cos\theta
\end{align*}
}

となります。 これを分解の式に代入すると

  { \displaystyle
\begin{align*}
    \textbf{x}
        &= \frac{|\textbf{b}||\textbf{x}|\cos\theta}{|\textbf{a}||\textbf{b}|} \textbf{a}
            + \frac{|\textbf{a}||\textbf{x}|\cos\left(\tfrac{\pi}{2}-\theta\right)}{|\textbf{a}||\textbf{b}|} \textbf{b} \\
        &= \frac{|\textbf{x}|\cos\theta}{|\textbf{a}|} \textbf{a}
            + \frac{|\textbf{x}|\cos\left(\tfrac{\pi}{2}-\theta\right)}{|\textbf{b}|} \textbf{b} \\
        &= \left(\frac{\textbf{a}\cdot\textbf{x}}{\textbf{a}^2}\right) \textbf{a}
            + \left(\frac{\textbf{b}\cdot\textbf{x}}{\textbf{b}^2}\right) \textbf{b} \\
\end{align*}
}

となって、確かに直交系に分解する公式と同じになります。

線型代数入門 (基礎数学1)

線型代数入門 (基礎数学1)