We may earn an affiliate commission when you visit our partners.
大内 雅晴

データサイエンスを目指す人が最初に学習すべき数学が線形代数です.

また線形代数は,本格的な数学を学ぶ入口としても本カリキュラムは最適です.

線形代数の最も自然な導入は,連立方程式の解法です.最初に連立方程式を古典的な解法に沿って復習します.その上で,同じことを線形代数の現代的な表現に置き換えます.現代的な解法は,ベクトルと行列を使用した方法です.連立方程式の古典的解法であるGaussの消去法が行列のLU分解に置き換わります.これにより,現代的な線形代数の意味を納得することができます.

最初は解ける連立方程式を扱いますが,その次に解けない連立方程式を扱います.解けない連立方程式は応用を考えると極めて重要です.解けない方程式を「解無し」として済ますのではなく,近似解を求める手法を展開します.その方法は最小2乗法と呼ばれる方法ですが,最小2乗法で求めた結果を整理すると,線形代数の射影の問題になります.そして,その応用として回帰分析があります.回帰分析の理論的本質は線形代数ですが,そのことを明確にすることによって,回帰分析を本当に理解することができます.

Read more

データサイエンスを目指す人が最初に学習すべき数学が線形代数です.

また線形代数は,本格的な数学を学ぶ入口としても本カリキュラムは最適です.

線形代数の最も自然な導入は,連立方程式の解法です.最初に連立方程式を古典的な解法に沿って復習します.その上で,同じことを線形代数の現代的な表現に置き換えます.現代的な解法は,ベクトルと行列を使用した方法です.連立方程式の古典的解法であるGaussの消去法が行列のLU分解に置き換わります.これにより,現代的な線形代数の意味を納得することができます.

最初は解ける連立方程式を扱いますが,その次に解けない連立方程式を扱います.解けない連立方程式は応用を考えると極めて重要です.解けない方程式を「解無し」として済ますのではなく,近似解を求める手法を展開します.その方法は最小2乗法と呼ばれる方法ですが,最小2乗法で求めた結果を整理すると,線形代数の射影の問題になります.そして,その応用として回帰分析があります.回帰分析の理論的本質は線形代数ですが,そのことを明確にすることによって,回帰分析を本当に理解することができます.

さらに線形代数の大きなテーマである固有値と固有ベクトルを学習します.固有値を真に理解するためには,線形代数の本格的な理論を学習する必要があります.この部分の学習には線形代数で扱う様々な数学的構造を理解しなければならないので,忍耐力が必要です.それと同時に,ここで学習することが「数学の学び方」のヒントになります.この学習を克服すれば,数学の他の分野を学習する素養が付きます.さて,固有値を求めることを一言で言うと行列の対角化です.学習した後に,その意味と効果が理解できます.固有値の応用の例としては,多変量解析の主成分分析が挙げられます.ここでは,主成分分析を具体的な固有値問題として解決します.

このように,線形代数は数学のインフラと言って良いでしょう.

レクチャーの主な内容は次の通りです.

  1. 連立一次方程式

    • 問題の定式化,Gauss-Jordanの消去法,幾何学的解釈

  2. ベクトルと行列

    • ベクトルとそのPythonによる取扱い,行列とそのPythonによる取扱い,行列の積

  3. 数学の基礎

    • 集合論,論理,写像,二項演算,群論

  4. ベクトル空間

    • 基底,部分空間,線形写像とその行列表現

  5. 解が一意的に存在する連立方程式の現代的解法

    • Gaussの消去法,LU分解,PA_LU分解

  6. 解が無限に存在する連立方程式の現代的解法

    • 階段行列とLU分解,線形写像の核,一般行列のPA_LDU分解,Pythonによる解法

  7. 内積

    • ユークリッド空間,ピタゴラスの定理と直交性,内積と転置行列,射影,ユニタリ空間,グラム・シュミットの正規直交化法

  8. 解が存在しない連立方程式の近似解法

    • 最小2乗法と射影,回帰分析

  9. 固有値と固有ベクトル

    • 線形変換とベクトル場,固有値問題の解法,複素共役と随伴行列,エルミート行列のスペクトル分解

  10. 行列の対角化

    • 相似と対角化,正規行列,フィボナッチ数列,マルコフ過程,主成分分析

