3
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で線形代数のイメージをとらえる(転置、逆行列、行列の積)

Last updated at Posted at 2020-08-13

#前回の投稿について
前回初歩の初歩すぎたので次はある程度行列の種類を挙げていきたいと思います。方向性がずれると思いますが、途中で軌道修正をしていきます。頑張るぞー。
てか、この記事は前回と比べると知らないワードとか出てくるので、じぶんでお願いします。説明加えていないのは、ほかの記事を見てください。

#転置行列
具体例として2×2の行列

\begin{pmatrix}
1 & 1 \\
0 & 3 
\end{pmatrix}

が対角線で成分を折り返したような行列を転置行列といいます

\begin{pmatrix}
1 & 0 \\
1& 3 
\end{pmatrix}

こんな感じですね。イメージは。今

import numpy as np
A = np.array([1, 1],
             [0,3])

C = A.T
print(C)

こんな感じですかね。
##転置行列の特徴
任意のベクトルA、B、に対して

(A+B)^T=A^T+B^T\\
(AB)^T=B^TA^T\\(A^T)^T=A

となっております。実際に計算してみてください。まだ公式はありますが。。
#行列の積
行列の積は説明してなかったですね。任意の2つの行列A,Bに対して

\vec{A}=\begin{pmatrix}
a& b \\
c& d 
\end{pmatrix}

\vec{B}=\begin{pmatrix}
e& f \\
g& h 
\end{pmatrix}

があったとすると行列の積は


\vec{AB}=\begin{pmatrix}
a& b \\
c& d 
\end{pmatrix}\begin{pmatrix}
e& f \\
g& h 
\end{pmatrix}=\begin{pmatrix}
ae+bg& af+bh \\
ce+dg& cf+hd 
\end{pmatrix}

となります。こんな感じです。縦×横を四回やる感じです。言葉で言ってもわかりずらいと思われるので、このサイトを見てください。
https://mathwords.net/gyouretsuseki


import numpy as np
 
#行列Aを定義
A=np.matrix([
    [1,1],
    [0,3]
        
])
 
#行列Bを定義
B=np.matrix([ 
    [1,0],
    [1,3]
])
 
#行列の積(AとBの積)
C=np.dot(A,B)
 
print("行列の積C")
print(C)

#逆行列
逆行列の求め方はサラスか余因子展開か掃き出し法があったような。今回は2×2の余因子展開を紹介していきます。

\vec{A}=\begin{pmatrix}
1 & 1 \\
0 & 3 
\end{pmatrix}

の行列があったとする。
行列式を求める方法はサラスの公式を用いる

\begin{vmatrix}
1 & 1 \\
0 & 3
\end{vmatrix}=(1×3)-(1×0)=3=det(A)

となる。この行列式から、余因子展開後Aを転置させて、その行列式の値を割ると逆行列の値になる。実際に計算してみると


A^{-1}=\frac{1}{det(A)}A^{\sim}


A^{\sim}=\begin{pmatrix}
3 & 1 \\
0 &-1 
\end{pmatrix}\\

A^{-1}=\frac{1}{3}\begin{pmatrix}
3 & 1 \\
0 &-1 
\end{pmatrix}


#逆行列のコード

import numpy as np
 
#行列Aを定義
A=np.matrix([
    [1,1],
    [0,3]
        
])
 
#行列Bを定義
B=np.matrix([ 
    [1,0],
    [1,3]
])
 
#行列の積(AとBの積)
C=np.dot(A,B)
D=np.linalg.inv(A)
print("行列の積C")
print(C)
print(D)

となる。
余因子展開の説明はまた後にします。中途半端になってしまった。次回は線形独立、線形従属、余因子、掃き出し法あたりを大雑把に説明していきたいと思います。

#感想
線形代数は極めると面白い科目になりそうだなあ。実際にやり方は知っているけど証明は全く理解していない状態というか、計算問題で単位取れてきたようなもんだからなあ。実際には大学1年のころには何も身についていなかったのが悲しい。記事書いていくうちにこんなやり方だったんだ!って思い出すのが新鮮。余因子展開のやり方完全に忘れてた。これじゃあまずいのでもっと続けていきます。

話しは変えるけどなぜ偏微分の記事がこんなに人気なのだろう。
あの記事作るのに5倍ぐらい時間かけているブロック崩しの記事にも見てほしいなあ。
#追記
全ての記事が中途半端すぎて、何やっているかわからないかもしれません。ここで、今までの記事を修正してからまた新しい記事を投稿してきたいと思います。例えば余因子展開の説明、行列とは何か、もっと根本的な説明を加えておらず、自分の知識不足がかなり露呈していると思います。修正しても間違えると思うので、冷たい目でご指摘ください。

3
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
3
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?