見出し画像

SageMath で学ぶ線形代数

何らかの必要性があって線形数学を学ぶ必要がある方にプログラマーからのちょっとしたヒントを提供したい。例えば、文系で高校までしか数学を学んだことは無いが、縁があってAIの担当になったとか。

昨今のAIやデータ解析のブームもあって、それらで使われる数学として線形代数、微積分、統計学がある。ここでは線形代数について取り上げる。微積分や統計学は別稿にしたい。

実際に学ぶとなると、数学科なら数学書を紙とペンで読み進めることも大事だが、その他の人、特に社会人には時間的にちょっと厳しい。ではどうするか? SageMathを使うことを勧める。SageMathは数学ソフトウエアでフリーで誰でも使える。Googleで検索すればWebサイトや関連情報が得られる。

まず、SageMathの使い方であるが、入門書 “Computational Mathematics with SageMath” (文献[1]とする) はネットで入手可能である。この本の最初の5章を読めば大方の使い方を学べる。ただし、SageMathはPythonをベースに作られているので、最低限Pythonの知識はあったほうがよい。リストやその他のデータ構造に関しての知識も前提になっている。それから数学的なオブジェクトはクラスで実装されているので、オブジェクト指向の考え方についての慣れも必要である。だたし、あまり前提が多いと、めげてしまうので素手の状態でもチャレンジしてみるのも手である。

線形代数で最低限学ぶ内容は、行列・行列式・線型空間・固有値だろう。大学とかで履修したことがある人は手持ちの教科書で十分だが、できれば演習書(例えば 詳解 線形代数演習 共立出版)をベースにすることを勧める。演習書は理論の使い方の見本なので、ある意味ユーザーマニュアルの役目をしている。数学を使うだけなら演習書をベースにして、不明な点を教科書で調べるのが一つの方法である。

演習書の最初にある要項(まとめ)の部分を概観して、実際の計算はSageMathで行う。学校の試験でもなければ手計算はなるべく省略した方が挫折しなくて済む。数学の専門家が聞いたらトンデモナイ話だが、あえて間違いを恐れずにいうと、この方法の方が先に進める。骨の折れる計算で挫折して何も進めないより、SageMathを使いながらでも最後まで進めた方が歩がある。不明な点は印をつけて80%を目指す。

文献[1]の2.4節の部分を参照すれば線形代数の基本的な計算は遂行できる。また、8章にはより詳しい説明がある。この文献は数学書なので用語や記号の戸惑うかも知れないが、あまり気にしないで読み進めることである。(代数学の初歩的な知識を前提にしている記述はあるけども)

もちろん時間があればSageMathの結果を手計算で確かめてみれば実感を味わうこともできる。さらに定理の証明で頭を訓練しておけばアルゴリズムの開発やプログラミングに役立つ。

いずれにしても、数学書を紙とペンで取り組むよりは気楽に取り組める。文献[1]の最初の方にも、紙とペンからディスプレイとキーボードにと書いてある。実際に使ってみた例は私のWebサイトに “SageMathでできること” として公開しているので参照してほしい。

画像1

#エッセイ #コラム #ビジネス #プログラミング #Python #線形代数 #数学 #AI

この記事が気に入ったらサポートをしてみませんか?