切比雪夫迭代
外觀
在數值線性代數中,切比雪夫迭代法是一種用於求解線性方程組的迭代方法。此方法以俄羅斯數學家帕夫努季·切比雪夫的名字命名。
切比雪夫迭代法避免了其他非定常方法所必需的內積計算。對於某些分散式記憶體架構而言,這些內積計算是效率上的一大瓶頸。避免內積計算的代價是,該方法需要對係數矩陣 A 的譜有足夠的了解,即需要最大特徵值的上界估計和最小特徵值的下界估計。對於非對稱矩陣 A,此方法也有相應的修改版本。
MATLAB 範例程式碼
<syntaxhighlight lang="matlab"> function [x] = SolChebyshev002(A, b, x0, iterNum, lMax, lMin)
d = (lMax + lMin) / 2; c = (lMax - lMin) / 2; preCond = eye(size(A)); % 預處理器 x = x0; r = b - A * x;
for i = 1:iterNum % size(A, 1)
z = linsolve(preCond, r);
if (i == 1)
p = z;
alpha = 1/d;
else if (i == 2)
beta = (1/2) * (c * alpha)^2
alpha = 1/(d - beta / alpha);
p = z + beta * p;
else
beta = (c * alpha / 2)^2;
alpha = 1/(d - beta / alpha);
p = z + beta * p;
end;
x = x + alpha * p;
r = b - A * x; %(= r - alpha * A * p)
if (norm(r) < 1e-15), break; end; % 必要時停止
end;
end </syntaxhighlight> 程式碼譯自
與。
參見
- 迭代法. 線性系統
- 數值分析主題列表. 求解線性方程組
- 雅可比迭代法
- 高斯-賽德爾迭代法
- 修正理查森迭代法
- 逐次超鬆弛法
- 共軛梯度法
- 廣義最小殘差法
- 雙共軛梯度法
- 迭代範本函式庫
- IML++
參考資料
外部連結
- 切比雪夫迭代法. 來自 MathWorld
- 切比雪夫迭代法. Go 語言實作
Category:數值線性代數 Category:迭代法