Lanczos演算法
A. 什麼叫模態提取方法
模態提取方法有Block Lanczos法,Subspace法,powerDynamics法,reced法,unsymmetric法,damped法。這些方法都代表什麼意思,有什麼不同? 1. 分塊Lanczos法特徵值求解器是卻省求解器,它採用Lanczos演算法,是用一組向量來實現Lanczos遞歸計算。這種方法和子空間法一樣精確,但速度更快。無論EQSLV命令指定過何種求解器進行求解,分塊Lanczos法都將自動採用稀疏矩陣方程求解器。
2. 子空間法使用子空間迭代技術,它內部使用廣義Jacobi迭代演算法。由於該方法採用完整的剛度和質量矩陣,因此精度很高,但是計算速度比縮減法慢。這種方法經常用於對計算精度要求高,但無法選擇主自由度(DOF)的情形。
3. PowerDynamics法內部採用子空間迭代計算,但採用PCG迭代求解器。這種方法明顯地比子空間法和分塊Lanczos法快。但是,如果模型中包含形狀較差的單元或病態矩陣時可能出現不收斂問題。該法特別適用於求解超大模型(大於100,000個自由度)的起始少數階模態。譜分析不要使用該方法提取模態。
4.縮減法採用HBI演算法(Householder-二分-逆迭代)來計算特徵值和特徵向量。由於該方法採用一個較小的自由度子集即主自由度(DOF)來計算,因此計算速度更快。主自由度(DOF)導致計算過程中會形成精確的剛度矩陣和近似的質量矩陣(通常會有一些質量損失)。因此,計算結果的精度將取決於質量陣的近似程度,近似程度又取決於主自由度的數目和位置。
5. 非對稱法也採用完整的剛度和質量矩陣,適用於剛度和質量矩陣為非對稱的問題(例如聲學中流體-結構耦合問題)。此法採用Lanczos演算法,如果系統是非保守的(例如軸安裝在軸承上),這種演算法將解得復數特徵值和特徵向量。特徵值的實部表示固有頻率,虛部是系統穩定性的量度─負值表示系統是穩定的,而正值表示系統是不穩定的。該方法不進行Sturm序列檢查,因此有可能遺漏一些高頻端模態。
6. 阻尼法用於阻尼不能被忽略的問題,如轉子動力學研究。該法使用完整矩陣(剛度、質量及阻尼矩陣)。阻尼法採用Lanczos演算法並計算得到復數特徵值和特徵向量。此法不能用Sturm序列檢查。因此,有可能遺漏所提取頻率的一些高頻端模態。
B. Lanczos演算法的概述
Lanczos演算法實際上是Arnoldi演算法對於對稱矩陣的特殊形式,可應用於對稱矩陣線性方程組求解的Krylov子空間方法以及對稱矩陣的特徵值問題。
C. lanczos演算法將矩陣化為三對角矩陣後,用什麼方法求特徵值、特徵向量呢
實對稱三對角矩陣可以用對稱QR演算法/分治演算法/二分法/MRRR等多種方法對角化
如果沒有什麼特殊需求的話Lanczos過程之後用QR演算法就行了
D. 求教x264中縮小解析度時lanczos演算法和spline演算法
你可以查一下計算結構動力學一類的書,關於求三對角矩陣特徵值時使用的方法,有時與移頻技術聯合使用,可以求特定范圍內的頻率的模態,又稱"蘭索斯「法
E. 矩陣分解的奇異值分解法
奇異值分解 (singular value decomposition,SVD) 是另一種正交矩陣分解法;SVD是最可靠的分解法,但是它比QR 分解法要花上近十倍的計算時間。[U,S,V]=svd(A),其中U和V分別代表兩個正交矩陣,而S代表一對角矩陣。 和QR分解法相同, 原矩陣A不必為正方矩陣。使用SVD分解法的用途是解最小平方誤差法和數據壓縮。
MATLAB以svd函數來執行svd分解法, 其語法為[S,V,D]=svd(A)。
F. Lanczos演算法的介紹
Lanczos演算法
輸入:對稱矩陣A
輸出:正交陣P,對稱三對角陣S(只有對角線和對角線上下兩個次對角線的元素非0),滿足A=PSP'
在對稱陣進行特徵值分解時,如果只求最大的幾個特徵值和特徵向量,那麼lanczos方法將非常好用。
因為此時不需要完全求出P,只需要求出P的前幾列就可以。接著
求解S的特徵值分解:S=Q D Q',(D為對角陣,Q為正交陣),
最後得到A的特徵值分解:A=PQ D (PQ)'
現在來看看復雜度,假設我們要求A的最大的r個特徵值,一般來說,當r比較大時只需要求出P的前1.5*r列,此時注意到S為1.5*r的三對角陣,遠遠小於A的大小,所以其特徵值分解會很快。這就是lanczos演算法的優點所在。
更多資料,請見:
lanczos演算法及C++實現(〇)C++代碼
http://www.cnblogs.com/qxred/p/lanczoscpp.html
lanczos演算法及C++實現(一)框架及簡單實現
http://www.cnblogs.com/qxred/p/lanczos.html
lanczos演算法及C++實現(二)實對稱陣奇異值分解的QR演算法
http://www.cnblogs.com/qxred/p/qralgorithm.html
lanczos演算法及C++實現(三)實對稱三對角陣特徵值分解的分治演算法
http://www.cnblogs.com/qxred/p/dcalgorithm.html
G. ANSYS 中有哪幾種提取模態的方法
在 ANSYS 中有以下幾種提取模態的方法:
(1) Block Lanczos 法
(2) 子空間法
(3) PowerDynamics 法
(4) 減縮法
(5) 不對稱法
(6) 阻尼法
使用何種模態提取方法主要取決於模型大小(相對於計算機的計算能力而言)和具體的應用場合。
(1) Block Lanczos 法
Block Lanczos 法可以在大多數場合中使用:
- 是一種功能強大的方法,當提取中型到大型模型(50,000 ~ 100,000 個自由度)的大量振型時(40+),這種方法很有效;
- 經常應用在具有實體單元或殼單元的模型中;
- 在具有或沒有初始截斷點時同樣有效。(允許提取高於某個給定頻率的振型);
- 可以很好地處理剛體振型;
- 需要較高的內存。
(2) 子空間法
子空間法比較適合於提取類似中型到大型模型的較少的振型 (<40)
- 需要相對較少的內存;
- 實體單元和殼單元應當具有較好的單元形狀,要對任何關於單元形狀的警告信息予以注意;
- 在具有剛體振型時可能會出現收斂問題;
- 建議在具有約束方程時不要用此方法。
(3) PowerDynamics 法
PowerDynamics 法適用於提取很大的模型(100.000個自由度以上)的較少振型(< 20)。這種方法明顯比
Block Lanczos 法或子空間法快,但是:
- 需要很大的內存;
- 當單元形狀不好或出現病態矩陣時,用這種方法可能不收斂;
- 建議只將這種方法作為對大模型的一種備用方法。
注: PowerDynamics 方法
- 子空間技術使用 Power 求解器 (PCG) 和 一致質量矩陣;
- 不執行 Sturm 序列檢查 (對於遺漏模態); 它可能影響多個重復頻率的模型;
- 一個包含剛體模態的模型, 如果你使用 PowerDynamics 方法,必須執行 RIGID 命令 (或者在分析設置對話框中指定
RIGID 設置)。
(4) 減縮法
如果模型中的集中質量不會引起局部振動,例如象梁和桿那樣,可以使用縮減法:
- 它是所有方法中最快的;
- 需要較少的內存和硬碟空間;
- 使用矩陣縮減法,即選擇一組主自由度來減小[K] 和 [M] 的大小;
- 縮減[的剛度矩陣 [K] 是精確的,但縮減的質量矩陣 [M] 是近似的,近似程度取決於主自由度的數目和位置;
- 在結構抵抗彎曲能力較弱時不推薦使用此方法,如細長的梁和薄殼。
注意:選擇主自由度的原則。
(5) 不對稱法
不對稱法適用於聲學問題(具有結構藕合作用)和其它類似的具有不對稱質量矩陣[M]和剛度矩陣[K] 的問題:
- 計算以復數表示的特徵值和特徵向量
* 實數部分就是自然頻率
* 虛數部分表示穩定性,負值表示穩定,正值表示不確定
注意: 不對稱方法採用 Lanczos 演算法,不執行 Sturm 序列檢查,所以遺漏高端頻率。
(6) 阻尼法
在模態分析中一般忽略阻尼,但如果阻尼的效果比較明顯,就要使用阻尼法:
- 主要用於回轉體動力學中,這時陀螺阻尼應是主要的;
- 在 ANSYS 的 BEAM4 和 PIPE16單元中,可以通過定義實常數中的 SPIN(旋轉速度,弧度/秒)選項來說明
陀螺效應;
- 計算以復數表示的特徵值和特徵向量。
* 虛數部分就是自然頻率;
* 實數部分表示穩定性,負值表示穩定,正值表示不確定。
注意:
- 該方法採用 Lanczos 演算法
- 不執行 Sturm 序列檢查,所以遺漏高端頻率
- 不同節點間存在相位差
- 響應幅值 = 實部與虛部的矢量
H. Lanczos演算法的該演算法的一個matlab實現程序
A代表任意一個需要三對角化的矩陣,b是任意一個向量,且b的行數與A的列數相同因為要用到v = A*q;
nmax是你想要得到的矩陣的大小,例如nmax=12,最後得到12*12的三對角矩陣。
結果輸出的是一個三對角矩陣
輸入形式為:lanczos([1 2 3;4 5 6;7 8 9],[1;1;1],12);
function T = lanczos(A, b, nmax)
m = size(A,1);
beta(1) = 0;
qprev = zeros(m, 1);
q = b / norm(b);
for n = 1:nmax
v = A*q;
alpha(n) = q' * v;
v = v - beta(n) * qprev - alpha(n) * q;
beta(n+1) = norm(v);
qprev = q;
q = v / beta(n+1);
end
beta = beta(2:end-1);
T = diag(alpha) + diag(beta,1) + diag(beta,-1);
I. 矩陣補全的經典演算法有哪些
比如說,乘冪法,反冪法,Rayleigh商迭代,子空間迭代,QR演算法,Jacobi演算法,二分法,分治法,qd演算法,MRRR演算法,Lanczos演算法 ,Arnoldi演算法,PCG演算法,圍道積分法……
方法有很多,看你的需求了
J. matlab 有lanczos函數嗎
概況這是一段Lanczos演算法的程序。Lanczos演算法是一種將矩陣通過正交相似變換變成對稱三對角矩陣的演算法,可用於求方陣的特徵值和特徵向量或一般矩陣的奇異值分解,以20世紀匈牙利數學家CorneliusLanczos命名。網路上關於該演算法的介紹要求是