世界を動かす技術を、日本語で。

線形代数の小さな本

概要

線形代数 の基礎概念を、初心者向けに簡潔に解説。 スカラーベクトル の違いを明確化。 ベクトルの演算 (加算・スカラー倍・線形結合)を説明。 ドット積・ノルム・角度 により幾何学的性質を導入。 直交性 の重要性と応用例を紹介。

線形代数の小さな本:第1章 ベクトル

1.1 スカラーとベクトル

  • スカラー :単一の数値量、主に 実数 $\mathbb{R}$から選ばれる。

    • 算術の基本単位、加減乗除が可能。
    • 線形代数では 係数・スケーリング因子・ベクトルや行列の成分 として機能。
  • ベクトル :スカラーを順序付きで並べた集合。

    • $\mathbb{R}^n$ はn次元実数ベクトル空間、各成分が実数。

    • 次元 $n$はベクトル空間の大きさを示す。

    • 例:

      • $(3, -1) \in \mathbb{R}^2$:2次元ベクトル
      • $(2, 0, 5) \in \mathbb{R}^3$:3次元ベクトル
      • $(7) \in \mathbb{R}^1$:スカラーと同等
  • 列ベクトル :通常は縦に並べて表記。

    • 例:$\mathbf{v} = \begin{bmatrix} 2 \ 0 \ 5 \end{bmatrix} \in \mathbb{R}^3$
  • 幾何学的解釈

    • $\mathbb{R}^2$では 原点から点$(x_1, x_2)$への矢印 として可視化。
    • $\mathbb{R}^3$では3次元空間で同様。
    • 高次元では直接描けないが、 演算規則は同一
  • ベクトルの見方 (3つ):

    • 空間上の点としての座標
    • 向きと長さを持つ矢印
    • 抽象的なベクトル空間の要素
  • 記法

    • 太字小文字($\mathbf{v}, \mathbf{w}, \mathbf{x}$)
    • $i$番目の成分は$v_i$($i$は1から開始)
    • $n$次元ベクトル全体は$\mathbb{R}^n$
  • なぜここから始めるか

    • スカラーとベクトル が線形代数の原子。
    • これらの理解が、 ベクトル空間・線形変換・行列・固有値 など全ての基礎。

1.2 ベクトルの加算とスカラー倍

  • ベクトル加算 :同次元ベクトルの対応成分を足す。

    • 例:$\mathbf{u} = (2, -1, 3)$、$\mathbf{v} = (4, 0, -5)$ $\mathbf{u} + \mathbf{v} = (6, -1, -2)$
  • 幾何学的意味

    • 平行四辺形則 :二つのベクトルを連結し、その対角線が和ベクトル。
  • スカラー倍 :ベクトルをスカラーで伸縮。

    • 例:$\mathbf{v} = (3, -2)$、$c = -2$ $c\mathbf{v} = (-6, 4)$
  • 線形結合 :複数ベクトルにスカラーを掛けて合計。

    • 例:$\mathbf{v}_1 = (1,0)$、$\mathbf{v}_2 = (0,1)$ 任意の$(a,b) \in \mathbb{R}^2$は$a\mathbf{v}_1 + b\mathbf{v}_2$で表現可能。
  • 記法

    • 加算:$\mathbf{u} + \mathbf{v}$
    • スカラー倍:$c\mathbf{v}$
    • 線形結合:$c_1\mathbf{v}_1 + \cdots + c_k\mathbf{v}_k$
  • 重要性

    • 加算・スカラー倍 がベクトル空間の根幹。
    • 幾何学的な移動・拡大縮小、連立方程式の解法の基礎。

1.3 ドット積・ノルム・角度

  • ドット積(内積) :二つのベクトルの対応成分を掛けて総和。

    • 例:$\mathbf{u} = (2, -1, 3)$、$\mathbf{v} = (4, 0, -2)$ $\mathbf{u} \cdot \mathbf{v} = 2\cdot4 + (-1)\cdot0 + 3\cdot(-2) = 2$
  • ノルム(長さ) :ベクトル自身とのドット積の平方根。

    • 例:$\mathbf{v} = (3,4)$ $|\mathbf{v}| = \sqrt{3^2 + 4^2} = 5$
  • 角度

    • $\mathbf{u} \cdot \mathbf{v} = |\mathbf{u}| |\mathbf{v}| \cos\theta$
    • $\cos\theta = \frac{\mathbf{u} \cdot \mathbf{v}}{|\mathbf{u}||\mathbf{v}|}$
  • 直交性 :ドット積が0のとき、二つのベクトルは直交(垂直)。

    • 例:$\mathbf{u} = (1,0)$、$\mathbf{v} = (0,1)$ $\mathbf{u} \cdot \mathbf{v} = 0$ → 直交
  • 記法

    • ドット積:$\mathbf{u} \cdot \mathbf{v}$
    • ノルム:$|\mathbf{v}|$
    • 直交:$\mathbf{u} \perp \mathbf{v}$
  • 重要性

    • ドット積により、ベクトル空間に 長さ・角度・垂直性 を付与。
    • 直交射影・Gram–Schmidt正規直交化・固有ベクトル・最小二乗法 の基礎。

