1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

行列計算と線形方程式 : 線形代数をPythonで<3>

Last updated at Posted at 2020-05-22

#線形代数
理系大学で絶対に習う線形代数をわかりやすく、かつ論理的にまとめる。ちなみにそれをPythonで実装。たまに、Juliaで実装するかも。。。
・Pythonで動かして学ぶ!あたらしい数学の教科書 -機械学習・深層学習に必要な基礎知識-
・世界基準MIT教科書 ストラング線形代数イントロダクション
を基に線形代数を理解し、pythonで実装。

#環境
・JupyterNotebook
・言語:Python3, Julia1.4.0

#行列
行列について、少し深く触れてみる。基本的に、

A x = b

という、形にするのがスタンダード

###行列について、
行列には、が存在する。
・横に並ぶのが、行
・盾に並ぶのが、列
いままで、
u = (1, 2, 3)のようにあらわしてきたのは、列ベクトルのことである。
行ベクトル : u = [1, 2, 3]
列ベクトル : u = (1, 2, 3)

とする。
本来であれば、以下のように表記しなければならない。

u =
\begin{bmatrix}
1 \\
2 \\
3
\end{bmatrix}

ただし、この記事はマークダウン方式により、めんどくさいので今まで通りに記述する。

###線形方程式とベクトル
ex)連立方程式について

\begin{matrix}
 x - 2y =  1 \\
3x + 2y = 11
\end{matrix}

を列ベクトルで考える。(= 線形的思考)
線形方程式のメリットは負数の指揮を一つの式で表すことができること。
以下のように変形できる、

x
\begin{bmatrix}
1 \\
3
\end{bmatrix}
+
y
\begin{bmatrix}
-2 \\
2
\end{bmatrix}
=
\begin{bmatrix}
1 \\
11
\end{bmatrix}

この時、

u =
\begin{bmatrix}
1 \\
3
\end{bmatrix}
,
v = 
\begin{bmatrix}
-2 \\
2
\end{bmatrix}
,
b = 
\begin{bmatrix}
1 \\
11
\end{bmatrix}

とおける。これは、u, vについてまとめてAとするとき、以下のようにAx=bの形で書くことができる。

Ax =
\begin{bmatrix}
1 & -2\\
3 & 2
\end{bmatrix}
\begin{bmatrix}
x\\
y
\end{bmatrix}
=
\begin{bmatrix}
1 \\
11
\end{bmatrix}
= b

となる。この線形方程式で、あてはまるx, yを考える必要がある。
ちなみ解析学的に考えると、直線同士の交点を示す。

#行列の計算(プログラム)

a =
\begin{bmatrix}
0 & 1 & 2 \\
1 & 2 & 3
\end{bmatrix}
,
b =
\begin{bmatrix}
2 & 1 \\
2 & 1\\
2 & 1
\end{bmatrix}

とする。行列の計算を行う。

###Pythonのコード

import numpy as np

a =  ([[0, 1 ,2],
       [1, 2, 3]])
b = ([[2, 1],
      [2, 1],
      [2, 1]])
print(np.dot(a, b))

#=>[[ 6  3]
#   [12  6]]

#Juliaのコード

using LinearAlgebra
a = [0 1 2; 1 2 3]
b = [2 1; 2 1; 2 1]
a*b

#=>2×2 Array{Int64,2}:
#   6  3
#  12  6

前回のコメントで、LinearAlgebraモジュールに関することがあったので今回はそれを使って簡単にしてみた。中身の仕組みを理化したい方はモジュールなしでぜひやってほしい。計算合わせにはモジュール使用いいかもね。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?