最後に,このカリキュラムの特徴として,理論と実践の両立があります.数学の専門書の最大の欠点は理論が分かっても実際の問題を解けないということです.具体的に連立方程式の例で言えば,理論を学ぶときに実際に解く問題の変数の個数は3個ぐらいで,多くても5個ぐらいです.しかし,私たちが将来取り組むことになるであろうデータ分析やニューラルネットワークでは,使用される変数の個数が100個を超えることは驚くことではありません.しかし,100個の変数を手計算で解く気にはなりません.現実にはコンピュータを使って解くことになります.

そこで,私たちは線形代数をPythonで扱うことをマスターします.ご存知のようにPythonは,データサイエンスの分野ではデファクトスタンダードになっています.この講座はPythonの学習講座ではありませんが,Pythonを少しでも知っていれば理解できます.

(注意)

この講座は線形代数を本気で学習するコースになっています.そのため,基礎から地道に式を追っていく忍耐力が必要となります.ご購入の前に,この点についてご理解ください.

Enroll now

What's inside

Learning objectives

  • 線形代数の理論の習得できます.
  • 数学的な思考方法が本格的に身に付きます.
  • 回帰分析や主成分分析の理論を根本的な線形代数から理解できます.
  • 具体的な問題の対応法をpythonによって実現できます.

Syllabus

はじめに

数学に取り組むと決めたときに最初に額数すべきは,線形代数です.線形代数は本格数学の入口としても,データサイエンスの基礎としても重要な分野であることを説明します.

ビデオにて説明した内容をpdfファイルとして添付しています.ダウンロードしてご参照ください.

Read more
連立一次方程式の古典的な解法について復習します.

線形代数への入口として,連立一次方程式の復習を行います.

まずは,確実に理解していることから始めます.自身のある方もそうでない方も,初心に戻ってスタートしてください.

【問題】

3種類のコーヒー豆A, B, Cを購入しました.100g当たりの単価はそれぞれ800円, 400円, 100円です.合計金額は2,000円でした. A, B, C合わせて700g購入しましたが,A, B合計量はCの量より100g少なかったです. A, B, Cそれぞれ何g購入したか求めよ.

文章問題に関する質問です.

演習問題の解答です.

これまで説明してきた連立方程式の解説を文書化してpdfファイルとして添付いたしました.ダウンロードして,復習にご活用ください.

ここでは,連立一次方程式の解法の一つであるGauss-Jordanの消去法について,例題を用いて説明します.

Gauss-Jordanの消去法を連立一次方程式の係数を記号にした場合で説明します.

Gauss-Jordanの消去法の例題および一般の方程式での説明をpdfファイルとして添付しました.ダウンロードして,復習にご活用ください.

連立一次方程式の変数の個数と式の個数の関係について確認します.

連立一次方程式の解には次の3種類のパターンがあります.

  • 解が一意的に存在するケース

  • 解が無限に存在するケース

  • 解が存在しないケース

ここでは,それらのケースについて紹介します.

それぞれの解のパターンについて,グラフを描いて幾何学的な意味を確認します.

「変数の個数と式の個数について」から「解の幾何学的解釈」までの説明をpdfファイルにまとめて,資料として添付しています.

Pythonのグラフのプログラムが載っていますので,pdfファイルをダウンロードして参考にしてください.

連立一次方程式の解法および解の特徴についてのクイズです.

線形代数で扱うオブジェクトを定義します.また,Pythonの中での取扱い方についても学習します.

スカラー,ベクトル,行列の定義について確認します.

Pythonにおけるスカラー,ベクトル,行列の扱い方をJupyter notebookを使って説明しています.

添付ファイルとして,Jupyter notebookのファイルをzipにしたものを載せてますので,ダウンロード,解凍してご利用ください.

また,スカラー,ベクトル,行列の説明資料もpdfファイルとして添付しています.

ベクトルのスカラー倍やベクトルの足し算などについて説明します.

ベクトルのスカラー倍やベクトルの足し算のPythonにおける実行方法をJupyter notebookで説明します.

また,説明資料のpdfファイルも添付してありますので,ダウンロードしてご参照ください.

ベクトル演算の演習問題です.問題をpdfファイルとして添付してありますので,ダウンロードしてご利用ください.

ベクトルのスカラー倍の計算方法について,確認します.

ベクトル演算の演習問題の解答です.この解答の文書はpdfファイルとして添付してありますのでダウンロードして参照してください.

行列の足し算や積についての定義を学習します.

Pythonにおける行列の演算について,Jupyter notebook上で説明しています.

説明資料のpdfファイルを添付いたしましたので,ダウンロードしてご参照ください.

