MATLAB,Python,Scilab,Julia比較 その18【行列演算①】

MATLAB,Python,Scilab,Julia比較 その18【行列演算①】 数値計算
MATLAB,Python,Scilab,Julia比較 その18【行列演算①】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/

はじめに

前回は、まででMATLAB、Python(Numpy)、Scilab、Juliaに於ける、
「基本的な使い方」を終えたところ。
しかし、ベクトルや行列が定義しただけで具体的な演算の話はしていない。

よって、今回から行列の基本的な演算についての話となる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

行列演算の種類

太郎くん
太郎くん

とりあえず、前回までで各ツール、言語におけるベクトル、行列の定義の仕方は一応分かったのだけど、具体的な演算とかってしてなくない?

フクさん
フクさん

うん。してない。

太郎くん
太郎くん

そこも含めて教えてもらえると・・・。

フクさん
フクさん

まずは行列演算の種類を列挙してみるか。
まぁすべて列挙できるわけじゃないので良く使いそうなものだけに絞ろう。

  • 加算、減算
  • 乗算
  • アダマール積
  • 除算
  • べき乗
  • 転置
太郎くん
太郎くん

基本的な四則演算っぽいのに加えて、べき乗、転置がある感じか。

太郎くん
太郎くん

ん?アダマール積ってなんだっけ?

フクさん
フクさん

そこは、改めて説明するよ。
まぁそれほど難しいものではないから、あまり気にしなくても良いと思う。

太郎くん
太郎くん

じゃー気にしない。

フクさん
フクさん

(素直なことは良いことだが、ちょっとは気にして欲しかった・・・。)

使用する行列

フクさん
フクさん

それぞれの演算をする上で、以下の行列が定義されている前提で話を進める予定だ。

\(
A=\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}
\)
\(
B=\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}
\)

太郎くん
太郎くん

とりあえず、2つの行列があればOKな感じ?

フクさん
フクさん

そうだね。
それぞれ1つずつの演算の説明をするだけなので、2つの行列があれば十分だ。

太郎くん
太郎くん

なるほど。

加算、減算

フクさん
フクさん

まずは加算、減算。
これはわかるんじゃない?

太郎くん
太郎くん

そうだね。
こんな感じで各要素単位で足し算、引き算をすればOKなはずだよね。

\(
A+B=\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}+
\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}=
\begin{bmatrix}
6 & 8 \\
10 & 12
\end{bmatrix}
\)

\(
A-B=\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}-
\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}=
\begin{bmatrix}
-4 & -4 \\
-4 & -4
\end{bmatrix}
\)

フクさん
フクさん

正解だ。
注意点としては、同一の行と列の形状同士じゃないと演算が成立しないという点だな。
いわゆる「次元を一致させる」必要がある。

太郎くん
太郎くん

まぁここはチョロいもんだね。(この後は知らんが)

まとめ

フクさん
フクさん

まとめだよ。

  • 代表的な行列演算を列挙。
    • 基本的な四則演算に加えて、アダマール積、べき乗、転置。
  • まずは加算、減算。
    • 各要素単位で加算、減算すればOK。
    • 当然、「次元を一致させる」必要がある。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました