Pythonで学ぶ線型代数


 

 

講座の概要

 科学技術計算に Python を活用する場合、解くべき問題は可能な限り行列(より一般的にはテンソル)で表現し、コンピュータに配列処理を実行させます。なぜなら、科学技術計算用パッケージ NumPy は、大規模な配列演算を高速処理するように設計されており、Python エンジニアはその処理速度を減速させないコードを書くことが求められるからです。

 配列演算の基盤となる数学は 線型代数 (linear algebra) です。
 NumPy および、NumPy をベースに構築された SciPy は、linalg というモジュールに線型代数演算用の関数をまとめています。

 Python で学ぶ線型代数 では、テーマごとに行列やベクトル演算のコードを実装しながら、線型代数の数理構造を解説します。このシリーズの記事を読み進めることによって、配列を用いたプログラミングと線型代数の知識を同時進行で習得できる構成になっています。当講座は「プログラミングを活用しながら線型代数に登場する式や定理の意味を読み解く」という方針で執筆しています。純粋数学としての線型代数を講義する内容ではないので、難解な証明などはざっくり端折っています (Web で長い証明を読みたいと思う人はあまりいないでしょう)。厳密な形式に拘りたい人は、基礎数学シリーズの『線型代数入門』で学ぶことをおすすめします(線型代数について網羅された古典的名著です)。

線型代数入門 (基礎数学)

中古価格
¥864から
(2019/10/24 15:44時点)

 本講座に掲載するコードを実行するためには、Python 本体に加えて

 ・NumPy
 ・Scipy
 ・SymPy
 ・Matplotlib

という 4 つの拡張パッケージが必要となります。足りないものがあったらインストールしておいてください (Anaconda にはすべて含まれています)。このうち NumPy については、必要最低限の知識 (基本演算、ブロードキャスト、numpy.sum()関数の使い方など) は身につけておいてください。SciPy や NumPy の関数を使うときには、その都度説明します。

 線型代数は大学の初年度に履修する学問なので、高校数学までの基本的知識は必要となります。基本的知識とは、教科書をひと通り読んで簡単な練習問題を解けるというレベルです。忙しくて教科書を全部読み直す時間がないという人は、文字式の変形、因数分解、一次方程式、連立方程式、ベクトルの計算、三角関数あたりを重点的に復習しておいてください。