行列の積の定義が何故そうなっているのかを解説しています.

説明資料のpdfファイルを添付いたしましたので,ダウンロードしてご参照ください.

Pythonにおけるベクトルの扱いは数学における厳密な定義とは異なる仕様になっています.このことについての説明を行います.

説明資料のpdfファイルを添付いたしましたので,ダウンロードしてご参照ください.

線形代数に現れる代表的な行列を紹介します.

これらの説明資料のpdfファイルを添付いたしましたので,ダウンロードしてご参照ください.

行列演算についての演習問題です.問題はpdfファイルとして添付してありますので,ダウンロードしてご利用ください.

演習は,紙の上で手計算で解答した後に,Pythonでご確認ください.

行列演算の計算方法について確認するクイズです.

行列演算の演習問題の解答です.この解答の文書はpdfファイルとして添付してありますので,ダウンロードして参照してください.

数学を学習する前提として必要となる集合・論理・写像などの概念についての準備を行います.

これからの準備として,添え字付き変数と添え字付き定数に慣れておきましょう.

集合についての初歩的な説明を行います.

さらに,説明の詳細を記述した資料をpdfファイルとして添付してありますので,ダウンロードしてご参照ください.

数学を学習する上で必要となる論理の初歩手な説明を行います.

さらに,説明の詳細を記述した資料をpdfファイルとして添付してありますので,ダウンロードしてご参照ください.

線形代数の基礎である写像について説明します.

さらに,説明の詳細を記述した資料をpdfファイルとして添付してありますので,ダウンロードしてご参照ください.

写像としての二項関係と二項演算について説明します.

説明の詳細を記述した資料をpdfファイルとして添付してありますので,ダウンロードしてご参照ください.

数学における重要な概念である「群」について,「置換」を用いて説明します.

正則行列を要素とする一般線形群について説明します.

数学の証明において頻繁に使用される数学的帰納法について説明します.

ベクトル空間の概要について学習します.

ベクトル空間の定義について説明します.

ベクトル空間の例として,n次多項式の集合がベクトル空間であることを紹介します.

ベクトル空間における基礎的な概念である線形結合,基底,および座標について説明します.

ベクトルの線形結合によって生成される部分空間について説明します.

ベクトル空間を幾何学的に解釈して,分かりやすいイメージを身に付けていきます.

ベクトル空間についての確認します.

線形写像についての基礎を確認します.

ベクトル空間上の線形写像の定義と例について説明します.

線形写像の代表的な例である拡大縮小および回転について説明します.

線形写像を表す表現行列について説明します.

回転写像および表現行列の応用として,三角関数の加法定理を導きます.

ベクトル空間の同型について説明します.

線形写像の表現行列の列ベクトル空間について説明します.

列ベクトル空間による解の存在定理について説明します.

行列の核(カーネル)について説明します.さらにカーネルを使って解の一意性を示します.

レクチャー「線形写像と部分空間」,「列ベクトル空間と解の存在」,「行列の核と解の一意性」についての説明資料です.

ベクトル空間の線形写像についての知識を確認するクイズです

一意的に解ける連立一次方程式の解法からLU分解の理論を学習します.

一意的に解ける連立一次方程式をGaussの消去法によって解いていきます.

方程式の解を求めるために利用する行列の基本変形について説明します.

連立一次方程式を行列に変えて,行列に対するGauss消去法の前進消去を説明します.

式の入替えを行わなくても一意的に解ける連立一次方程式に付随する係数行列のLU分解について説明します.

LU分解の続きとしてLDU分解について説明します.

行列でのGaussの消去法から行列のLDU分解の説明資料です.

Gaussの消去法とLU分解についての理論のまとめです.

また,Gaussの消去法に数学的帰納法の考え方が使われていることも説明します.

Gauss消去法の前進消去の途中で行の入替えが発生する場合の連立一次方程式を扱います.

式の入替えが発生する連立一次方程式を行列に置き換えて考えていきます.

行の入替えが発生する場合のPA=LU分解について説明します.

前のレクチャーで求めたPA=LU分解の結果をPythonによって検証します.

ここで使用したJupyter notebookのファイルをzipファイルとして添付してありますので,ダウンロードして,ご自身のJupyter notebook環境でご利用ください.

行の入替えによる前進消去を最初から実施する手戻りの回避方法について説明します.

LU分解の演習問題です.

対象となる行列をPythonで定義すると次のようになります.

