Professional Documents
Culture Documents
{
a11 . x 1 +…+ a1 n . x n=b1
a21 . x 1 +…+a 2 n . x n=b2
…
an 1 . x 1 +…+a nn . x n=b n
Ax=b
Giả sử hệ có nghiệm duy nhất, với trường hợp A lớn và là ma trận thưa (sparse matrix, đa số các
phần tử là 0), việc đi giải tổng quát nghiệm:
x= A−1 b
Tốn rất nhiều sức mạnh tính toán và không hiệu quả, thay vào đó đối với tùy dạng ma trận A
khác nhau, ta có các phương pháp khác nhau để tìm nghiệm x hiệu quả hơn.
Phương pháp lặp Conjugate gradient được sử dụng để tìm nghiệm trong hệ trên khi A đối xứng
và xác định dương.
1 T T
f ( x )= x Ax−b x
2
⟨ u , v ⟩=uT Av =0
Định nghĩa: Tập hợp các vector { d 0 , … , d k } ⊂ R được gọi là A-trực giao (A-orthogonal) nếu:
n
T
d i A d j=0 ∀ i ≠ j
Định lý: Cho A xác định dương, nếu { d 0 , … , d k } A-trực giao, thì { d 0 , … , d k } độc lập tuyến tính.
1
Ta có thể viết lại hàm f dưới dạng: f ( x )= ⟨ x , x ⟩ −b x
T
2
i=0
¿
Mà A x =b:
n−1
b=∑ α i A d i
i=0
T
Nhân 2 vế với d k bất kì, ta có:
n−1
d Tk b=∑ α i d Tk A d i
i=0
Mà ⟨ d i , d k ⟩ =0 , ∀ i ≠ k , nên ta có:
T T
d k b=α k d k A d k
i=0
Dễ thấy, việc đi tìm các vector { d 0 , … , d n−1 } từ A trước không hiệu quả, nên phương pháp CG tạo
ra các vector trên trong quá trình tìm x ¿, các bước của thuật toán như sau:
1) Dự đoán nghiệm x 0.
2) r 0 ≔b−A x 0
3) Nếu r 0 nhỏ tới hạn (ở mức chính xác chấp nhận được) thì trả x 0 là kết quả.
4) d 0 ≔r 0
5) k ≔0
6) Bắt đầu vòng lặp
r Tk r
7) α k ≔ T
dk A dk
8) x k+1 ≔ x k + α k d k
9) r k +1 ≔ r k −α k A d k
10) Nếu r k +1nhỏ tới hạn thì trả r k +1 là kết quả.
T
r k+1 + r k+1
11) β k ≔ T
rk rk
12) d k +1 ≔r k+1 + β k d k
13) k ≔k + 1
14) Quay lại bước bắt đầu vòng lặp
15) Trả x k+1 là kết quả.
Ta thấy, nếu không có sai số tính toán, phương pháp CG lặp không quá n bước, tuy
nhiên trong quá trình tính toán có sai số nên phương pháp CG chỉ ra được nghiệm gần
đúng.