Tải bản đầy đủ (.pdf) (46 trang)

Thuật giải jacobi cho hệ phương trình tuyến tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (305.26 KB, 46 trang )

THUẬT TỐN JACOBI CHO HỆ
PHƯƠNG TRÌNH TUYẾN TÍNH

.

Khoa Tốn - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.


.
.

.

.

.

.

1 / 46

.


1

LỜI MỞ ĐẦU

2

Ý TƯỞNG

3

VÍ DỤ

4


THUẬT TỐN

5

CODE MATLAB

6

ƯU ĐIỂM VÀ NHƯỢC ĐIỂM

7

ĐIỀU KIỆN HỘI TỤ

8

CƠNG THỨC SAI SỐ
.

Khoa Tốn - Tin học

.

.

.

.

.


. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.

.

.

.

2 / 46

.



1. LỜI MỞ ĐẦU

Cho hệ phương trình tuyến tính:

a11 x1 + a12 x2 + ... + a1n xn = b1



a x + a x + ... + a x = b
21 1
22 2
2n n
2

...



an1 x1 + an2 x2 + ... + ann xn = bn

.

Khoa Toán - Tin học

.

.

.


.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.

.

.

.


3 / 46

.


1. LỜI MỞ ĐẦU

Hệ phương trình trên được cho bởi ma trận:
 

 
b1
x1
a11 a12 . . . a1n
 
a11 a12 . . . a1n  x2 
 .
  .  = b.2 
.
.
.
 .. 
 ..
..
. . ..   .. 
xn
bn
a11 a12 . . . a1n
Vấn đề đặt ra là tìm nghiệm x = (x1 , x2 , ..., xn )


.

Khoa Toán - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.


.

.

.

.

4 / 46

.


1. LỜI MỞ ĐẦU

Phương pháp đúng - phương pháp trực tiếp (Cramer, Gauss, ...): Đặc
điểm của các phương pháp này là sau một số hữu hạn các bước tính.
Ta nhận được nghiệm đúng nếu trong q trình tính khơng làm tròn
số.
Phương pháp gần đúng - phương pháp xấp xỉ (Jacoibi ,
Gauss-Seidel, ...): Thông thường ta cho ẩn số một giá trị ban đầu, từ
giá trị này tính giá trị nghiệm gần đúng tốt hơn theo một quy tắc nào
đó. Quá trình này được lặp lại nhiều lần với một số điều kiện nhất
định, ta nhận được nghiệm gần đúng.
.

Khoa Toán - Tin học

.


.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.

.


.

.

5 / 46

.


1. LỜI MỞ ĐẦU

Lịch sử các phương pháp lặp giải hệ pt tuyến tính
- Tài liệu tham khảo sớm nhất về cách tiếp cận bằng phương pháp lặp để giải
quyết hệ phương trình Ax = b dường như được chứa trong một bức thư của Gauss
gửi cho sinh viên Gerling ngày 26 tháng 12 năm 1823, trong bối cảnh giải các bài
tốn bình phương tối thiểu thơng qua các phương trình thơng thường.
- Cuộc trao đổi trong bức thư này là về việc áp dụng phương pháp bình phương
tối thiểu mà Gauss đã phát minh ra vào đầu những năm 1800, vào ngành trắc địa.

.

Khoa Toán - Tin học

.

.

.

.


.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.

.

.

.

6 / 46


.


1. LỜI MỞ ĐẦU

Lịch sử các phương pháp lặp giải hệ pt tuyến tính
- Sau đó, năm 1845 Jacobi đã phát triển một phương pháp lặp đơn giản của riêng
mình, để giải các phương trình thơng thường cho các bài tốn bình phương tối
thiểu phát sinh trong các phép tính thiên văn. Trong đó sửa đổi mới nhất khơng
được đưa ngay vào hệ.
- Trong bài báo đó, ơng giới thiệu một cách sửa đổi hệ thống tuyến tính bằng cách
sử dụng cái mà ngày nay chúng ta gọi là "phép quay Jacobi" để tăng tốc độ hội tụ
của sự lặp lại, Jacobi đã giới thiệu kỹ thuật sử dụng các phép quay được lựa chọn
một cách khéo léo, đã được giới thiệu trong một bài báo xuất hiện một năm sau đó
để giải các vấn đề về giá trị riêng đối xứng.
.

Khoa Toán - Tin học

.

.

.

.

.

. . . .

. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.

.

.

.

7 / 46

.


1. LỜI MỞ ĐẦU


