プログラムな日常>ウェブプログラム作品集>
行列の計算
(matrix calculations)

【使い方】
  1. 上下にある水色の帯の機能は同じで、連動しています。ボタン「incr」を押すと、一個の項目(行列の記憶領域)が出てきます。これは増やせます。
  2. 項目の中身は、項目番号、3つのコンボボックス(演算種類、引数1、引数2)、実行ボタン、形式サイン、行列本体 から成っています。 行列本体のテキストエリアはサイズ調整できますので、お試し下さい。
  3. まずは「manual」にて、実際に行列を入れてみて下さい。同じ行の数値は、コンマは使用せず、1個以上の空白で仕切って下さい。行の区切りは改行によります。 テキストエリアなので、コピー、ペーストで持ち運ぶこともできます。
  4. 「copy」、「determinant」、「transpose」、「inverse」の各演算種類では、引数とする項目番号1つを指定してください。
  5. 「add」、「subtract」、「matmulti」、「convolute」の各演算種類では、引数とする項目番号2つを指定してください。
  6. 方式と引数とを指定し、「exec」を押すことで計算がなされます。
  7. どの演算種類でも、引数は最低でも長方形、すなわち、各行の数値の個数が揃っていることが必要です。 これが満たされたときに、形式サインに「rect」が出ます。満たされないときは「irrect」です。
  8. 演算種類の意味ですが、「copy」はそのもの、「determinant」は行列式、「transpose」は転置行列、「inverse」は逆行列です。 「determinant」と「inverse」では、引数は正方行列であることを要します。 「inverse」の引数が正則でない場合(singular の場合)、アラートが出ます。
  9. 「add」は和、「subtract」は差で、2つの引数の縦の数、横の数は、それぞれ同じであることを要します。
  10. 「matmulti」は行列の積です。第一引数の列の数と、第二引数の行の数は同じであることを要します。
  11. 「convolute」も一種の積で、あまり見慣れないかも知れませんが、例えば とを「convolute」すると、 になり、 2変数多項式の係数を行列にして積を求めた扱いとも言えます。
  12. 「convolute」の最も頻繁な使用方法は、行列の定数倍になると思います。 たとえば と、 とから、 が得られます。 ここで、定数は1×1の行列として扱っています。 なお、ベクトルは1行のみ、あるいは1列のみの行列として扱っています。
  13. 「convolute」のもう一つの使用方法として、行ベクトルと列ベクトルとから行列を生成するディアジク(dyadic)があります。 ただしこれは、(列ベクトルを第一引数とすれば)「matmulti」でもできることです。
  14. スカラーの四則演算も可能です。加算、減算は「add」と「subtract」ででき、乗算は「matmulti」でも「convolute」でも可。 逆数が「inverse」で得られるので、これを掛けることで割算もできます。
  15. 「decimals」のコンボボックスは、小数点以下の表示桁数を指定します。「manual」以外においては、これは表示のみに適用され、内部データは高い桁数を保ちます。 「manual」以外で取ってきたものも、「manual」に変え、さらに編集してしまうと桁落ちすることがありますので注意して下さい。