1.4 直交性

  • 定義 :$\mathbf{u}, \mathbf{v} \in \mathbb{R}^n$が$\mathbf{u} \cdot \mathbf{v} = 0$なら直交。

    • 角度は$90^\circ$($\pi/2$ラジアン)
  • :$(1,2)$と$(2,-1)$は直交 $(1,2)\cdot(2,-1)=1\cdot2+2\cdot(-1)=0$

  • 直交集合 :全ての異なるペアが直交するベクトル集合。

    • 各ベクトルのノルムが1なら 正規直交集合(orthonormal set)

    • 例:$\mathbb{R}^3$の標準基底

      • $\mathbf{e}_1 = (1,0,0)$
      • $\mathbf{e}_2 = (0,1,0)$
      • $\mathbf{e}_3 = (0,0,1)$
      • 各ベクトルの長さは1、相互のドット積は0
  • 応用

    • ベクトルの 分解・射影・特別な基底の構築 に活用
    • 幾何学的直感を高次元空間にも拡張可能

この章では、 線形代数の基礎 となるベクトルの性質・演算・幾何学的意味を網羅的に解説。 今後の学習のための 土台形成 を目的とする内容。

Hackerたちの意見

わー、すごくいいね!内容がたくさん詰まってて、長ったらしい説明がなくて、役立つポイントがまとめられてるのがいい。 .epubはHTMLで綺麗に数式が書かれてるし(画像なし)、こういうやり方はクールだね。こんなの見たことないよ。著者はどうやって .tex から .epub を作ったんだろう?

アップデート:Sigilを使って.epubの中を見たら、pandocで作られていて、数式はMathMLでレンダリングされてるのを見た。

一つの .tex ファイルの組織とフォーマットがすごく良くて、ソースだけでもほぼ読めちゃう。ほんとにいい感じ!それに、GitHubがLaTeXの数式をマークダウンでこんなに上手くレンダリングしてるなんて知らなかった。完璧ではないけど、かなり良いよね。

7.4の直交基底あたりから、GitHubのREADMEプレビューでのtexレンダリングが動かなくなるんだ。代わりに「[ 表現をレンダリングできません。 ]」って赤いエラーボックスが出る。ページごとにレンダリングできるLaTeX表現の量に人工的な制限があるのかな?

その時点でepubに切り替えたよ。でも、ページがこんなにうまく表示されるのはgithubのおかげだと思う。

最近、線形代数に入るための本を選ぼうとしたけど、かなり地獄だった。最初のコースはこれ、次のコースはあれ、正しくやる、間違ってやる… LADR4eのルートに行こうとしたけど、まだ証明する力が足りないんだよね…

ジム・ヘファロンの「線形代数」とそれに伴う講義録がとても親しみやすくてしっかりしてると思った。無料で、演習問題や(これも無料の)解答集もついてるよ。

「No bullshit Guide to Linear Algebra」はかなり良かったよ。チェックしてみる価値あるかも。これが僕にとっては一番しっくりきたリソースだね。

もしもっと視覚的で直感的な概要に興味がある人がいたら、数年前に作ったミニブックがあるから、ここで見つけてみてね: https://github.com/photonlines/Intuitive-Overview-of-Linear-...

3Blue1Brownの線形代数の講義とテキストの組み合わせがいいね! https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2x...

線形代数が数学の中で最も深くて面白い分野の一つで、ほぼすべての数学の分野に応用があるのに、実際の量的な分野でも使われるって、ほんとにすごいよね。でも、基本的なメカニクスを学ぶのはめっちゃ退屈なんだ。甘く言う方法もほとんどないし、ベクトルやスカラー、内積、行列、ガウス消去法の基本を学ぶのは、頭が痛くなるほど退屈で、面白い分野にアプローチするための道具を手に入れるまで我慢しなきゃいけない。行列の掛け算がどうしてああなるのかっていうのもすごく深いけど、他の観点から動機付けるのはほぼ不可能。最初は「まあ、そういうもんだから」って感じで、ただひたすらやっていくしかない。ある日、線形変換の連鎖を見てると、すべてが繋がる瞬間が来る。この「小さな本」は、退屈なことを定義してガウス消去法に導く、かなり標準的なアプローチを取ってるみたい。他のアプローチとしては、多重線形関数について話してから、最後に基底や行列の概念を導き出す方法も見たことがある。回転やマルコフ連鎖のような応用から始めようとすることもあるね。面白いのは、学生にこれらのことに興味を持たせるのが教育的な悪夢で、2年後にやっとすべてが理解できるようになるってこと。

どうして行列の掛け算を動機付けるのがほぼ不可能だと言うの?その動機は、これが線形関数の合成を表しているからだよ、まさに君が言ってる通り。最初から「まあ、そういうもんだから」って言うのは誰にとっても不親切だよ。「ほら、これが線形関数を表してるんだ。そして、これがどうやって合成されるか見てみて」って教えるべきだと思う。

