794
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

線形代数の基礎

本稿の目的

 私は工学部出身ですが、大学1年の時に授業をサボっていたため、線形代数・微分積分はチンプンカンプンな感じでずっと騙し騙しやってきました。本稿は、これではいかんと一念発起し、数学を勉強しなおした時のメモとなります。主に、「プログラミングのための線形代数」という本に沿って勉強した内容をまとめてあります。(この本は私のバイブルです!)

 本稿では、まずは、そもそも、私が挫折をした、線形代数の目的や意味、エンジニア(工学部出身者)が線形代数を理解するための心得についてまとめました。

 私は数学科出身ではないので、本流はよく分かりませんし、主観的なところや我流の理解もあると思いますが、適宜ご指摘をお願いします。また、以下は一介のエンジニアの個人的な見解ですので、異なる意見の皆様はコメントがある場合でもお手柔らかにお願いします(特に数学科の皆様)。

線形代数の目的

線形代数の目的は以下のとおり。

  1. 空間をイメージする手段 →2次元・3次元
  2. たくさんの数字をまとめて考える手段 →n次元
  3. 近似の手段 →曲線を直線で近似
  4. 数学の記述手段 →煩雑な数式をスッキリとまとめる

1. 空間をイメージする手段としての線形代数

 線形代数は、2次元(平面)や3次元(空間)を扱う基本的な道具としての機能があります。ここはイメージしやすいところだと思います。

2. たくさんの数字をまとめて考える手段

 また、線形代数は、2次元・3次元のみでなく、n次元として、たくさんの数字をまとめて考える手段を提供してくれます。たくさんの数字(n次元の数字)は普通はイメージしにくいですが、高次元空間内の点として理解すれば、空間についてのイメージを解釈に生かすことができます。例えば、主成分分析や最小自乗法とかですね。

3. 近似の手段 →曲線を直線で近似

 線形代数は、基本的に線形(=直線)しか扱いませんが、曲線も拡大していけば直線の集まりと解釈できるので、曲線の近似手段としても使われます。

4. 数学の記述手段 →煩雑な数式をスッキリとまとめる

 個人的には、線形代数は、煩雑な数式をまとめる記述言語としての意味もあると思っています。例えば、2次形式($\mathbf{x}^TA \mathbf{x}$)は、難しそうに見えますが、単に$\sum\sum a_{ij}x_iy_j$を表しています。(つまり、$ax^2+bxy+cy^2$を$n$次元に一般化したもの。)

エンジニアが線形代数(数学)を理解するための心得

1. n次元はイメージできるか?

 つい最近まで、私は、数学のできる人は$n$次元をどのようにイメージしているのだろうか?と常々考えていましたが、今は断言できます。n次元はイメージできません!! どう頑張っても、人間の能力でイメージできないものはできません。(4次元までだったら、3次元+時間でなんとかイメージはできると思いますが。)逆に、高次元の空間を3次元に落としてイメージできることが線形代数の重要なメリットなのです。

2. 数学はなぜ定義・定理・証明の繰り返しなのか?

 数学の本は定義・定理・証明の繰り返しのため、退屈でイメージもわかず、何をやっているのか流れを見失うことも多いです。しかし、冷静に考えてみると、数学は実は自然に考えると当たり前のことを数式で表しているだけのことも多いです。ですので、当たり前のことを言っていると思う時は、なんでこんな当たり前のことを言っているんだろう?何か裏があるのでは?と疑うことはせず、素直にイメージ通りに理解することが重要だと思います。

 では、なぜ数学は定義・定理・証明の繰り返しなのでしょうか?私の理解では、数学は世の中の当たり前のことが本当に正しいかを確認することを目的としているからだと思っています。このため、当たり前のことを、式でこねこねと突き詰めていくのです。また、数学は、自然に考えると当たり前のことが、人間の力ではイメージできない抽象的なことに対しても拡張できるかを確認する手段でもあるため、証明で突き詰めて考えていくスタイルになっているものと思います。3次元空間のイメージを高次元に適用することなんかは、まさにいい例なのではないでしょうか。

3. エンジニアは証明を理解すべきか?

 たしかに、証明の流れを追ったほうが、理解は進むと思います。ただ、全体の流れやイメージをつかむほうがずっと重要ですので、途中で行き詰まったり全体の流れを見失う時は、無理して深追いはしないほうがいいと思います。

4. 抽象的な世界に踏み入れるべきか?

 上記の通り、数学の一つの目的は、人間ではイメージが及ばない抽象的な世界に、論理的な思考で踏み入って行くことだと思います。では、エンジニアは抽象的な世界に踏み入れるべきでしょうか?個人的な答えはNoです。なぜならば、コンピューター等、現実の世界で表現できるものはほぼすべて、イメージできるものだからです。例えば、コンピューターで表現できる数字の桁数は有限ですので、コンピューターは有理数(分数で表せる数)しか表現することできません。このため、人間がイメージできない無限や連続の世界は、実はコンピューターでも表現できないのです。

5. 結論: 数学を勉強する際の3か条

  1. 証明は理解するに越したことはないが、全体のイメージを掴むことを優先すべき。
  2. $n$次元をイメージするような、人間がイメージできないものを無理やりイメージしようとすることはするべきでない。
  3. 抽象的な世界を深追いするのはほどほどにしておく。

今後の予定

  1. ベクトル
    1. 線形代数の基礎 第2回 - ベクトル(1)
    2. 線形代数の基礎 第3回 - 基底
  2. 行列
    1. 線形代数の基礎 第4回 - 行列(1)
    2. 線形代数の基礎 第5回 - 行列(2)
  3. 行列式
    1. 線形代数の基礎 第6回 - 行列式(1)
    2. 線形代数の基礎 第7回 - 行列式(2)
    3. 線形代数の基礎 第8回 - 行列式(3)
  4. ランク
    1. 線形代数の基礎 第9回 - 行列のランク(1)
    2. 線形代数の基礎 第10回 - 行列のランク(2)
  5. 逆行列
    1. 線形代数の基礎 第11回 - 逆行列
  6. 固有値・固有ベクトル
    1. 線形代数の基礎 第12回 - 固有値・固有ベクトル
    2. 線形代数の基礎 第13回 - 対角化
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
794
Help us understand the problem. What are the problem?