行列は単なる「数字の表」ではありません。 m×n 行列 A には、n 次元空間から m 次元空間への写像という意味があります。 この写像を観察するアニメーションプログラム(2 次元空間から 2 次元空間の場合)の使い方をまとめます。
このアニメーションプログラムは、 書籍 『プログラミングのための線形代数』のためのコンテンツです。詳しくは書籍を参照してください。
ruby mat_anim.rb | gnuplot
ruby mat_anim.rb -frame=20 | gnuplotなどとして調整できます。数字が大きいほど滑らかで遅い描画になります。
※本ファイルを利用したことによる直接あるいは間接的な損害に関して、
著作者およびオーム社はいっさいの責任を負いかねます。利用は利用者個人の責任において行ってください。
また、ソフトウェアの動作・実行環境、操作についての質問には一切お答えすることはできません。 ※このページの Flash アニメーションは、 Ming/Ruby を用いて作成したイメージです。 実際のアニメーションは、 mat_anim.rb を用いて確認してください。 |
指定された 2×2 行列 A に対して、写像 y = A x を図示します。 元の各点 x がこの写像でどこに移るかをアニメーション。
観察ポイント:
A = | 1.5 | 0 |
0 | 0.5 |
コマンド:
ruby mat_anim.rb -s=0 | gnuplot
観察ポイント:
B = | 0 | 0 |
0 | 0.5 |
コマンド:
ruby mat_anim.rb -s=1 | gnuplot
観察ポイント:
C = | 1.5 | 0 |
0 | -0.5 |
コマンド:
ruby mat_anim.rb -s=2 | gnuplot
観察ポイント:
D = | 1 | -0.3 |
-0.7 | 0.6 |
コマンド:
ruby mat_anim.rb -s=3 | gnuplot
観察ポイント:
D = | 1 | -0.3 |
-0.7 | 0.6 |
コマンド:
ruby mat_anim.rb -s=4 | gnuplot
観察ポイント:
D = | 1 | -0.3 |
-0.7 | 0.6 |
コマンド:
ruby mat_anim.rb -s=5 | gnuplot
観察ポイント:
E = | 0.8 | -0.6 |
0.4 | -0.3 |
コマンド:
ruby mat_anim.rb -s=6 | gnuplot
観察ポイント:
E = | 0.8 | -0.6 |
0.4 | -0.3 |
コマンド:
ruby mat_anim.rb -s=7 | gnuplot
観察ポイント:
E = | 0.8 | -0.6 |
0.4 | -0.3 |
コマンド:
ruby mat_anim.rb -s=8 | gnuplot
観察ポイント:
F = | -0.3 | 1 |
0.6 | -0.7 |
コマンド:
ruby mat_anim.rb -s=9 | gnuplot
観察ポイント:
# -s=3 と同じ ruby mat_anim.rb -a=1,-0.3,-0.7,0.6 | gnuplot
# -s=4 と同じ ruby mat_anim.rb -a=1,-0.3,-0.7,0.6 -arrow=0.3,0.7,0.5,-0.5 | gnuplot
# -s=5 と同じ ruby mat_anim.rb -a=1,-0.3,-0.7,0.6 -xunit=0.3,0.7 -yunit=0.5,-0.5 -figure= | gnuplot
gnuplot のコマンドを ruby で生成して標準出力に吐き、 パイプ経由で送りつけてるだけ。 以下のようにすれば動作を垣間見ることができます。
ruby mat_anim.rb -batch