線形代数の基礎 第２回 - ベクトル（1）

　今回はベクトルとベクトル上の演算の定義について書きます。（今回の内容は、まだ理系の方には簡単な内容かも知れません。また、前回同様、説明が厳密でないところもあるので、数学科の皆さん突っ込みはご容赦ください。）
　本稿を書こうと思った理由や、エンジニアが線形代数を勉強するためのコツのようなことを書いたので、よろしければ[前回の内容](http://qiita.com/nognog/items/8279935a96b4ca5dd375)もご覧下さい。

#ベクトルの定義

- まず、数字を並べたものをベクトルと定義します。まあ、この辺は定義ですのでまだ簡単です。

```math
\mathbf{x}= \left(
\begin{matrix}
1 & 2 & \cdots & 3
\end{matrix}
\right)
```
- 普通は縦ベクトルで表します。

```math
\mathbf{x}= \left(
\begin{matrix}
1\\\ 
2\\\
\vdots\\\
 3
\end{matrix}
\right)
```

- ちなみに、縦長$\Leftrightarrow$横長を入れ替えたものを転置ベクトルといい、以下のように表します。

```math
\mathbf{x}= \left(
\begin{matrix}
1 & \cdots 3
\end{matrix}
\right)^t = 
\left(
\begin{matrix}
1\\\ 
2\\\
\vdots\\\
 3
\end{matrix}
\right)
```

- ベクトルは、図で表すと矢印として表現できます。例えば、２次元ベクトル$\mathbf{x}=(1.5,1)^t$は以下のように表せます。

![2d_vector.png](https://qiita-image-store.s3.amazonaws.com/0/50769/e7dd2a3c-aca3-8313-3287-2cc8d553b344.png)

ここで、一応補足ですが、$\mathbf{x}=(1.5,1)^t$と書いたのは、本当は縦ベクトルで書きたかったのですが、スペースを省略して転置で表したものです。このような書き方がよく出てくるのでちょっと書いてみました。

- また、以下は、$\mathbf{x}=(1,2,3)^t$を図示してみたものです。一応図示することができます。

![3d_vector.png](https://qiita-image-store.s3.amazonaws.com/0/50769/e78ce02a-6d35-14d1-275d-8f13fb43d17f.png)


　ところで、２次元、３次元のベクトルでしたら図で表せますが、$n$次元のベクトルはどのように図示すればいいのでしょうか？前回も書いたのでしつこくてすみませんが、**n次元のベクトルは図では表せません。**無理なものは無理なので、無理やり表現しようとするのは諦めて、$n$次元が出てきたら、まずは、代わりに３次元のものを考えるようにしたほうがいいです。

　理解の順序としては、

```
n次元が出てきた
↓
3次元の例で考えてイメージを湧かす
↓
n次元でも同様のことが成り立つことを（イメージはできないが、無理やり）納得する
```

というのが、線形代数をイメージするコツだと思います。「無理やり」というところは、イメージはできないが、証明等により論理的に詰めていくと確かに成り立つので、まあ、そうかと納得するという流れになると思います。

# ベクトルの基本演算
ベクトルの基本演算は以下の通り定義されます。この辺も高校の数学で出てきますね。（２次元だったかもしれませんが。）

- ベクトルの足し算：個々の要素同士の足し算

```math
\left(
\begin{matrix}
x_1\\\ 
x_2\\\
\vdots\\\
x_n
\end{matrix}
\right)
+
\left(
\begin{matrix}
y_1\\\ 
y_2\\\
\vdots\\\
y_n
\end{matrix}
\right)
=
\left(
\begin{matrix}
x_1 + y_1\\\ 
x_2 + y_2\\\
\vdots\\\
x_n + y_n
\end{matrix}
\right)
```

- ベクトルと定数の掛け算：個々の要素と定数の積

```math
c
\left(
\begin{matrix}
x_1\\\
x_2\\\
\vdots\\\
x_n
\end{matrix}
\right)
=
\left(
\begin{matrix}
c x_1\\\
c x_2\\\
\vdots\\\
c x_n
\end{matrix}
\right)
```

ちなみに、ベクトル同士の掛け算はありません。代わりに、内積が定義されます。（内積については後述予定）。

# 線形性

ところで、ベクトルの足し算と掛け算をよく眺めると、以下のようになっています。

```math
\left(
○
\right)
+
\left(
△
\right)
=
\left(
○+△
\right)
```
```math
c
\left(
○
\right)
=
\left(
c ○
\right)
```

　このような性質を線形性と言います。**実は、数の並びとして定義したベクトルだけではなくても、上記性質を満たすものはすべて、広い意味でベクトルと定義でき、ベクトルに関する定理や操作を当てはめるようにできます。**前回説明した、数学でよく出てくる（というか数学の目的の１つである）一般化・抽象化です。（注：本当はもう少し他の性質も満たす必要がありますが、簡単のため省いています。）

　抽象的な話に自ら踏み込んで行く必要はないかも知れませんが、例えば、小難しい数学や物理の本を読んでいて、関数が直交するとか、明らかにベクトルの話ではないのにベクトルみたいな話が出てきた時は、？？？と慌てず、**実は関数をベクトルの一般化と見て考えている**ということに気づけば、冷静に理解をすることができます。

一般的に、ある関数が以下の性質が成り立つ時、線形性を有していると言います。

```math
f(x) + f(y) = f(x + y) （加法性と言います）\\\
cf(x) = f(cx)　（斉次性と言います）
```

なぜ線形性と言うかと言うと、（原点を通る）直線が持っている性質だからです。実際、$f(x)=ax$とすると、

```math
\begin{align}
f(x+y) &= a(x+y)\\\
&= ax + ay\\\
&= f(x) + f(y)
\end{align}
```
となります。例えば、$f(x)=x^2$ですと、この性質は成り立ちません。

# 線形空間

　当たり前ですが、２次元のベクトルの足し算や定数倍は２次元のベクトルになります。$n$次元のベクトルの足し算や定数倍は$n$次元になります。このように、足し算と定数倍が定義され、かつ、結果が同じ世界に閉じる世界のことを、線形空間、またはベクトル空間と呼びます。なんでわざわざこんなものを定義するのかと思うと思いますが、前節の説明と同様、**このように一般化しておくことで、一見複雑な世界も、足し算と定数倍が定義されれば、線形空間としてイメージできるようになるから**です。

 ちなみに、よく考えると、この世界は足し算と定数倍しか定義されておらず、長さ・角度が定義されていません。ちょっと抽象化しすぎちゃったって感じですね。そこで、ちょっと抽象度を下げて、この世界に、追加で**長さと角度が定義された世界**を定義することもできます。このような世界のことを**内積空間**と呼びます。内積空間については別途記載予定です。

# 今回の結論
- ベクトルは数字を並べたものとして定義される。
- ベクトルは矢印でも表せる。
- ただし、3次元より高い次元の場合は、図で表すことは不可。この場合は無理にイメージをしようとせず、３次元で考える。
- ベクトルの加算と定数倍を定義した。
- 実は、加算と定数倍が定義されたものは、広い意味でベクトルと解釈することもできる。

# 次回の予定

次回はベクトルの続きとして、基底について説明予定です。