電卓とgosh比較(行列計算)



映画『超高速!参勤交代』(2014)
「貧乏はまことに辛いのう!」というセリフをにこやかにいう佐々木蔵之介が良かったです。貧乏でも誇らしげです。田舎にも誇りを持っています。
この殿様が貧乏なのは領民を思ってのこと。社員が苦しいのに社長だけ裕福な暮らしをするわけにはいきませんからね。

準備するもの
  • 電卓(fx-JP900)
  • Linux PC(確認環境はDebian 8.3 Jessie)
  • 端末ウィンドウ(ターミナルソフト)
  • gosh(gauche)

大名行列ということで、今回は行列繋がり行列計算です(大名行列(line?)と数学の行列(matrix)とは意味が異なります)。
電卓での行列計算と、goshでの行列計算を比較します。

まずはこの計算です。

\[
A = \left(
\begin{array}{cc}
1 & 2 \\
3 & 4
\end{array}
\right)
\]
\[
B = \left(
\begin{array}{cc}
5 & 6 \\
7 & 8
\end{array}
\right)
\]

$$A + B$$

では電卓から。行列計算をメニューから選択します。

MatAを選択して、

行を2、

列を2と入力します。

値を入力したい場所にカーソルを動かして数字を入れます。

「=」ボタンで入力確定。

カーソルは自動で次へ移動します。

MatAは入力完了しました。MatBについてもMatAと同じように入力します。

「OPT」ボタンを押して、「行列の計算」を選択して、

MatA、MatBを選択して、

式を作ります。

「=」ボタンを押すと答えの行列が表示されます。

では、gosh(Gauche)での行列計算です。

takk@deb83:~$ gosh
gosh> (use gauche.array)
gosh> (define A #,(<array> (0 2 0 2) 1 2 3 4))
A
gosh> (define B #,(<array> (0 2 0 2) 5 6 7 8))
B
gosh> (array-add-elements A B)
#,(<array> (0 2 0 2) 6 8 10 12)
gosh> 

次は、掛け算です。
\[
A = \left(
\begin{array}{cc}
2 & 3
\end{array}
\right)
\]
\[
B = \left(
\begin{array}{c}
5 \\
7
\end{array}
\right)
\]

$$ A \bullet B $$

電卓。さきほどの同じようにMatA、MatBを作った後、計算式を作ります。

結果です。

goshです。

takk@deb83:~$ gosh
gosh> (use gauche.array)
gosh> (define A #,(<array> (0 1 0 2) 2 3))
A
gosh> (define B #,(<array> (0 2 0 1) 5 7))
B
gosh> (array-mul A B)
#,(<array> (0 1 0 1) 21)
gosh> 

コメント

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