E資格学習:応用数学① 線形代数 基礎まとめ
E資格取得に向けた学習として要点をまとめます。今回のテーマは「応用数学」ということで「線形代数」「確率・統計」「情報理論」の3分野について、要点とキーワード、pythonでの実装コードをまとめていきたいと思います。
線形代数
スカラー・ベクトル・行列・テンソル
スカラー:いわゆる普通の数。0階のテンソルともいう。
(例)
a= 2
ベクトル:順番に並んだ数値。大きさと向きを合わせ持つ。2値以上の数値で表現されるので、空間的な「位置」=「向き」が表現できる。1階のテンソルともいう。横向きに書くと横ベクトル、縦方向に書くと縦ベクトルという。
(例)横ベクトル
,
import numpy as np a= np.array([1, 2, 3]) b =np.arange(1, 81, 1) #arange関数を使って始点、終点、交差を指定する書き方
行列:ベクトルを表の形式にしたもの。連立方程式を解く過程で生まれた。行方向(横)、列方向(縦)に数値が並ぶ。2階のテンソルともいう。n×m行列の場合、行数n、列数mの行列を指す。
(例)2×3行列
import numpy as np a= np.array([[1, 2, 3],[4, 5, 6]])
テンソル:行列はタテ・ヨコの2次元だが、さらに3次元以上に並べた数列。タテ・ヨコ方向だけでなく奥行き方向等(ただし、4次元以上になると空間的な表現難しい)。3階のテンソル、4階のテンソルのように表現する。
import numpy as np a = np.array([[[1, 2],[3,4]],[[5,6],[7,8]], [[9,10],[11,12]]]) #3次元 b = np.arange(1,25,1).reshape(2,3,2,2) #24個の1次元配列を4次元テンソル(2行2列×3次元のテンソルが2組)に変換する方法
様々な行列の種類
正方行列:行数n=列数mの行列
(例)
単位行列:正方行列において、対角線上の成分が全て1で、その他は全て0である行列。単位行列 とすると、を満たす。(単位行列は、 だけでなく と表記されることもある)
(例)
逆行列:行列Aに対して、積を取ると単位行列になるような行列。行列の世界での逆数のような存在。右上に添字-1をつけて表す。
(例)
転置行列:行列Aに対して、行と列を入れ替えた行列のこと。右上に添字Tをつけて表す。
(例)
対角行列:非対角成分が全て0の行列。対角行列同士の積は対角行列になる。対角行列の行列式は、対角成分をかけた値になる。
(例)
対称行列:主対角線を軸に線対称な行列。行列Aとその転置行列ATが一致する。
(例)
直行行列:行列Aの、転置行列と逆行列が一致するような行列
(例)
逆行列の求め方
<2×2の正方行列の場合>(メモ)
<掃き出し法>(メモ)
・元の行列の右側に単位行列を付け加え、行基本変形を繰り返し、左側に単位行列を作るように操作していく方法。
<逆行列が存在しない時とは?>
行列式 det(A)
正方行列についてのみ1つの数値が対応する。いわゆる正方行列の「大きさ」のようなもの。
2×2の正方行列の場合は、以下となる。
3×3の正方行列の場合
固有値・固有ベクトル
ある行列Aに対して、となるような特別なベクトルと係数の値がある時、このベクトルを「固有ベクトル」、係数λを「固有値」という。直感的なイメージとしては、行列Aがベクトルを同方向に倍するというイメージ(行列という変換器によって、ベクトルxを向きを変えないまま変換する感じ。)
・固有値は、1つではなく、複数存在する場合もある。
・固有ベクトルは、固有値λに対して、となるようなベクトルを指す。固有値ごとに固有ベクトルは異なる。
<実際に解いてみる>
手順
① det(A-λI)=0を計算し固有値λを求める
→これを解いて、λ=3, 2, 1となる。
② 以下の式にλを代入し、ベクトルxを求める
λ=3のとき、
λ=2のとき、
λ=1のとき、
固有値分解
固有値を対角線上に並べた行列Λと、固有ベクトルを並べた行列vを考える。
このとき
このように、正方行列を3つの行列の積に変換することを固有値分解という。
<実際に解いてみる>
手順
①固有値λを求める。行列式detA=0を解いて、を解き、固有値λ=2,6。
②固有ベクトルxを求める。λ=2のとき、の定数倍、λ=6のとき、の定数倍となる
③ΛとVを求める。、、
④なので、