理論メモ
$\det(A) = ad - bc$(面積倍率)
固有値:$\lambda = \dfrac{(a+d) \pm \sqrt{(a-d)^2+4bc}}{2}$
$A\mathbf{v}= \lambda\mathbf{v}$ — 固有方程式
青:変換前のグリッド/赤:変換後のグリッド/黄矢印:固有ベクトル
2×2行列の各成分をスライダーで操作して、2次元グリッドが回転・拡大・せん断される様子をリアルタイムアニメーションで確認。固有ベクトルが変換で向きを変えない理由が直感的にわかる。
$\det(A) = ad - bc$(面積倍率)
固有値:$\lambda = \dfrac{(a+d) \pm \sqrt{(a-d)^2+4bc}}{2}$
$A\mathbf{v}= \lambda\mathbf{v}$ — 固有方程式
青:変換前のグリッド/赤:変換後のグリッド/黄矢印:固有ベクトル
2次元ベクトル $\mathbf{x}= \begin{bmatrix}x \\ y \end{bmatrix}$ に2×2行列 $A$ を作用させることで、新しいベクトル $\mathbf{x'}$ を得る線形変換を表します。
$$ \mathbf{x'}= A\mathbf{x}= \begin{bmatrix}a & b \\ c & d \end{bmatrix}\begin{bmatrix}x \\ y \end{bmatrix}= \begin{bmatrix}ax + by \\ cx + dy \end{bmatrix}$$ここで、$a, b, c, d$ は行列の成分(スライダーで操作)です。この単純な演算が、平面上の全ての点を規則的に移動させ、グリッドの変形アニメーションとして可視化されます。
変換の特徴を決める重要な指標が「行列式」と「固有値・固有ベクトル」です。
$$ \det(A) = ad - bc, \quad A\mathbf{v}= \lambda\mathbf{v}$$$\det(A)$ は面積の拡大率(負なら向き反転)を表します。$\lambda$ (固有値) と $\mathbf{v}$ (固有ベクトル) は、変換によって方向が変わらず、スカラー倍 $\lambda$ だけ伸縮する特別な軸とその倍率を表します。シミュレーター上では、固有ベクトルの方向が赤/青の矢印、固有値がその長さの変化として観察できます。
コンピュータグラフィックスと画像処理:画像の回転、拡大縮小、せん断変形は全て行列変換で記述されます。このツールで遊ぶことが、画像をプログラムで変形する原理の直感的理解に直結します。
構造力学とCAE(有限要素法):材料の変形や応力は局所的に線形変換で近似できます。また、構造物の振動解析(固有振動数と振動モード)は、大規模な行列の固有値問題として解かれ、設計の基礎データとなります。
主成分分析(PCA):多次元データの分析で、データの広がりが最大となる方向(主成分)を見つける技術です。これはデータの共分散行列の固有ベクトルを求める問題であり、ここで学ぶ概念の直接的な応用です。
制御理論:ロボットや機械の動きを記述し、制御する状態方程式は、線形代数の言葉で書かれます。システムの安定性は、関連する行列の固有値の位置で判断されます。
このビジュアライザーで遊び始めるとき、いくつかハマりやすいポイントがあるから気をつけてね。まず、「行列の成分をいじると、変形はいつも原点を中心に起こる」ってことを頭に入れておこう。例えば、回転スライダーを動かすとグリッド全体が原点を中心に回るよね? 実務で「ある特定の点を中心に回転させたい」と思ったら、この基本の変換だけでは足りなくて、平行移動(アフィン変換)の知識が必要になるんだ。次に、固有ベクトルが常に直交すると思い込まないこと。確かに回転行列や対称行列の固有ベクトルは直交するけど、例えば a=1, b=1, c=0, d=2 のような一般的な行列では、赤と青の矢印(固有ベクトル)は斜めに交わるだけだ。これが「主軸」が直交しない変形の実例だよ。最後に、行列式(det)が0に近づくときの挙動に注意。ad-bcの値が0になると、面積倍率が0、つまり2次元の面が1次元の線や点にぺちゃんこにつぶれる(「退化」する)。例えば a=1, b=2, c=2, d=4 にすると行列式は0になるけど、この時、全ての点が直線 y=2x 上に押し出されるのが確認できる。こういう状態は連立方程式が解けなかったり、制御が不能になったりすることを意味していて、実務では絶対に避けたい状況なんだ。
この2×2のシンプルな変換は、実はもっと大きな工学的問題の「核」になっているんだ。例えばロボットアームの制御。関節の角度の微小変化が、先端の工具の位置と姿勢の変化にどう繋がるかは「ヤコビ行列」というもので表される。まさにこのツールで見ている、入力(関節角変化)と出力(位置変化)の線形関係そのものだよ。もう一つは流体力学におけるひずみ速度テンソル。流体の小さな領域を見ると、流れによる変形は「回転」「伸縮」「せん断」に分解できる。このツールでcとbを同じ値に設定してせん断変形を作ると、まさに流体の「ずり流れ」を可視化していることになるんだ。最後に材料の複合化(Composite Materials)。繊維強化プラスチックなど異方性材料では、力のかかる方向によって剛性が全然違う。その方向依存性を理解するには、材料の主軸(固有ベクトル的方向)とそこでの剛性(固有値に相当)を把握することが第一歩。このビジュアライザーは、そんな「方向によって性質が変わる世界」を理解するための最高の入り口になるんだ。
このツールに慣れたら、次は視野を広げていくのがオススメだ。まずステップ1:次元を上げてみる。2次元で直感を養ったら、3×3行列による3次元変換を考えよう。回転軸が増え、せん断のパターンも複雑になるが、固有ベクトルは「変形で向きが変わらない軸」、行列式は「体積の倍率」という核心は全く同じだ。CAEで使う有限要素法の要素剛性マトリックスも、基本的にはこの拡張版だ。ステップ2:連立方程式との関係を確認。行列 $A$ にベクトル $\mathbf{x}$ をかける変換 $A\mathbf{x}$ と、連立方程式 $A\mathbf{x}=\mathbf{b}$ を解くことは表裏一体だ。ビジュアライザーで行列式が0の時に変形が潰れるのを見たよね?それは、方程式 $A\mathbf{x}=\mathbf{b}$ の解が一意に決まらなくなる状況に対応しているんだ。ステップ3:数値計算の世界へ。実務のCAEで扱う行列は数万〜数百万次元だ。そんな大きな行列の固有値を全部計算するのは不可能だから、最大・最小のいくつかを求める「反復法」が使われる。2次元で「固有値・固有ベクトルとは何か」を体感した君は、それらの手法が「何を求めようとしているのか」を他より深く理解できるはずだよ。