Phương pháp Gauss-Seidel

Trong giải tích số, phương pháp Gauss-Seidel hay còn gọi là phương pháp lặp Gauss-Seidel, phương pháp Liebmann hay phương pháp tự sửa sai là một phương pháp lặp được sử dụng để giải một hệ phương trình tuyến tính tương tự như phương pháp Jacobi. Nó được đặt tên theo hai nhà toán học người Đức Carl Friedrich Gauss và Philipp Ludwig von Seidel. Mặc dù phương pháp này có thể áp dụng cho bất kỳ ma trận nào không chứa phần tử 0 (không) trên các đường chéo, nhưng tính hội tụ chỉ xảy ra nếu ma trận hoặc là ma trận đường chéo trội, hoặc là ma trận đối xứng đồng thời xác định dương.

Công thức

Cho hệ phương trình tuyến tính vuông gồm n phương trình với nghiệm số x:

A x = b {\displaystyle A\mathbf {x} =\mathbf {b} }

Với:

A = [ a 11 a 12 a 1 n a 21 a 22 a 2 n a n 1 a n 2 a n n ] , x = [ x 1 x 2 x n ] , b = [ b 1 b 2 b n ] . {\displaystyle A={\begin{bmatrix}a_{11}&a_{12}&\cdots &a_{1n}\\a_{21}&a_{22}&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\cdots &a_{nn}\end{bmatrix}},\qquad \mathbf {x} ={\begin{bmatrix}x_{1}\\x_{2}\\\vdots \\x_{n}\end{bmatrix}},\qquad \mathbf {b} ={\begin{bmatrix}b_{1}\\b_{2}\\\vdots \\b_{n}\end{bmatrix}}.}

Sau đó A có thể được tách thành một ma trận tam giác dưới L {\displaystyle \scriptstyle L_{*}} , và một ma trận tam giác ngặt trên U:

A = L + U where L = [ a 11 0 0 a 21 a 22 0 a n 1 a n 2 a n n ] , U = [ 0 a 12 a 1 n 0 0 a 2 n 0 0 0 ] . {\displaystyle A=L_{*}+U\qquad {\text{where}}\qquad L_{*}={\begin{bmatrix}a_{11}&0&\cdots &0\\a_{21}&a_{22}&\cdots &0\\\vdots &\vdots &\ddots &\vdots \\a_{n1}&a_{n2}&\cdots &a_{nn}\end{bmatrix}},\quad U={\begin{bmatrix}0&a_{12}&\cdots &a_{1n}\\0&0&\cdots &a_{2n}\\\vdots &\vdots &\ddots &\vdots \\0&0&\cdots &0\end{bmatrix}}.}

Hệ phương trình tuyến tính được viết lại thành:

L x = b U x {\displaystyle L_{*}\mathbf {x} =\mathbf {b} -U\mathbf {x} }

Phương pháp Gauss–Seidel là một phương pháp lặp để tính giá trị của x ở bên trái phương trình, bằng cách thế các giá trị x ở phép tính trước vào vế phải phương trình. Cụ thể phương pháp có thể biểu diễn lại bằng phương trình sau:

x ( k + 1 ) = L 1 ( b U x ( k ) ) . {\displaystyle \mathbf {x} ^{(k+1)}=L_{*}^{-1}(\mathbf {b} -U\mathbf {x} ^{(k)}).}

Tham khảo

  • Black, Noel and Moore, Shirley, "Gauss-Seidel Method" từ MathWorld.

Liên kết ngoài

  • Gauss–Seidel from www.math-linux.com Lưu trữ 2013-03-05 tại Wayback Machine
  • Module for Gauss–Seidel Iteration
  • Gauss–Seidel From Holistic Numerical Methods Institute
  • Gauss Siedel Iteration from www.geocities.com
  • The Gauss-Seidel Method
  • Bickson
  • Matlab code Lưu trữ 2009-08-12 tại Wayback Machine
  • C code example