![Page 1: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/1.jpg)
FrontISTRにおける固有値解析の解説
2017/2/13 FrontISTR研究会1
東京⼤学⼤学院 奥⽥研究室森⽥直樹
![Page 2: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/2.jpg)
⽬次• ⽬次• ⽬的• 固有値問題の分類• 固有値問題の数理的基礎• FrontISTR ver. 4.5 RC1における固有値解析• FrontISTR 固有値解析プログラムの改良
2017/2/13 FrontISTR研究会2
![Page 3: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/3.jpg)
⽬的• 固有値問題の概略について解説を⾏います• 固有値問題の数理的な基礎について解説を⾏います• FrontISTRに実装されている固有値解析プログラムについて
解説を⾏います
2017/2/13 FrontISTR研究会3
![Page 4: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/4.jpg)
固有値問題の分類(概要)• ⾏列の対称性• 固有値問題の形• ⾏列の粗密• 求めたい固有値・固有ベクトルの数
2017/2/13 FrontISTR研究会4
![Page 5: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/5.jpg)
固有値問題の分類 [1/2]• ⾏列の対称性
• 実対称⾏列 𝐴 = 𝐴#・実対称⾏列は実固有値を持つ[付録A]
・全ての固有値が正の場合,正定値対称• 複素エルミート⾏列 𝐻 = 𝐻%# = 𝐻∗• ⾮対称⾏列
• 固有値問題の分類• 標準固有値問題 𝐴𝑥 = 𝜆𝑥• ⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥• 多項式固有値問題 𝜆*𝐴𝑥 + 𝜆*,-𝐵𝑥 +⋯+ 𝑍𝑥 = 𝟎• ⾮線形固有値問題
2017/2/13 FrontISTR研究会5
![Page 6: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/6.jpg)
付録A:実対称⾏列の固有値は必ず実数
2017/2/13 FrontISTR研究会6
![Page 7: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/7.jpg)
固有値問題の分類 [2/2]• ⾏列の粗密
• 密⾏列• 疎⾏列• 特殊な⾏列• 三重対⾓⾏列
• 求めたい固有値・固有ベクトルの数• 固有値・固有ベクトルの全て• 固有値・固有ベクトルの⼀部
2017/2/13 FrontISTR研究会7
図1-a 密⾏列 図1-b 疎⾏列 図1-c 三重対⾓⾏列
![Page 8: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/8.jpg)
構造解析で解く固有値問題• ⾏列の対称性
• 実対称⾏列 𝐴 = 𝐴#, 𝐵 = 𝐵#
• 固有値問題の分類• ⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥
• ⾏列の粗密• 疎⾏列
• 求めたい固有値・固有ベクトルの数• 固有値・固有ベクトルの⼀部• ⼯学的に低次側の固有値が重要
2017/2/13 FrontISTR研究会8
![Page 9: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/9.jpg)
有限要素法で解く固有値問題の数理的基礎
2017/2/13 FrontISTR研究会9
相似変換が可能
三重対⾓⾏列に変換可能
標準固有値問題におけるLanczos法
⼀般固有値問題におけるLanczos法
三重対⾓⾏列の固有値導出
notation
![Page 10: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/10.jpg)
固有値問題の相似変換
• 正則⾏列𝑄を⽤いて,𝐶 = 𝑄,-𝐴𝑄と相似変換する• 𝐴の固有値と𝐶の固有値は等しく[付録B]
固有値𝜆4に対する𝐴の固有ベクトル𝑥4と, 𝐶の固有ベクトル𝑦4には𝑄,-𝑥4 = 𝑦4の関係がある
• 固有値・固有ベクトルを求めやすい特殊な⾏列(三重対⾓⾏列)に変換する⼿法がとられる
2017/2/13 FrontISTR研究会10
![Page 11: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/11.jpg)
付録B:相似変換で固有値は不変
2017/2/13 FrontISTR研究会11
![Page 12: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/12.jpg)
固有値計算の概略
2017/2/13 FrontISTR研究会12
べき乗法・Jacobi法・LDU分解
べき乗法(Jacobi法・LDU分解)
Lanczos法
Householder法
実対称密⾏列𝐴
実対称疎⾏列𝐴
三重対⾓⾏列𝑇 = 𝑄#𝐴𝑄
𝐴の固有値固有ベクトル
𝑇の固有値固有ベクトル
⼆分法・分割統治法QR法・QL法 etc.
図2 固有値計算の概略
![Page 13: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/13.jpg)
固有値計算の概略
2017/2/13 FrontISTR研究会13
べき乗法・Jacobi法・LDU分解
べき乗法(Jacobi法・LDU分解)
Lanczos法
Householder法
実対称密⾏列𝐴
実対称疎⾏列𝐴
三重対⾓⾏列𝑇 = 𝑄#𝐴𝑄
𝐴の固有値固有ベクトル
𝑇の固有値固有ベクトル
⼆分法・分割統治法QR法・QL法 etc.
図3 固有値計算の概略
![Page 14: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/14.jpg)
有限要素法で解く固有値問題の数理的基礎
2017/2/13 FrontISTR研究会14
[済] 相似変換が可能
三重対⾓⾏列に変換可能
標準固有値問題におけるLanczos法
⼀般固有値問題におけるLanczos法
三重対⾓⾏列の固有値導出
![Page 15: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/15.jpg)
Arnoldi法による相似変換 [1/2]
• Krylov部分空間における正規直交基底を求める⼿法• ⾏列𝐴に共役なベクトルを求める• 共役グラムシュミット法の⼀種
• 相似変換𝑄,-𝐴𝑄 = 𝐻を得る• 計算によって得られる⾏列𝐻は,
ヘッセンベルグ⾏列となる• hijは⾏列𝐻の(i,j)番⽬の要素
2017/2/13 FrontISTR研究会15
図4 Arnoldi法 図5 ヘッセンベルグ⾏列
![Page 16: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/16.jpg)
Arnoldi法による相似変換 [2/2]
• ⾏列𝐴が正定値対称な場合,⾏列𝐻は対称となる
• ヘッセンベルグ⾏列が対称→三重対⾓⾏列となる
• Arnoldi法 (またはHouseholder法)に基づいて三重対⾓⾏列が得られる
2017/2/13 FrontISTR研究会16
図4 Arnoldi法 図6 ヘッセンベルグ⾏列と三重対⾓⾏列
対称
![Page 17: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/17.jpg)
有限要素法で解く固有値問題の数理的基礎
2017/2/13 FrontISTR研究会17
[済] 相似変換が可能
[済] 三重対⾓⾏列に変換可能
標準固有値問題におけるLanczos法
⼀般固有値問題におけるLanczos法
三重対⾓⾏列の固有値導出
![Page 18: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/18.jpg)
標準固有値問題におけるLanczos法 [1/2]
• Arnoldi法により,実対称⾏列はQ,-𝐴𝑄 = 𝑇として相似変換可能• 𝑇は三重対⾓⾏列
• 𝐴𝑄 = 𝑄𝑇の関係から,Lanczos法が得られる.
2017/2/13 FrontISTR研究会18
![Page 19: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/19.jpg)
標準固有値問題におけるLanczos法 [2/2]
2017/2/13 FrontISTR研究会19
![Page 20: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/20.jpg)
Lanczos法(標準固有値問題 𝐴𝑥 = 𝜆𝑥)
2017/2/13 FrontISTR研究会20
図7 Lanczos法
正規化の部分
直交化の部分
![Page 21: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/21.jpg)
構造解析で解く⼀般固有値問題 [1/2]• ⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥 に対し
構造解析では 𝐾𝑥 = 𝜆𝑀𝑥 を解く• 𝐾は全体剛性⾏列,𝑀は全体質量⾏列
• 解法の種類• 陽的に問題を変換するため,𝐵 = 𝐿𝐿#とコレスキー分解できることを利⽤し
標準固有値問題 𝐿,-𝐴𝐿,#𝑦 = 𝜆𝑦,𝑦 = 𝐿#𝑥を解く• 外部固有値ソルバを⽤いた求解に対応できる• 𝐿,-𝐴𝐿,#の計算負荷が⼤きい
• 陰的に計算しながら,⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥を直接解く• FrontISTRではこの⽅法を採⽤している
2017/2/13 FrontISTR研究会21
![Page 22: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/22.jpg)
構造解析で解く⼀般固有値問題 [2/2]• ⼯学的には低次側の固有値が重要
• Lanczos法をべき乗法の拡張と考えると,⾏列𝐴に対し絶対値最⼤の固有値が求まる
• 絶対値最⼩の固有値から求めるために,⾏列𝐴,-に対しLanczos反復を⾏う• Lanczos逆べき乗法(Lanczos inverse power iteration)• 𝑝 = 𝐴𝑞と計算していた部分を, 𝑝 = 𝐴,-𝑞と置き換える.
すなわち A𝑝 = 𝑞を解くために線形ソルバの呼び出しが必要になる
2017/2/13 FrontISTR研究会22
![Page 23: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/23.jpg)
有限要素法で解く固有値問題の数理的基礎
2017/2/13 FrontISTR研究会23
[済] 相似変換が可能
[済] 三重対⾓⾏列に変換可能
[済] 標準固有値問題におけるLanczos法
⼀般固有値問題におけるLanczos法
三重対⾓⾏列の固有値導出
![Page 24: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/24.jpg)
⼀般固有値問題におけるLanczos法
• ⼀般固有値問題における固有ベクトルは,⾏列𝐵に対して共役なベクトルとなる[付録C]
• ⼀般固有値問題におけるLanczos法は,以下のように解かれる[1]
• 𝐴𝑥 = 𝜆𝐵𝑥に対して, 𝐶 = 𝐵,-𝐴としてC𝑥 = 𝜆𝑥を解く
• Lanczos反復中に計算される内積演算を,2ノルム 𝑥 ? = (𝑥, 𝑥)から,Bノルム 𝑥 B = (𝐵𝑥, 𝑥)に変更する
2017/2/13 FrontISTR研究会24
[1] Y. Saad, Numerical Methods for Large Eigenvalue Problem, SIAM, 2011.
![Page 25: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/25.jpg)
付録C:⼀般固有値問題の固有ベクトルはB直交
2017/2/13 FrontISTR研究会25
![Page 26: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/26.jpg)
Lanczos法(⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥)[1/2]
• 最⼩固有値を求めるために,Lanczos逆べき乗法を適⽤
• Bノルムに関する計算順序を整理
2017/2/13 FrontISTR研究会26
図8 Lanczos法
![Page 27: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/27.jpg)
Lanczos法(⼀般固有値問題 𝐴𝑥 = 𝜆𝐵𝑥)[2/2]
• FrontISTRで採⽤するLanczos法アルゴリズム
• 反復回数の最⼤値𝑛は,𝑛=⾏列𝐴の⾃由度ー回転⾃由度
とおく
• 次項のLanczos法の収束判定を⽤いて,計算ループを終了する
2017/2/13 FrontISTR研究会27図9 Lanczos法
![Page 28: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/28.jpg)
Lanczos法の収束判定
2017/2/13 FrontISTR研究会28
![Page 29: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/29.jpg)
有限要素法で解く固有値問題の数理的基礎
2017/2/13 FrontISTR研究会29
[済] 相似変換が可能
[済] 三重対⾓⾏列に変換可能
[済] 標準固有値問題におけるLanczos法
[済] ⼀般固有値問題におけるLanczos法
三重対⾓⾏列の固有値導出
![Page 30: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/30.jpg)
三重対⾓⾏列の固有値導出
• ⼀般固有値問題の固有対をもつ三重対⾓⾏列が算出された
• この三重対⾓⾏列の固有値・固有ベクトルを求めればよい• ⼆分法・分割統治法・QR法・QL法などがある
• FrontISTRでは,QL法に基づいた固有値・固有ベクトルの計算を⾏っている
2017/2/13 FrontISTR研究会30
![Page 31: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/31.jpg)
QL法による固有値・固有ベクトルの算出 [1/2]
2017/2/13 FrontISTR研究会31
![Page 32: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/32.jpg)
QL法による固有値・固有ベクトルの算出 [2/2]
• 𝐴′の対⾓成分から固有値を決定した後,固有ベクトルを得る• QL法では,固有値𝑎′44と固有ベクトル𝒒4が対応する
• LAPACKではQR分解𝐴 = 𝑄𝑅の関数DSTEQRが提供されている
2017/2/13 FrontISTR研究会32
![Page 33: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/33.jpg)
有効質量・刺激係数の算出
2017/2/13 FrontISTR研究会33
• 上記の関係から,有効質量,刺激係数を求める.• 算出の際に,回転⾃由度は考慮しない
![Page 34: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/34.jpg)
FrontISTRにおける固有値解析• FrontISTRのマニュアルの訂正
(FrontISTR_user_manual_Ver36.pdf p.18)
• 2.3.3 シフト付き逆反復法の記載があるが,固有値シフト機能がFrontISTRでは実装されていない.• (実際にはシフト付逆反復法を実装しようとした痕跡がある)
2017/2/13 FrontISTR研究会34
![Page 35: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/35.jpg)
FrontISTRにおける固有値解析• 関連するプログラムソース
• /fistr1/src/analysis/dynamic/mode/• fstr_solve_eigen.f90 :固有値解析のメイン関数• fstr_EIG_setMASS.f90 :質量⾏列の計算関数• fstr_EIG_lanczos.f90 :Lanczos法のサブルーチン• fstr_EIG_lczeigenm.f90 :Lanczos法⽤のモジュール定義• fstr_EIG_getamatf90 :⾏列ベクトル積の関数• fstr_EIG_matmult.f90 :⾏列ベクトル積の関数• fstr_EIG_tridiag.f90 :三重対⾓⾏列の固有値計算関数• fstr_EIG_mgs1.f90 :修正GS法の関数• fstr_EIG_output.f90 :結果出⼒関数
2017/2/13 FrontISTR研究会35
![Page 36: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/36.jpg)
メイン関数:fstr_solve_eigen.f90 [1/4]
2017/2/13 FrontISTR研究会36
変数初期化
全体剛性⾏列計算
回転⾃由度判定フィルタ
回転慣性の除去
変数初期化
全体質量⾏列計算
• 〜L114
• L116〜L127
• L129〜L147
• L149〜L185
• L187〜L283
• L285〜L289
![Page 37: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/37.jpg)
サブ関数:fstr_EIG_lanczos.f90
2017/2/13 FrontISTR研究会37
{EVEC}をランダム⽣成
{EVEC}の回転⾃由度を零
{EVEC}={EVEC}/|{EVEC}|2
q=0
β1=({EVEC}t[M]{EVEC})1/2
{q}1={EVEC}/β1
初期固有ベクトル設定 • fstr_solve_eigen.f90:L291〜L318• L61• L113〜L115• L118〜L123• L125〜L127• L129〜L145• L147〜L149• L152{LVECP}=[M]{q}1
![Page 38: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/38.jpg)
メイン関数:fstr_solve_eigen.f90 [2/4]
2017/2/13 FrontISTR研究会38
[A]{EM}={LVECP}
{EM}の回転⾃由度を零
{EM}={EM}-βi{q}i-1
αi={LVECP}t{EM}
{EM}={EM}- αi{q}i
Lanczosループ i • L321• L324〜L339• L341〜L349• L370• L373〜L374• L384• L386〜L414• L417• L420〜L429
再直交化
{LVECPP}=[M]{EM}
βi+1=({LVECPP}t{EM})1/2
![Page 39: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/39.jpg)
メイン関数:fstr_solve_eigen.f90 [3/4]
2017/2/13 FrontISTR研究会39
i = 1, IterMax
{LVECP}={LVECPP}/βi+1
{q}i+1={EM} /βi+1
三重対⾓⾏列作成
固有値・固有ベクトルを求める
収束判定
• L433• L433• L435〜L459• L461〜L462• L464〜L498• L509
![Page 40: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/40.jpg)
メイン関数:fstr_solve_eigen.f90 [4/4]
2017/2/13 FrontISTR研究会40
固有値算出
固有ベクトル算出
固有ベクトル正規化
有効質量・刺激係数算出
結果出⼒ (.res)
結果可視化 (visualizer)
• L511〜L519
• L521〜L538
• L540〜L575
• L577〜L611
• L614〜L642
• L644〜L668
![Page 41: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/41.jpg)
まとめ• 固有値問題の概略について解説を⾏いました• 固有値問題の数理的な基礎について解説を⾏いました• FrontISTRに実装されている固有値解析プログラムについて
解説を⾏いました
2017/2/13 FrontISTR研究会41
![Page 42: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/42.jpg)
展望• 固有値問題解析プログラムの構造化(実施中)• ブロックランチョス法の実装(重根を正しく算出するため)• その他リスタート⼿法の実装検討
2017/2/13 FrontISTR研究会42
![Page 43: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/43.jpg)
2017/2/13 FrontISTR研究会43
![Page 44: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/44.jpg)
付録A:実対称⾏列の固有値は必ず実数
2017/2/13 FrontISTR研究会44
![Page 45: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/45.jpg)
付録B:相似変換で固有値は不変
2017/2/13 FrontISTR研究会45
![Page 46: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/46.jpg)
付録C:⼀般固有値問題の固有ベクトルはB直交
2017/2/13 FrontISTR研究会46
![Page 47: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/47.jpg)
2017/2/13 FrontISTR研究会47
![Page 48: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/48.jpg)
サブ関数:fstr_EIG_mgs1.f90
2017/2/13 FrontISTR研究会48
{EVEC}をランダム⽣成
{EVEC}の回転⾃由度を零
{EVEC}={EVEC}/|{EVEC}|2
q=0
β1=({EVEC}t[M]{EVEC})1/2
{q}1={EVEC}/β1
初期固有ベクトル設定 • fstr_solve_eigen.f90:L386〜L414 • L• L〜L• L〜L• L〜L• L〜L• L〜L• L{LVECP}=[M]{q}1
![Page 49: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/49.jpg)
サブ関数:fstr_EIG_tridiag.f90(QL法)
2017/2/13 FrontISTR研究会49
{EVEC}をランダム⽣成
{EVEC}の回転⾃由度を零
{EVEC}={EVEC}/|{EVEC}|2
q=0
β1=({EVEC}t[M]{EVEC})1/2
{q}1={EVEC}/β1
初期固有ベクトル設定 • fstr_solve_eigen.f90:L435〜L459• L• L〜L• L〜L• L〜L• L〜L• L〜L• L{LVECP}=[M]{q}1
![Page 50: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/50.jpg)
Lanczos法(標準固有値問題 𝐴𝑥 = 𝜆𝐵𝑥)• あああ
2017/2/13 FrontISTR研究会50
![Page 51: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/51.jpg)
サブ関数:fstr_EIG_lanczos.f90
2017/2/13 FrontISTR研究会51
{t}をランダム⽣成
{t}の回転⾃由度を零
{t}={t}/|{t}|2
q=0
β1=({t}t[M]{t})1/2
{q}1={t}/β1
初期固有ベクトル設定 • fstr_solve_eigen.f90:L291〜L318• L61• L113〜L115• L118〜L123• L125〜L127• L129〜L145• L147〜L149• L152{p}=[M]{q}1
![Page 52: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/52.jpg)
メイン関数:fstr_solve_eigen.f90 [2/4]
2017/2/13 FrontISTR研究会52
[A]{s}={p}
{s}の回転⾃由度を零
{s}={s}-βi{q}i-1
αi={p}t{s}
{s}={s}-αi{q}i
Lanczosループ i • L321• L324〜L339• L341〜L349• L370• L373〜L374• L384• L386〜L414• L417• L420〜L429
再直交化
{r}=[M]{s}
βi+1=({r}t{s})1/2
![Page 53: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/53.jpg)
メイン関数:fstr_solve_eigen.f90 [3/4]
2017/2/13 FrontISTR研究会53
i = 1, IterMax
{p}={r}/βi+1
{q}i+1={s} /βi+1
三重対⾓⾏列作成
固有値を求める
収束判定
• L433• L433• L435〜L459• L461〜L462• L464〜L498• L509
![Page 54: FrontISTRにおける 固有値解析の解説nmorita/misc/eigen/FrontISTR_eigen.pdf• Lanczos法をべき乗法の拡張と考えると, 列!に対し絶対値最 の固有値が求まる](https://reader036.vdocuments.mx/reader036/viewer/2022071506/61272701c923956c20753178/html5/thumbnails/54.jpg)
メイン関数:fstr_solve_eigen.f90 [4/4]
2017/2/13 FrontISTR研究会54
固有値算出
固有ベクトル算出
固有ベクトル正規化
有効質量・刺激係数算出
結果出⼒ (.res)
結果可視化 (visualizer)
• L511〜L519
• L521〜L538
• L540〜L575
• L577〜L611
• L614〜L642
• L644〜L668