ひらめの日常

日常のメモをつらつらと

『プログラミングのための線形代数』を読んだ

はじめに

線形代数で何をやっているのかイメージがつきやすい良書ということで友人におすすめしてもらったので、『プログラミングのための線形代数』を読みました。

プログラミングのための線形代数

プログラミングのための線形代数

ブログにまとめるというよりも、本を読み返した方が確実に効果があるので、内容をきちんとまとめたりはしません。特に印象に残った内容に関してメモとして残しておきます。(このメモも、本を読んでないとなんのことかさっぱりだと思います。)

まとめ&感想

大学1年生の頃に読んでおきたかった本でした。まずは線形代数という道具が一体どのように役に立つのか、そこから入ります。1年生の頃に線形代数を勉強した時、抽象的な概念ばかりで一体なんの役に立つのかと首を傾げていた覚えがありますので、こういう話が導入部分で書いてあるのは嬉しいです。線形代数の各概念を空間でイメージし、さらに行間や式自体のお気持ちを補足してもらっているので、非常に読み進めやすい本でした。

特に大事なところは、行列は空間をイメージする行列は写像というあたりでしょうか。

特に印象に残ったところ

基底について

特定のベクトルを指定するのに、明確に番地を指定する必要がある。その番地の基準となるのが、基底である。この定義からも、基底と呼ぶための条件は、次のようになる。

  • 今考えている空間内のどんなベクトルでも、基底の線形結合で表される。
  • しかも、その表し方はただ一つだけである。

そして、基底ベクトルの本数を持ってその空間の次元と定義する。

行列は写像

 y=Ax とは、行列  A を指定することで、ベクトルを別のベクトルに移す写像が定まるということ。つまり点を点に移すことであり、空間全体が変形するところをイメージすると良い。

核(kernel)と像(image)

  • 与えられた Aに対して、 Ax=oに移ってくるような集合を Aの核(kernel)と呼ぶ。
  • 与えられた Aに対して、 xを色々動かした時に Aで移り得る y=Axの集合を、 Aの像(image)と呼ぶ。

正則性との同値表現

  • どんな n次元ベクトル yにも、 y=Axとなる xが一つだけある
  •  A正則行列逆行列が存在する
  •  A写像は「ぺちゃんこにつぶさない」
  •  Ax=oとなるのは x=oだけ
    •  KerAが原点のみ
    •  dimKerA=0
  •  Aの列ベクトルが線形独立
  •  A写像は「行先の空間全体をカバーする」
  •  rankA = dimImA=n
  •  detA \neq 0
  •  A固有値0を持たない

LU分解の嬉しさ

LU分解とは、与えられた行列を下三角行列と上三角行列の積で表すこと。一旦LU分解されれば、行列式などの計算が少ない計算量でできる。前処理として行うことであと段階の計算が楽になることから、数値計算の基本として頻繁に利用されている。