Getting Started | ![]() ![]() |
線形代数
非公式に、行列 や配列 と言う用語は、しばしば一緒に使われます。より正確には、行列 は、線形変換 を表す2次元の数値配列です。 行列で定義される数学演算は、線形代数 で取り扱う内容です。
A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
は、MATLABの行列演算の感覚を与えるいくつかの例題を示すために用意したものです。既に、行列転置
A
'
については示しました。この行列にその転置行列を加えて対称
行列を作成します。
A + A' ans = 32 8 11 17 8 20 17 23 11 17 14 26 17 23 26 2
乗算記号 *
は、行と列の間の内積を含む行列
乗算を定義します。転置行列との乗算によっても対称行列が作成されます。
A'*A ans = 378 212 206 360 212 370 368 206 206 368 370 212 360 206 212 378
この特別な行列の行列式はゼロになり、これは非正則 であることを示します。
d = det(A) d = 0
R = rref(A) R = 1 0 0 1 0 1 0 -3 0 0 1 3 0 0 0 0
行列は非正則なので、逆行列を計算することはできません。つぎのステートメントで逆行列を計算しようとすると、
X = inv(A)
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 1.175530e-017.
丸め誤差が、行列の逆行列を求めるアルゴリズムの中で、厳密な意味の特異性を検出することを不可能にしています。しかし、rcond
すなわち、reciprocal condition estimate
の略、からの出力値は、浮動小数点相対精度の eps
程度の大きさで、そのため、計算される逆行列は、あまり有効なものでないことを示します。
e = eig(A) e = 34.0000 8.0000 0.0000 -8.0000
固有値の中の一つがゼロになっていて、これが非正則の結果になります。最大固有値は34で、魔方陣の各行、列の和と同じです。これは、固有ベクトルがすべて1のベクトルになるものが存在しているからです。
v = ones(4,1) v = 1 1 1 1 A*v ans = 34 34 34 34
P = A/34
は、各行と列の和がすべて1になるdoubly stochastic 行列になります。
P = 0.4706 0.0882 0.0588 0.3824 0.1471 0.2941 0.3235 0.2353 0.2647 0.1765 0.2059 0.3529 0.1176 0.4412 0.4118 0.0294
このような行列は、Markov過程 の中で遷移的な確率を表しています。行列の繰り返しの乗算は、過程の繰り返しステップを表します。この例題で、5次のべき乗を計算します。
P^5
0.2507 0.2495 0.2494 0.2504 0.2497 0.2501 0.2502 0.2500 0.2500 0.2498 0.2499 0.2503 0.2496 0.2506 0.2505 0.2493
この結果は、k が無限大に近付くに連れ、k 次のべき乗Pk のすべての要素は1/4に近づくことを示しています。
poly(A)
1 -34 -64 2176 0
となることを示しています。行列は非正則なので、定数項はゼロです。そして、3次の項の係数は-34で、これは魔方陣のためです。
![]() |
行列と配列について | 配列 | ![]() |