Lanczos法による固有値解析 — 理論と支配方程式
Lanczos法とは
先生、Lanczos法は固有値問題を解くアルゴリズムですよね。なぜこれが標準なんですか?
Lanczos法は大規模疎行列の固有値問題に最も効率的なアルゴリズムだ。FEMの剛性マトリクスと質量マトリクスは疎行列(非ゼロ成分が少ない)であり、Lanczos法の得意分野そのものだ。
アルゴリズムの原理
Lanczos法の基本アイデア:
1. 初期ベクトル $\{q_1\}$ を選ぶ(ランダムでも可)
2. 行列ベクトル積 $[K]^{-1}[M]\{q_j\}$ を繰り返し計算(Krylov部分空間の構築)
3. 各ステップでGram-Schmidt直交化を行い、三重対角行列 $[T]$ を構築
4. $[T]$ の固有値が元の問題の固有値の近似
5. 収束するまで反復
巨大な $[K]$ の固有値を、小さな三重対角行列 $[T]$ の固有値で近似するんですね。
まさにそう。$n \times n$ の行列($n$ = 数百万)を $m \times m$ の三重対角行列($m$ = 数十〜数百)に縮約する。$m$ ステップのLanczos反復で下位 $m$ 個の固有値が近似される。
計算コスト
Lanczos法の主なコスト:
| ステップ | 計算量 | 備考 |
|---|---|---|
| $[K]$ のLDLT分解 | $O(n \cdot bw^2)$ | $bw$ = バンド幅。最も重い |
| 前進後退代入 | $O(n \cdot bw)$ | 各Lanczos反復で1回 |
| 直交化 | $O(n \cdot m)$ | $m$ = Lanczosステップ数 |
| $[T]$ の固有値 | $O(m^2)$ | 小さい行列。無視できる |
$[K]$ のLDLT分解が最も重い。これは静解析のソルバーと同じですよね。
その通り。Lanczos法のコストの大部分は$[K]$ の分解であり、これは1回だけ。その後のLanczos反復(前進後退代入)は分解に比べて軽い。だから固有値解析のコストは静解析の1.5〜3倍程度。
収束特性
Lanczos法は何ステップで収束しますか?
下位の固有値ほど速く収束する。$m$ ステップのLanczos反復で:
- 最小固有値: 数ステップで収束
- $k$ 番目の固有値: 約 $k + \alpha$ ステップ($\alpha$ は余裕分)
NastranのEIGRLでは「求めるモード数の2倍のLanczosベクトル」がデフォルト。
シフト-反転法
特定の振動数範囲のモードだけ求めたい場合は?
シフト-反転Lanczos法を使う。注目する振動数 $\sigma$ 付近のモードを重点的に求める:
シフト $\sigma$ に近い固有値が最も速く収束する。
高い振動数のモードだけ求めたいときに便利ですね。
NastranのEIGRLのV1, V2パラメータで振動数範囲を指定。AbaqusのFREQUENCY, SHIFTでシフト値を指定。中間の振動数帯のモードを効率的に抽出できる。
まとめ
Lanczos法の理論を整理します。
要点:
- 大規模疎行列の固有値問題に最適 — FEMの標準ソルバー
- Krylov部分空間→三重対角行列→固有値 — 縮約のアイデア
- コストは $[K]$ の分解が支配 — 静解析の1.5〜3倍
- 下位の固有値が最速で収束 — 低次モードに有利
- シフト-反転法で特定振動数帯を探索 — 高次モードの抽出
Lanczos法を「ブラックボックス」として使うだけでなく、中身を理解すると設定の意味がわかりますね。
「なぜLanczosベクトルの数がモード数の2倍必要か」「なぜシフトが有効か」…これらはアルゴリズムを理解していないとわからない。ブラックボックスを開けて中を見ることが、FEMの上達への近道だ。
タイタニック号と安全率の教訓
「不沈」と謳われたタイタニック号は、低温でのリベット材の脆性破壊が沈没の一因とされています。現代の破壊力学CAEでは、温度依存の材料特性と応力拡大係数を計算して「その温度で本当に大丈夫か?」を事前に検証できます。技術の進歩は、過去の悲劇から学んだ結果です。
各項の物理的意味
- 慣性項(質量項):$\rho \ddot{u}$、つまり「質量×加速度」。急ブレーキで体が前に投げ出された経験はありませんか? あの「持っていかれる感じ」がまさに慣性力です。重い物体ほど動き出しにくく、動き出したら止まりにくい。地震で建物が揺れるのも、地面が急に動いたのに建物の質量が「置いていかれる」から。静解析ではこの項をゼロにしますが、それは「ゆっくり力をかけるから加速度は無視できる」という仮定です。衝撃荷重や振動問題では絶対に省略できません。
- 剛性項(弾性復元力):$Ku$ や $\nabla \cdot \sigma$。ばねを引っ張ると「戻ろうとする力」を感じますよね? あれがフックの法則 $F=kx$ であり、剛性項の本質です。では質問——鉄の棒とゴム紐、同じ力で引っ張るとどちらが伸びるでしょうか? 当然ゴムです。この「伸びにくさ」がヤング率 $E$ であり、剛性を決めます。よくある勘違い:「剛性が高い=強い」ではありません。剛性は「変形しにくさ」、強度は「壊れにくさ」で、別の概念です。
- 外力項(荷重項):体積力 $f_b$(重力など)と表面力 $f_s$(圧力、接触力など)。こう考えてみてください——橋の上のトラックの重さは「中身全体にかかる力」(体積力)、タイヤが路面を押す力は「表面だけにかかる力」(表面力)。風圧、水圧、ボルトの締付力…すべて外力です。ここでありがちな失敗:荷重の方向を間違える。「引張」のつもりが「圧縮」になっていた——笑い話に聞こえますが、3D空間で座標系が回転していると実際に起こります。
- 減衰項:レイリー減衰 $C\dot{u} = (\alpha M + \beta K)\dot{u}$。ギターの弦を弾いてみてください。音は鳴り続けますか? いいえ、徐々に小さくなりますよね。振動エネルギーが空気抵抗や弦の内部摩擦で熱に変わるからです。車のショックアブソーバーも同じ原理——わざと振動エネルギーを吸収して乗り心地を良くしています。もし減衰がゼロだったら? 建物は地震の後いつまでも揺れ続けることになります。実際にはそうならないので、適切な減衰の設定が重要です。
仮定条件と適用限界
次元解析と単位系
| 変数 | SI単位 | 注意点・換算メモ |
|---|---|---|
| 変位 $u$ | m(メートル) | mm入力時は荷重・弾性率もMPa/N系に統一すること |
| 応力 $\sigma$ | Pa(パスカル)= N/m² | MPa = 10⁶ Pa。降伏応力との比較時に単位系の不一致に注意 |
| 歪み $\varepsilon$ | 無次元(m/m) | 工学歪みと対数歪みの区別に注意(大変形時) |
| 弾性率 $E$ | Pa | 鋼: 約210 GPa、アルミ: 約70 GPa。温度依存性に注意 |
| 密度 $\rho$ | kg/m³ | mm系ではtonne/mm³(= 10⁻⁹ tonne/mm³ for 鋼) |
| 力 $F$ | N(ニュートン) | mm系ではN、m系ではNで統一 |
数値例:片持ち梁の先端荷重(L=1m, 断面50×100mm, 鋼材E=210GPa, P=1kN)
最大たわみ δ = PL³/(3EI) = 1000×1000³/(3×210000×4,166,667) ≈ 0.381 mm 最大応力 σ = PL×(h/2)/I ≈ 12.0 MPa(降伏応力235MPaに対して安全率19.6)
メッシュ密度を変えた収束性の確認:
ポイント:要素数を4倍にしても結果は0.5%しか変わらない→8,000要素で十分収束。これが「メッシュ収束性」の確認です。
構造解析の収束問題や計算コストに課題を感じていませんか? — Project NovaSolverは、実務者が日々直面するこうした課題の解決を目指す研究開発プロジェクトです。
Lanczos法による固有値解析の実務で感じる課題を教えてください
Project NovaSolverは、CAEエンジニアが日々直面する課題——セットアップの煩雑さ、計算コスト、結果の解釈——の解決を目指しています。あなたの実務経験が、より良いツール開発の原動力になります。
実務課題アンケートに回答する →