数式処理ソフト DERIVE(デライブ) de ドライブ

23.ベクトルと行列(マトリックス)

ベクトル

「数をカンマで区切って、角かっこ内に[1,2,3]などと並べたものをベクトルといっておるな」

「どんな使い道があるの?」

「数式処理ソフト DERIVE(デライブ)のベクトルは、物理や工学で使っているベクトルも含んではおるが、もっと単純に数を1行に並べたものじゃ。
物理的な意味やベクトル固有の演算は定義されていなくてもよい。たとえば、関数の定義でフィボナッチ数列を作る関数を定義したとするの」

「じゃ、こんなふうにするよ。関数の定義で、f(n)として、if(n<2,1,f(n-2)+f(n-1))」

「うん。そうじゃ。そして、n=0~20まで計算した結果を表示したいとする」

「数式入力行にf(0)からずっと、入れていちいち計算するのは、面倒だわ」

「こういうときは、以前出てきたかも知れんが、f(n)を入力後に「解析」メニューから「数列の作成」とする」

「そこで、変数nで0~20とするのね。
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946]となったわ」

「VECTOR(f(n), n, 0, 20, 1)と数式シートに現われるの。
これが数列を作る命令じゃ。これは、横ベクトル(行ベクトル)と言われる形式じゃ」

「個別の要素は、どのように取り出すのかしら?」

「これは、DERIVE独特じゃな。
たとえば、このベクトルをvと定義するときは、v:=[   ]または数式番号とおく。そして、k番目の要素は、v↓kと書くのだ。ただし、kは、1から勘定することになっている。f(20)、すなわち、一番最後の要素は、v↓21となることに注意するように」

「↓は、どこにあるの」

「DERIVEの下部の右側のパレットにある」

「ベクトルの演算は、どう書けばよいの?」

「ベクトル同士の加算と減算は、普通の数と同じ記法でよい。たとえば、[1,2,3]+[4,5,6]=[5,7,9]となる」

「乗算は?」

「これは、ともちゃんも知っているように普通の数(スカラーという)をかける場合、これは、各要素にそのスカラーをかけたものになる。
ベクトル同士の「内積」、「外積」は、知っておるじゃろう。内積は、結果は、スカラー量となって、定義は、Σv[i]×u[i]だな。上の例では、32になる」

「外積って3次元しか知らないわ?」

「3次元の外積の定義は、どうじゃ?」

「2つの3次元ベクトルを、aとbとするとき、a×b=[a2b3 - a3b2, a3b1 - a1b3, a1b2 - a2b1]だったかしら」

「それをまねすると、2次元ベクトル同士の外積は、[a2b1-b1a1]となって、スカラーとなる」

「変ねー。ベクトルにならないの?」

「ベクトル同士の外積で同じ次元のベクトルになるのは、3次元の場合に限るとの事じゃ」

「それってどうゆうことなの?」

「いやー。わしも正確には把握しておらんのじゃよ。
テンソル代数に関係してくるようじゃが。WEBに丁寧なページもあるので、いずれ、見てご覧。
DERIVEには、標準では、テンソル解析のユーティリティファイルは、添付されていないな。ただ、ヘルプを読むと、ユーザが作ったものがあるとのことだ。
このブログでテンソル解析を取り上げるのは、だいぶん、先になりそうだがの」

「ベクトルの除算は、どうなるのかしら?」

「おっと、それを忘れとったな。それは、定義されておらんようじゃな。ただ、DERIVEでa/bとしても、エラーにはならず、スカラー量として、aとbの内積をbの大きさ(ノルム)の2乗で割ったものとなるようじゃ」

行列(マトリックス)

「行列は、「入力」メニューから「行列」を選択して、次元を指定すると、作成することができる」

「数式入力行に直接入れるときはどうするのかしら?」

「a:=[[1,2],[3,4]]と入力する。
ここに書きにくいのじゃが、行列の要素で書けば、a11=1,a12=2,a21=3,a22=4という正方行列が作成できる。行列の加算、減算は、ベクトルと同様じゃ」

「乗算記号は、普通の数字の時と同じでいいの?」

「うん。特に差し支えはないの。内積と同一の記号を使っても行列としてのかけ算となる」

「一般の行列でも、たとえば、m行n列の行列とn行s列の行列のかけ算のように」

「これは、問題ないようじゃの。結果は、n行s列の行列となる」

「逆行列は?」

「aの逆行列は、a^-1でよい。もっとも正方行列しか計算されないがな。ついでに行列式は、DET(a)じゃ」

「たとえば、さっきのaだと、-2だわね」

「そうじゃ。ベクトルと行列の応用については、別項でということでここは、いったん、終わりとしよう。いや、ともちゃんもお疲れさんじゃった」