「行列の掛け算がどうしてああ見えるのか」というのは、すごく深いテーマだけど、他の観点から動機づけるのはほぼ不可能だよね。「まあ、そういうもんだから」と言って、ただやり続けるしかない。僕の経験では、全然そんなことないと思う。まずは線形変換を定義して示すところから始められるよ。例えば、グラフィックスから入って、平行移動、回転、反射とかを見せるんだ。これらが線形変換の定義に従っていることを学生に示す。和を回転させるのは、回転させたものを和するのと同じだってね。[微分可能な関数(ベクトルからベクトルへのもの)は局所的には線形であることも言及しておくといいかも。] それから、ベクトルの加算を使って二つの線形変換を足す定義をする。次に、線形変換をスケーリングする定義をする。ポイントは、組み合わせが線形変換そのものとして表現できること。ベクトルをR^dとして表す必要はなくて、幾何学的な矢印や平行四辺形の法則で十分だよ。最後に、線形変換の合成を示して、その結果自体が線形変換であることを証明する。面白いのは、この線形変換の加算と合成が実数の加算と掛け算とほぼ同じように振る舞うこと。加算は結合的で可換的。掛け算は結合的だけど、必ずしも可換ではない。特に、演算が分配されるのが印象的。まるで実数の代数みたいだよ! さて、座標系を課すか基底を選ぶと、学生たちは数日間遊ぶことで行列の掛け算のルールを自分で発見できる。ほら、長い線形変換のリストを維持する代わりに、選んだ基底で単一の線形変換として保存できるんだ。

この「小さな本」は、かなり標準的なアプローチを取っていて、退屈なことを全部定義してからガウス消去に導いているみたい。他に見たアプローチは、多重線形関数について話してから、最後に基底や行列の概念を導き出すというもの。あるいは、回転やマルコフ連鎖のような応用から始めようとするもの。じゃあ、どの本や「非標準」のリソースを勧める?もっといいアプローチをしているやつ。

グラフィックスプログラミングに興味がある人や、視覚的に学ぶのが得意な人には、線形代数の基本を学ぶのにすごくやる気が出て、報われる方法があるよ。(アファイン代数についても、残念ながら軽視されがちだけどね。これに関する修士論文を書いてるんだ。)

線形代数のどの部分も退屈だとは思わなかった。Ax=b => x = b/Aを見た瞬間から夢中になった。ガウス消去は楽しいし、実際に生産的な数独パズルみたいで、これをマスターすれば学部の線形代数のコースの最初の2/3はサクサク進めるよ。数学の科目で自動化を意識してやろうとは思わないけど、行列の列の掛け算はすぐに覚えちゃった。今ではそれが身についてる。ストラングから学んだんだけど、LU、空間、QR、そしてスペクトルの流れだね。数学は本当に苦手なんだけど、これは直感的にしっくりきた唯一の高度な数学の科目だよ。

プレカリキュラスは嫌いだったけど、証明ベースの線形代数は大好きだった。大学の最初の数学のコース(線形代数+多変数微積分)だったからね。でも、行列の掛け算のシンプルさ(美しさ)は、実際に計算してみると「え、本当に?こんなにシンプルに見えるの?」って感じで、今でもちょっとイラッとする。

「なぜ行列の掛け算はああ見えるのか」ってのもすごく深いけど、他の観点から動機づけるのは実際にはほぼ不可能だよね。行列やベクトルをただの数字の海として捉えて、数字が何を意味するのかを深く理解しようとしない限り、難しく感じるだけ。行列を基底ベクトルの一つの表現から別の基底ベクトルのセットに変換する方法として見ると、定義がずっと理解しやすくなるよ。そのためには、まずベクトルが基底ベクトルでどう表現されるかを理解する必要がある。

年を取るにつれて、「数学は難しくない; 教えるのが難しい」ってことにますます確信を持つようになった。

線形代数が実際の応用にどれだけ重要かを考えると、高校の数学が微積分に深く入り込んで、基本的なベクトルや行列をほとんどカバーしていないのが驚きだよ。ベクトルが出てくるのは、通常は力学のためのデカルトベクトルだけで、基本的な加法、スカラー倍、成分分解しか話されないし、内積なんて無視されがち。

CCライセンスの教科書を見るのはいつもいいね。これ、結構シンプルで、説明やイラスト、証明があまり含まれてないみたい。初学者にはそういうのが役立つと思うけど、少なくともチートシートとしては使えるはず。

グラフィックなしの線形代数の授業?25年前に学校で習ったとき、先生は常に図を描いて各概念の視覚的な直感を説明してたんだ。ベクトル空間の抽象的な定義を加法やスカラー倍と一緒に紹介されたときは、全然混乱したよ。その後、矢印を描いたら、急にすべてが理解できた。

線形代数に苦労している人には、シェルドン・アクスラーの『Linear Algebra Done Right』を強くおすすめするよ。いくつかの概念はすごく冗長だけど、それは本当に必要だからね。N×Nの行列について話すときは、N^2の異なる要素を区別する必要があるから、行列に触れずにかなりのところまで進めるし、行列との相互作用を学ぶ前にこの抽象的な基盤で動機を見つけることができるよ。

[遅延]