1 三重対角行列の定義
三重対角行列(tridiagonal matrix)とは、正方行列のうち、主対角線とその両隣(上の対角線、下の対角線)に限って非零要素が許され、それ以外の成分がすべて零であるものを指す。行列全体の情報が三つの帯で尽くされるため、理論的にも計算的にも扱いやすい構造を持つ。
1.1 帯行列としての表現
三重対角行列は、帯行列(band matrix)の一種として理解できる。帯行列とは、対角線から一定の幅の範囲内にのみ非零要素が現れる行列であり、三重対角はその最も狭い有用なケースにあたる。
1.1.1 非零要素の配置
n次三重対角行列 A = (a_{ij}) は、次の条件を満たす。
- i = j のときのみ a_{ij} が非零になり得る(主対角)
- i = j + 1 のときのみ a_{ij} が非零になり得る(下の対角)
- i = j − 1 のときのみ a_{ij} が非零になり得る(上の対角)
| - それ以外、 | i − j | ≥ 2 では a_{ij} = 0 |
|---|
この条件により、各行(および各列)には最大で3個の非零成分しか現れない。
1.1.2 表記法とパラメータ
一般に、三重対角行列は次の形で表されることが多い。 A =
\[ \begin{pmatrix} b_1 & c_1 & 0 & \cdots & 0\\ a_2 & b_2 & c_2 & \ddots & \vdots\\ 0 & a_3 & b_3 & \ddots & 0\\ \vdots & \ddots & \ddots & \ddots & c_{n-1}\\ 0 & \cdots & 0 & a_n & b_n \end{pmatrix} \]
ここで b_1, …, b_n は主対角要素、c_1, …, c_{n-1} は上の対角要素、a_2, …, a_n は下の対角要素である。添字のずれを避ける目的で、a_1 や c_n を便宜的に0とみなす流儀もある。
1.2 例と具体的な形
三重対角行列は、差分法や有理近似、グラフ上の局所相互作用など、離散構造から自然に導かれることが多い。ここでは具体例と生成手順を示す。
1.2.1 小次元の例
最小の例として2次行列では、対角と両隣しか存在しないため任意の2×2が三重対角である。3次の場合は次のように三つの帯だけが残る。
\[ \begin{pmatrix} b_1 & c_1 & 0\\ a_2 & b_2 & c_2\\ 0 & a_3 & b_3 \end{pmatrix} \]
4次では
\[ \begin{pmatrix} b_1 & c_1 & 0 & 0\\ a_2 & b_2 & c_2 & 0\\ 0 & a_3 & b_3 & c_3\\ 0 & 0 & a_4 & b_4 \end{pmatrix} \]
となり、非零成分は主対角のほか、第一上副対角と第一下副対角に限定される。
1.2.2 行列の作り方
三重対角行列を構成する基本手順は、次のデータを与えることである。
- 主対角の列 b_1,…,b_n を決める
- 上側帯の列 c_1,…,c_{n-1} を決める
- 下側帯の列 a_2,…,a_n を決める
- 上記の配置規則に従い、その他の成分は0に設定する
計算機実装では、行列を二次元配列として保持せず、三つの配列(主対角、上の対角、下の対角)として格納することが一般的である。
1.3 種類と拡張
三重対角行列には、対称性や性質の追加により区別される主要な型がある。特に対称かどうかは、固有値や数値安定性に大きく影響する。
1.3.1 対称三重対角行列
三重対角行列 A が転置に関して一致する、すなわち A = A^T を満たすとき対称三重対角行列である。このとき上の対角要素と下の対角要素は一致する必要がある。具体的には
- c_i = a_{i+1}(i = 1,…,n−1)
が成り立つ。対称性により固有値は実数となり、固有ベクトルは直交関係を持つことが多い(通常、実内積空間上で議論される)。
1.3.2 非対称三重対角行列
非対称三重対角行列は、一般に A ≠ A^T の場合を指す。上の帯と下の帯の成分が一致しないため、固有値が複素数を取り得るなど、スペクトルの振る舞いは対称型と異なる。とはいえ構造(帯の限定)は保持されるため、直接法や反復法における計算上の利点は広く残る。
2 基本性質
三重対角行列は、疎性(非零成分が少ない)と帯構造により、多くの基本演算が効率化できる。ここでは線形空間としての性質から、行列式の計算、さらに応用に直結する特性へと整理する。
2.1 線形空間としての構造
三重対角行列全体は、適切な体(実数や複素数)上で線形空間を形成する。
2.1.1 和とスカラー倍での閉性
| 三重対角行列の和は再び三重対角行列となる。理由は、各成分が零である位置( | i−j | ≥2)では、和を取っても零の和となるためである。スカラー倍についても同様で、帯以外が零のまま保たれる。 |
|---|
したがって三重対角行列の集合は、加法とスカラー倍に関して閉である。
2.1.2 積や逆行列の条件
積については注意が必要である。一般に三重対角行列同士の積は、帯幅が増える。具体的には、AとBがともに三重対角であっても、積ABは最大で対角から2本分先まで非零成分が現れうる(結果として五重対角になる可能性がある)。よって積だけでは同じクラスに閉じない。
逆行列も同様である。Aが可逆でも、A^{-1} が三重対角になるとは限らない。逆行列が同じ帯構造を持つのは例外的な条件のもとであり、一般には密行列(多くの非零成分を持つ行列)になる傾向がある。ただし、連立一次方程式の解法という観点では、逆行列そのものを明示せずとも帯構造を利用した計算が可能である。
2.2 行列式と階差の関係
三重対角行列の行列式は、連続した主小行列の行列式を用いる再帰式で効率良く計算できる。これは階差(差分)的な見通しと結びつくことがある。
2.2.1 連分数的な見通し
連分数(連続分数)の形に現れることがある。例えば、線形方程式に関するスカラー量(特定の成分)を導出するとき、分母・分子が再帰的に現れ、それが連分数に類似した構造となる。直感的には、帯の局所的結合が「次の段」を規定するため、全体の量が段階的に折り畳まれる。
2.2.2 再帰的な計算
三重対角行列 A の主小行列(上からk×kの部分行列)の行列式を D_k とおく(D_0 = 1、D_1 = b_1 とする)。すると再帰
\[ D_k = b_k D_{k-1} - a_k c_{k-1} D_{k-2} \]
が得られる。添字は表記規約に依存するが、要点は「一つ前と二つ前の値の線形結合」で更新できる点である。これにより行列式は O(n) 回程度の演算で計算できる。
2.3 応用に効く性質
三重対角構造は、数値計算での計算量とメモリ使用量を削減するだけでなく、安定な解法や理論的な解析にもつながる。
2.3.1 疎性と計算効率
非零成分の数は高々 3n−2 程度であり、一般の密行列に比べて格納と演算が軽い。例えばガウス消去の際、適切な順序付けや分解を用いれば、演算数は三重対角に整合する形で抑えられる。加えて、各段階で参照する成分が近傍に限定されるため、キャッシュ効率や並列化の設計もしやすい。
2.3.2 連立一次方程式への適性
三重対角行列は、一次方程式 Ax = f を解く場面で特に力を発揮する。各行の情報が局所的にしか依存しないため、前進消去と後退代入の流れが自然に成立する。結果として、直接法は線形時間に近い計算量で実行でき、反復法では行列ベクトル積が安価になるため、全体の計算が効率化される。
3 連立一次方程式の解法
ここでは Ax = f を解く代表的手法を整理する。三重対角性により、一般のガウス消去よりも単純で高速な手順が可能になる。
3.1 前進消去と後退代入
三重対角系は、消去過程が三本の帯に沿って進むため、分解・解法が構造化される。
3.1.1 三重対角系の直接法
直接法の典型は LU 分解に基づく。三重対角行列 A を、下三角行列Lと上三角行列Uに分解するが、三重対角の性質により L は主対角とその1本下のみ非零を持ち、U は主対角とその1本上のみ非零になることが多い(いわゆる帯付き分解)。
その後、Ly = f を解き、Ux = y を後退代入で解く。各更新は隣接成分に限られるため、前進と後退はいずれも短い依存関係で完結する。
3.1.2 トーマス法(トリダイアゴナル法)
トーマス法は三重対角連立一次方程式に対する有名な直接法で、LU分解を効率化した形として理解できる。通常、次の方程式
\[ \begin{aligned} a_2 x_1 + b_2 x_2 + c_2 x_3 &= f_2\\ \vdots \\ a_n x_{n-1} + b_n x_n &= f_n \end{aligned} \]
のように並ぶ係数に対し、前進消去で係数比(ある種の分数)を逐次計算し、最後に後退代入で未知数を復元する。
計算上の特徴として、除算と積和が帯内で行われ、メモリアクセスも帯の配列に限定される。そのため実務上の処理速度と単純さが両立しやすい。
3.2 数値的安定性
数値計算では、理論上の存在と実際の誤差増幅が一致しない場合がある。三重対角の直接法でも、分母となる中間量が小さいと不安定化することがある。
3.2.1 存在条件と分岐
直接法が適用できるかは、分解中に現れる「ピボット(消去に用いる対角成分)」が零になるかどうかに左右される。ピボットが零に近い場合、丸め誤差の影響が増大しうる。
実装では、該当する中間値の大きさを監視し、必要に応じて別の方法(例えば反復法への切替、あるいは係数の再スケーリング)を検討することがある。
3.2.2 丸め誤差の影響
丸め誤差は前進消去で伝播し、後退代入で増幅されることがある。特に、係数のスケール差が大きい場合や、ピボットが極端に小さい場合には誤差が目立ちやすい。安定性の評価は、一般に条件数や残差の大きさ、さらに中間演算の相対誤差を通じて行われる。
対称正定値に近い場合などでは、誤差挙動が良好になることが多いが、具体的には係数の構造と右辺の性質によって変わる。
3.3 計算量と実装上の注意
三重対角構造を活かすことで、計算量は大幅に削減できる。ここでは見積もりとメモリ設計の要点を述べる。
3.3.1 計算コストの見積もり
トーマス法や帯付きLUに基づく直接法では、各ステップで一定数の演算が行われるため、計算量は O(n) で概ね整理できる。定数項は実装や表記(添字の扱い)で変動するが、密行列の一般的消去(O(n^3))と比較して格段に少ない。
さらに、反復法で用いる行列ベクトル積も三重対角では O(n) になるため、反復回数mとすれば O(mn) の形で評価できる。
3.3.2 メモリ効率
三重対角行列は、三本の帯の配列だけを保存すればよいのでメモリ消費が小さい。例えば密に n×n を保持する代わりに、主対角 n 個、上下対角それぞれ n−1 個程度の合計約 3n 個の要素に抑えられる。
また、解法中の中間配列(前進で計算する比や更新済み係数)も最小限のスカラ配列として設計できるため、キャッシュ効率が向上しやすい。
4 固有値問題とスペクトル理論
三重対角行列はスペクトル理論で中心的な役割を持つ。特に対称型では構造が固有値の性質を強く制約し、計算アルゴリズムの設計にもつながる。
4.1 固有値の位置づけ
三重対角行列の固有値は、行列の固有値問題の具体形として理解される。帯構造は固有値の分布や固有ベクトルの局所性に影響を与える。
4.1.1 対称性による性質
対称三重対角行列の場合、固有値は実数になり、固有ベクトルは直交する。さらに固有値の分布や零点の間隔に関する性質が、付随する直交多項式や再帰関係と結びついて説明されることがある。結果として、解析と数値計算が整合的に進む。
4.1.2 固有ベクトルの構造
三重対角構造の固有方程式 Ax = λx は、成分ごとに近傍だけが結ばれる差分型の関係式として書ける。よって固有ベクトルの成分は、連続的な位置に対する局所的な再帰で表現でき、境界条件(端点成分)によって全体が決まる。これはモード(振動モード)や離散的な波動に似た挙動を示す場合がある。
4.2 典型的アルゴリズム
固有値問題の解法として、三重対角に特化したアルゴリズムや、より一般の方法の簡約版が利用される。
4.2.1 QR法との関係
QR法は固有値計算で広く用いられる反復法であり、三重対角行列に対しては計算が効率化される。理由は、反復の過程で保持される構造が三重対角に近い形となり、行列ベクトル操作や更新が帯内で完結しやすいためである。
実装ではシフト(スペクトル推定に基づくパラメータ)を適切に選ぶことで収束が改善されることが多い。
4.2.2 反復法の考え方
反復法では、初期ベクトルから始めて固有ベクトルに対応する方向へ近づくように更新を行う。三重対角行列は行列作用が安価なため、反復あたりのコストが低い。例えば逆反復に近い発想を使うと、特定の固有値周辺を狙った探索が可能になる。
また、対称型ではレイリー商や内積に基づく評価が安定に働きやすく、誤差制御がしやすい傾向がある。
4.3 直交多項式とのつながり
三重対角行列は、直交多項式(直交する多項式族)の生成規則と密接に関係する。特に、再帰関係を通じて固有値やスペクトルが多項式の性質に翻訳される。
4.3.1 ユニタリ行列との対応
一般のユニタリ行列(複素内積空間でのエルミート型に対応する枠組み)や、それに関連する変換の一部は、対応する再帰構造を三重対角形式へ写すことで解析できる場合がある。直交性の概念が保たれるため、スペクトル情報を多項式側へ写像しやすい。
4.3.2 生成関数と再帰関係
直交多項式は通常、三項間の再帰(基底となる多項式と、その隣接する次数の関係)で定義されることが多い。三重対角行列における行列式の再帰や固有方程式の成分間関係が、同型の再帰として現れると、両者の対応が明確になる。
この対応により、固有値は多項式の零点として特徴づけられたり、生成関数の形で分布や収束の議論を行えたりする。結果として、数値計算(再帰の安定性)と解析(零点分布など)が同じ枠組みで扱える。