A =numpy.array([[1,2,-1],[2,6,-2],[3,4, 1]])

行列のLU分解に関するクイズです.

LU分解についての演習問題の解答です.

解答のpdfファイルも添付してありますので,ご利用ください.

解に自由度が生じる連立方程式についての解説です.

連立一次方程式の解のパターンについて,これまで学習した行列による解釈を確認します.

取扱う連立方程式を一般化して,n行m列の係数行列の場合についてLU分解を考えていきます.

一般の行列のLU分解について,具体的な例を用いて説明します.

手計算で行った一般の行列のLU分解をJupyter notebook上でPythonで追体験します.

この詳細文書はpdfファイルとして添付してありますので,ダウンロードしてご参照ください.

一般行列のLU分解に引き続いて,一般解を求めます.

PA-LU分解からさらに進めてPA-LDU分解を求めます.

解が無数に存在する場合についての確認クイズです.

最先端のITサイエンスにおいて線形代数がどのように活用されているかを学習します.

ニューラルネットワークや微分方程式の解法などにおいて,線形代数は重要な基盤となっています.

ディープラーニングにおけるニューラルネットワークをプログラムで実施するには線形代数が必要であることを説明します.

微分方程式の数値解法においても線形代数が重要であることを説明します.

行列の正則性と行列式について学習します.

行列式の意味と定義について説明します.また,2次正方行列の行列式を求める公式を提示します.

3次以上の行列の行列式を求めるための余因子展開について説明します.

これまで連立方程式の手計算による解についてPythonを検証に使用してきましたが,ここではPythonによって行列方程式を解く方法を説明します.

Pythonによる行列関連の関数や行列方程式のLU分解による解法について,実際に実施します.

ベクトル空間に内積を導入することによって豊かな数学的構造が構築されます.ここでは,それらの構造について学習します.

線形代数の次のステージについてのオリエンテーションです.

内積の定義について,実数ベクトル空間と複素数ベクトル空間で説明します.

ノルムの定義について説明します.また,内積とノルムの関係についても説明します.

距離の定義について説明します.また,ノルムと距離の関係についても説明します.

内積空間の特徴についてのクイズです.

ユークリッド空間において,内積から導かれる概念を説明します.

Save this course

Save 線形代数の理論とPythonによる実践 to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for 線形代数の理論とPythonによる実践. These are activities you can do either before, during, or after a course.

Career center

Learners who complete 線形代数の理論とPythonによる実践 will develop knowledge and skills that may be useful to these careers:

Reading list

We haven't picked any books for this reading list yet.
Focuses on the applications of linear algebra in economics, covering topics such as matrix analysis, input-output models, and game theory. It is suitable for undergraduate or graduate students in economics.
Offers a comprehensive and in-depth treatment of advanced topics in linear algebra, such as group representations, Jordan canonical form, and multilinear algebra. It is suitable for graduate students.
Provides a more comprehensive and in-depth treatment of linear algebra, covering a wide range of topics from basic concepts to advanced applications. It is suitable for advanced undergraduate or graduate students.
Provides a comprehensive overview of linear algebra, covering vector spaces, matrices, linear transformations, and their applications in various fields. It well-written and accessible textbook for undergraduate students.
Offers a concise and elegant treatment of linear algebra, focusing on the fundamental concepts and their applications in various fields. It is suitable for advanced undergraduate or graduate students.
Classic textbook in linear algebra, known for its rigorous and abstract approach. It is suitable for advanced undergraduate or graduate students with a strong background in mathematics.
Focuses on the analysis of matrices and their applications in various fields, such as engineering, physics, and economics. It is suitable for advanced undergraduate or graduate students with a strong background in linear algebra.
Dieses deutschsprachige Lehrbuch bietet eine umfassende Einführung in die Lineare Algebra, die sowohl theoretische als auch praktische Aspekte abdeckt.
Provides a comprehensive and rigorous treatment of linear algebra, covering both theoretical and computational aspects of the subject. It is suitable for advanced undergraduate or graduate students.
Comprehensive guide to the basics of Python programming, covering data types, control flow, functions, object-oriented programming, and debugging.
Concise and comprehensive reference to the Python language, covering syntax, built-in functions and objects, and advanced topics.
Comprehensive guide to deep learning using Python, covering neural networks, convolutional neural networks, and recurrent neural networks.
Practical guide to using Python for basic automation tasks, providing a gentle introduction to Python's core concepts and its practical applications.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser