MATLAB,Python,Scilab,Julia比較 その30【行列演算⑬】

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

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

はじめに

前回は、連立方程式を行列演算にしたものを再掲しつつ、
それぞれの意味合いを説明。
端的に言うと、[出力ベクトル]=[変換行列][入力ベクトル]となる。
これを入力ベクトル、出力ベクトルを2セットにすると2×2の行列となる。
数式上はすべて2×2の行列ではあるが、位置によって、入力、変換、出力と意味が異なる。

今回はこの発想を元にさらに入力、出力を拡張する話となる。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

【再掲】前回の行列演算の式

フクさん
フクさん

前回の[出力ベクトル2セット]=[変換行列][入力ベクトル2セット]を再掲しよう。

\(
\begin{bmatrix}
x_1^\prime & x_2^\prime\\
y_1^\prime & y_2^\prime
\end{bmatrix}=
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\begin{bmatrix}
x_1 & x_2 \\
y_1 & y_2
\end{bmatrix}
\)

太郎くん
太郎くん

全部2×2の行列だけど、数式上の位置で意味がかわるんだよねー。

さらに拡張すると・・・。

フクさん
フクさん

これをさらに拡張できる。

太郎くん
太郎くん

拡張?

フクさん
フクさん

上記の式は
入力ベクトル2セットに対して、出力ベクトル2セットを得ていることを示している。
これを2セットではなく、nセットにするとどうなるか

太郎くん
太郎くん

そうか!
列ベクトル2セットで2×2行列になってるだけだから、
nセットだと、nx2行列が入力ベクトルnセット、出力ベクトルnセットってことになるのか?!

フクさん
フクさん

じゃ、試しにどうなるか書いてみて。

太郎くん
太郎くん

こんな感じかな?

\(
\begin{bmatrix}
x_1^\prime & x_2^\prime & \dots & x_n^\prime\\
y_1^\prime & y_2^\prime & \dots & y_n^\prime
\end{bmatrix}=
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\begin{bmatrix}
x_1 & x_2 & \dots & x_n \\
y_1 & y_2 & \dots & y_n
\end{bmatrix}
\)

フクさん
フクさん

うむ。OKだろう。

太郎くん
太郎くん

なんか行列が面白くなってきたしてきたぞ!

フクさん
フクさん

ちなみに、この書き方の利点って分かる?

太郎くん
太郎くん

大量の入力を同じルールで一括変換って感じかな?

フクさん
フクさん

正解だ。
これが行列演算の醍醐味でもあるな。
とくにPC等で演算させる場合、大量のデータを扱うことが多いから
行列のこの特性を知ってるのと知らないのではロジックの効率が大幅に異なることが多い。

太郎くん
太郎くん

そうだねー。
大量演算と言うと、すぐfor文でぶん回すって考えるけど、
行列で演算できそうなら行列の方が良さそうだよね。

行列の知識はコミュニケーションスキル?

フクさん
フクさん

まぁCPUで演算時には結局ループ処理的に回すことになるかもしれないが、
数式ベースでは行列表現の方が一発で話が通ることが多いな。
つまり、ここらへんはテクニカルスキルというよりコミュニケーションスキルって場合もあるな。

太郎くん
太郎くん

行列の知識がまさかのコミュニケーションスキルとは・・・。

フクさん
フクさん

ま、そういった現場もあるって程度の話だな。
当然、行列にあまり慣れ親しんでいない現場や業界もあるだろうし。

太郎くん
太郎くん

でも、上司や先輩が謎の議論をしていると思っていたものも
今回の知識でちょっと意味がわかってくるような気がする。

フクさん
フクさん

まずはここまでを線形代数の基礎ということで一端区切りを入れよう。

太郎くん
太郎くん

(や、やっと終わったの・・・か?まぁ得るものは多かった気もするけど)

まとめ

フクさん
フクさん

まとめだよ。

  • 前回の行列演算の式を再掲。
  • 前回は入力、出力の列ベクトルを2セットだったが、これをnセットにするとどうなるか。
    • 入力、出力が2×2行列からnx2行列へ。
      • これの利点は入力から出力の変換が一括で表現できること。
        • これを知ってるだけでコミュニケーションスキルが上がる?

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

コメント

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