Lịch sử các phương pháp lặp giải hệ pt tuyến tính
- Năm 1874 một Người Đức, Seidel, đã giới thiệu phương pháp lặp của riêng
mình. Ơng mơ tả như một phương pháp cải tiến hơn so với phương pháp của
Jacobi. Seidel lưu ý rằng các ẩn số không cần phải được xử lý theo chu kỳ (trên
thực tế, ơng khun khơng nên làm như vậy!); thay vì, người ta có thể chọn cập
nhật ở mỗi bước mà không biết với lượng dư lớn nhất.
- Trong các tài liệu sau đó, phương pháp này thường được gọi là phương pháp của
Seidel. Bây giờ nó được gọi là phương pháp Gauss-Seidel.
- Một trong những điểm thu hút chính của phiên bản tuần hồn của phép lặp
Gauss-Seidel là nó có thể dễ dàng được lập trình hoặc “cơ giới hóa”.
.

Khoa Toán - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .


. . . .
. . . .

.
.

.

.
.

.

.

.

.

8 / 46

.


1. LỜI MỞ ĐẦU

Lịch sử các phương pháp lặp giải hệ pt tuyến tính
- Vào đầu thế kỷ 20, chúng ta ghi nhận những đóng góp quan trọng sau: Phương
pháp của Richardson (1910); phương pháp của Liebmann (1918). Những bài báo

này đánh dấu việc sử dụng phương pháp lặp đầu tiên trong giải pháp xấp xỉ hiệu
số hữu hạn cho elliptic PDEs.
- Phương pháp của Richardson ngày nay vẫn còn được biết đến nhiều và có thể
được coi là bước tăng tốc của phương pháp Jacobi nhờ các yếu tố đơn giản quá
mức. Phương pháp do Liebmann đề xuất lại hướng đến việc giải các phương trình
Poisson rời rạc. Phương pháp khơng khác gì phương pháp Gauss-Seidel, và vì lý
do này, phép lặp Gauss-Seidel khi áp dụng cho các phương trình vi phân từng
phần thường được gọi là phương pháp Liebmann.
.

Khoa Toán - Tin học

.

.

.

.

.

. . . .

. . . .

. . . .

. . . .


. . . .

. . . .

.

.

.

.

.

.

.

.

.

9 / 46

.


2. Ý TƯỞNG CỦA PHƯƠNG PHÁP LẶP JACOBI

Đối với các phương pháp lặp, mục tiêu của chúng ta là biến hệ phương trình

Ax = b
về dạng
x = Tx + c
với ma trận T và vector c cố định.
Lúc này ta sẽ chọn trước một x(0) là giá trị ban đầu cho vịng lặp và ta sẽ
tính dãy nghiệm xấp xỉ:
x(k) = Tx(k−1) + c
.

Khoa Toán - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .


.
.

.

.
.

.

.

.

.

10 / 46

.


2. Ý TƯỞNG CỦA PHƯƠNG PHÁP LẶP JACOBI

Giả sử rằng trong hệ phương trình Ax = b, ma trận A có tất cả các phần tử
trên đường chéo chính khác 0 (trong trường hợp có aii = 0, ta có thể đổi chỗ
các dòng của A).
Ta tách ma trận A thành hai ma trận D và S như sau:

.


Khoa Toán - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.
.

.


.

.

.

11 / 46

.


2. Ý TƯỞNG CỦA PHƯƠNG PHÁP LẶP JACOBI



a11 a12
a
 21 a22
A= .
..
 ..
.
an1 an2

a11 0
 0 a
22

= .

..
 ..
.
0

0

. . . a1n



. . . a2n 


...

.. 
. 

. . . ann
...
...

...

0



0 





0

−a
 21

..   ..
. 

. . . ann

−a12 . . . −a1n
0



. . . −a2n 


.. 
. 

..
...
 .
.
−an1 −an2 . . .


0

=D−S
.

Khoa Toán - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.


.

.
.

.

.

.

.

12 / 46

.


2. Ý TƯỞNG CỦA PHƯƠNG PHÁP LẶP JACOBI

Vì vậy, hệ phương trình
Ax = b
có thể viết dưới dạng
( D − S) x = b.

Hay
Dx = Sx + b.
⋄ Chứng minh D khả nghịch

D khả nghịch khi và chỉ khi detD ̸= 0

D là ma trận đường chéo chính với cái phần tử trên đường chéo chính khác 0
.

Khoa Tốn - Tin học

.

.

.

.

.

. . . .
. . . .

. . . .
. . . .

. . . .
. . . .

.
.

.

.

.

.

.

.

.

13 / 46

.


2. Ý TƯỞNG CỦA PHƯƠNG PHÁP LẶP JACOBI










a11 0 . . . 0


a22 0 . . . 0









×