MATLAB,Python,Scilab,Julia比較 その31【行列演算⑭】

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

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

はじめに

前回までで線形代数の基礎っぽいところがおわったところ。
実際の線形代数の範囲はもっと広いが、行列演算というターゲットとしては一端終了。

今回から各ツール、各言語に於ける行列演算の話に突入

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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つとする。

\(A=
\begin{bmatrix}
1 & 2 \\
3 & 4
\end{bmatrix}
\)

\(B=
\begin{bmatrix}
5 & 6 \\
7 & 8
\end{bmatrix}
\)

MATLABの場合

フクさん
フクさん

まずは手馴れたMATLABで一気に確認しよう。

%足し算
>> A+B
ans =
     6     8
    10    12

%引き算
>> A-B
ans =
    -4    -4
    -4    -4

%掛け算(内積)
>> A*B
ans =
    19    22
    43    50

%アダマール積
>> A.*B
ans =
     5    12
    21    32

%左除算
%‘¥’はバックスラッシュと同義
>> A\B
ans =
    -3    -4
     4     5
     
>> inv(A)*B
ans =
   -3.0000   -4.0000
    4.0000    5.0000

%右除算
>> A/B
ans =
    3.0000   -2.0000
    2.0000   -1.0000
    
>> A*inv(B)
ans =
    3.0000   -2.0000
    2.0000   -1.0000

%べき乗
>> A^2
ans =
     7    10
    15    22

%転置
>> A'
ans =
     1     3
     2     4

%一次元目(縦方向)に対して反転
>> flipdim(A,1)
 ans  = 
     3     4
     1     2

>> A(end:-1:1,:)
ans =
     3     4
     1     2


%ニ次元目(横方向)に対して反転
>> flipdim(A,2)
 ans  =
     2     1
     4     3

>> A(:,end:-1:1)
ans =
     2     1
     4     3

パッと見の感想

太郎くん
太郎くん

反転は、関数でやる場合と、start:step:endの形式(区間演算子)でやる場合があるんだね。

フクさん
フクさん

区間演算子は結構便利だからね。
使う人も多いから、こういう書き方は把握しておいた方が良いだろう。

まとめ

フクさん
フクさん

まとめだよ。

  • 具体的に各ツール、各言語での行列演算についての話に突入。
  • 四則演算に加えて、アダマール積、べき乗、転置、反転。
  • まずは手馴れたMATLABから。

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

コメント

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