1. Trang chủ
  2. » Thể loại khác

Về kỹ thuật tiền tác động giải hệ phương trình tuyến tính cỡ lớn

44 605 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 44
Dung lượng 413,38 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Như trong chương 1 sẽ chỉ ra, giải hệ phương trình theophương pháp Cramer cực kỳ đắt đỏ và vì thế không phù hợp với hệ cơ sở từ vừa phảiđến lớn.Để khắc phục điều đó, người ta đã tìm ra p

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC

Trang 2

TRƯỜNG ĐẠI HỌC KHOA HỌC

LUẬN VĂN THẠC SĨ TOÁN HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS NGUYỄN THANH SƠN

Thái Nguyên - 2015

Trang 3

Mục lục

1.1 Hệ phương trình tuyến tính 4

1.1.1 Định lí Kronecker-Capelli 4

1.1.2 Định lí Cramer 5

1.2 Phương pháp giải trực tiếp 5

1.2.1 Phương pháp khử Gauss 5

1.2.2 Phương pháp phân tích LU 6

1.3 Phương pháp lặp cổ điển 8

1.3.1 Phương pháp lặp đơn 8

1.3.2 Phương pháp Jacobi 8

1.3.3 Phương pháp Gauss - Seidel 9

1.4 Phương pháp không gian con Krylov 10

1.4.1 Không gian con Krylov và Thuật toán Arnoldi 10

1.4.2 Phương pháp CG 12

1.4.3 Phương pháp GMRES 14

1.4.4 Phương pháp Arnoldi 15

2 Kĩ thuật tiền tác động 18 2.1 Tiền tác động trong các phép lặp cổ điển 18

Trang 4

2.1.1 Jacobi, SOR(Successive Overrelaxtion) và SSOR(Symetric

SOR) nhân tử tiền tác động 18

2.2 Kĩ thuật tiền tác động tổng quát 21

2.2.1 Giới thiệu 21

2.2.2 Phân tích ILU 22

2.2.3 Phân tích Cholesky thiếu (IC) 23

2.3 Tiền tác động khối thiếu 23

2.3.1 Phân tích Cholesky khối thiếu 23

2.3.2 Ý tưởng phân chia miền 25

2.3.3 Ma trận ba đường chéo khối 25

2.3.4 Ma trận với cấu trúc đều 26

2.3.5 Xấp xỉ nghịch đảo 26

2.3.6 Phép lặp toàn cục 27

2.4 Kỹ thuật tiền tác động với các phương pháp lặp 28

2.4.1 PCG 28

2.4.2 PGMRES 29

3 Ví dụ số 35 3.1 Phương pháp CG và PCG 35

3.2 Phương pháp GMRES và PGMRES 36

3.3 Kết luận 37

Trang 5

Lời cảm ơn

Tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc đến thầy giáo, TS NguyễnThanh Sơn đã tận tình chỉ bảo, hướng dẫn tôi trong suốt thời gian làm luận văn.Tôi xin chân thành cảm ơn sự giúp đỡ quý báu của các thầy, cô giáo đã tham giagiảng dạy khóa học của Khoa Toán - Tin trường Đại học Khoa học - Đại học TháiNguyên, đã truyền thụ những kiến thức Tôi xin cảm ơn sự động viên, giúp đỡ, chỉbảo của gia đình, bạn bè, đồng nghiệp, Ban chuyên môn, Ban giám hiệu, Ban chấphành Đoàn trường THPT Phạm Ngũ Lão - Ân Thi - Hưng Yên đã dành cho tôi trongquá trình nghiên cứu và hoàn thành luận văn

Luận văn được thực hiện trong khuôn khổ của Đề tài Nghiên cứu cơ bản trongKhoa học Tự nhiên được tài trợ bởi Quỹ phát triển Khoa học và Công nghệ Quốc giaNAFOSTED, mã số 101.01-2014.36

Thái Nguyên, tháng 11 năm 2015

Phạm Trịnh Cương Chính

Học viên Cao học Toán K7Y, Trường Đại học Khoa học - Đại học Thái Nguyên

Trang 6

hệ phương trình Tuy nhiên, cách tiếp cận này chỉ được dùng trong học đường vớinhững hệ chỉ có vài ẩn số Như trong chương 1 sẽ chỉ ra, giải hệ phương trình theophương pháp Cramer cực kỳ đắt đỏ và vì thế không phù hợp với hệ cơ sở từ vừa phảiđến lớn.

Để khắc phục điều đó, người ta đã tìm ra phương pháp khử Gauss, phương phápdựa trên phân tích LU Chúng đều là những phương pháp giải trực tiếp và có độphức tạp tính toán đa thức bậc ba Mặc dù, đây là bước tiến đáng kể nhưng chúngcũng chỉ áp dụng được cho hệ có kích cỡ vừa phải Để có thể giải được những hệphương trình cỡ lớn, ta buộc phải dùng những phương pháp lặp Chúng mặc dù lànhững phương pháp gián tiếp, tính nghiệm xấp xỉ nhưng lại vô cùng hiệu quả chonhững hệ lớn Bên cạnh những phương pháp lặp cổ điển như: Jacobi, Gauss - Seidel,

Trang 7

những phương pháp sử dụng công cụ hiện đại như phương pháp CG hay phươngpháp GMRES đang trở thành những công cụ không thể thiếu trong toán học tínhtoán Như sẽ chỉ ra trong chương 1, tốc độ hội tụ của phương pháp này lại phụ thuộcchặt chẽ vào số điều kiện của ma trận hệ số Nếu ma trận có số điều kiện tốt, phươngpháp hội tụ rất nhanh Tuy nhiên, nếu không may mắn, ma trận hệ số có số điều kiệnxấu, phương pháp hội tụ chậm Câu hỏi đặt ra là làm thế nào để thay đổi thực tế đó?

Kỹ thuật tiền tác động (preconditioning), là một câu trả lời

Chính vì tầm quan trọng của kỹ thuật trên, chúng tôi đã chọn "Về kỹ thuật tiềntác động giải hệ phương trình tuyến tính cỡ lớn" là đề tài nghiên cứu cho luận vănthạc sĩ

Mục đích chính của luận văn là nghiên cứu, trình bày một cách có hệ thống việcgiải hệ phương trình tuyến tính từ những phương pháp thô sơ cho hệ nhỏ, đến nhữngphương pháp hiện đại cho hệ lớn Cái đích quan trọng nhất của luận văn là trình bàymột số kỹ thuật tiền tác động và một số thuật toán lặp dưới tiền tác động, với ý địnhchỉ ra rằng tiền tác động là một công cụ góp phần quan trọng vào giải hệ phươngtrình tuyến tính cỡ lớn

Đối tượng nghiên cứu của đề tài là phương pháp tiền tác động để giải lặp hệphương trình tuyến tính Phạm vi nghiên cứu là những kỹ thuật tổng quát và cáchthức khi áp dụng những kỹ thuật đó vào hai phương pháp lặp thông dụng nhất là CG

và GMRES

Phương pháp nghiên cứu chính được sử dụng là đọc hiểu những tài liệu kinh điển

và trình bày lại một cách có hệ thống Thêm vào đó, chúng tôi cũng thực hiện kiểmtra một số phương pháp thông qua việc lập trình trên MATLAB

Ý nghĩa khoa học lớn nhất của đề tài là thực hiện một nghiên cứu liền mạch cácphương pháp giải hệ phương trình tuyến tính, từ đơn giản đến phức tạp và trình bàylại một cách có hệ thống và dễ hiểu

Sau khi bảo vệ luận văn là một tài liệu tham khảo tốt cho sinh viên ngành toán vàhọc viên cao học chuyên ngành Toán ứng dụng, với thiên hướng toán học tính toán

Để đạt được các mục tiêu trên, luận văn được trình bày như sau: Chương 1 được

Trang 8

dùng để trình bày những kiến thức chuẩn bị vô cùng quan trọng trong như: Định líKronecker - Capelli, định lí Cramer, một số phương pháp giải trực tiếp (khử Gauss,phân tích LU) và một số phương pháp lặp cổ điển (lặp đơn, Jacobi, Gauss - Seidel),phương pháp không gian con Krylov, làm kiến nền tảng cho nghiên cứu kỹ thuậttiền tác động Nội dung chính của chương 2 là kỹ thuật tiền tác động tổng quát, kỹthuật tiền tác động khối thiếu, kỹ thuật tiền tác động với các phương pháp lặp Trongchương 3 chúng tôi trình bày một số ví dụ số để minh họa, kiểm chứng cho thuậttoán.

Mặc dù đã cố gắng hết sức, nhưng vì điều kiện thời gian nghiên cứu hạn hẹp bảnluận văn không thể tránh khỏi những thiếu xót Rất mong nhận được những ý kiếnđóng góp quý báu từ các thầy, cô giáo và các anh, chị, em, bạn bè và đồng nghiệp

Thái Nguyên, ngày 01 tháng 11 năm 2015

Trang 9

Chương 1

Kiến thức chuẩn bị

Chương này được viết dựa trên tài liệu tham khảo [1],[2]

Trước tiên, chúng ta xét hệ phương tình tuyến tính tổng quát dạng

trong đó A là ma trận cỡ n × n, b là ma trận cột Ma trận A được gọi là ma trận hệ

số, b được gọi là ma trận hệ số tự do

1.1 Hệ phương trình tuyến tính

Khi giải hệ phương trình tuyến tính (1.1) ta thường quan tâm là khi nào thì nó cónghiệm và nghiệm của nó được tìm thấy bằng cách nào Câu hỏi về sự tồn tại nghiệmcủa hệ (1.1) sẽ được giải đáp bằng Định lí Kronecker-Capelli

1.1.1 Định lí Kronecker-Capelli

Định lí 1.1 (Định lí Kronecker-Capelli) Hệ phương trình tuyến tính (1.1) có nghiệm

khi và chỉ khi hạng của ma trận A bằng hạng của ma trận bổ sung A Trong đó, ma trận bổ sung là ma trận (A|b) được xác định bằng cách đặt thêm ma trận cột tự do b vào phía bên phải của ma trận A.

Định lí Kronecker-Capelli chỉ là điều kiện cần và đủ để hệ (1.1) có nghiệm, màchúng ta chưa thể có được công thức nghiệm của nó Trong trường hợp A là ma trậnvuông cấp n có định thức detA 6= 0, ta có Định lí Cramer

Trang 10

1.1.2 Định lí Cramer

Định lí 1.2 (Định lí Cramer) Gọi Aj là ma trận nhận được từ ma trận A bằng cách thay cột thứ j bằng cột b Khi đó, hệ (1.1) có nghiệm duy nhất và xj được tính bởi công thức

xj = detAj

detA.

Tuy nhiên, trong thực hành người ta không dùng công thức này để tính nghiệm

vì số lượng phép tính quá lớn Có thể tính toán được rằng độ phức tạp tính toán củaphương pháp này là O(n.n!)

1.2 Phương pháp giải trực tiếp

1.2.1 Phương pháp khử Gauss

Phương pháp khử Gauss là phương pháp giải hệ phương trình tuyến tính dùngcách khử dần các ẩn để đưa hệ phương trình đã cho về một dạng tam giác trên rồigiải hệ tam giác này từ dưới lên trên mà ta không phải tính một định thức nào.Phương pháp này được thực hiện qua các bước sau:

• Bước 0: Dùng phương trình đầu tiên để khử x1 trong n − 1 phương trình cònlại Giả sử a11 6= 0 Để cho công thức đơn giản, trước khi khử ta có thể chiaphương trình thứ nhất cho a11 Cụ thể, để khử x1 ở hàng thứ k(k = 2, 3, n)

ta phải tính lại các hệ số akj ở hàng thứ k (j = 1, 2, , n + 1) như sau:

akj = akj − a1jak1

a11

• Bước 1: Dùng phương trình thứ 2 để khử x2 trong n − 2 phương trình cònlại phía sau Giả sử a22 6= 0 Để cho công thức đơn giản, trước khi khử ta cóthể chia phương trình thứ hai cho a22 Cụ thể, để khử x2 ở hàng thứ k(k =

3, 4, n)ta phải tính lại các hệ số akj ở hàng thứ k (j = 2, , n + 1) như sau:

akj = akj − a2jak2

a22

Trang 11

.

• Bước i: Dùng phương trình i để khử xi trong các phương trình thứ i + 1, i +

2, , n Giả sử aii 6= 0 Để cho công thức đơn giản, trước khi khử ta có thể chiaphương trình thứ i cho aii Cụ thể, để khử xi ở hàng thứ k (k = i + 1, , n)

ta phải tính lại các hệ số akj ở hàng thứ k (j = i, , n + 1) như sau:

akj = akj − aijaki

aii

• Bước n − 1:Dùng phương trình thứ n − 1 để khử xn−1trong phương trình thứ

n Giả sử an−1 6= 0 Để cho công thức đơn giản, trước khi khử ta có thể chiaphương trình thứ n − 1 cho an−1 Cụ thể, để khử xn−1 ở hàng thứ n ta phảitính lại các hệ số anj ở hàng thứ n (j = n − 1, n, n + 1) như sau:

i) Khái niệm phân tích LU

Ở nhiều tình huống trong khoa học và kỹ thuật, vế phải đóng vai trò như một dữliệu đầu vào hay tín hiệu điều khiển nên thay đổi liên tục trong khi ma trận hệ số Abiểu thị quy luật của quá trình nên không thay đổi Khi đó, ta phải giải một số hệphương trình có cùng ma trận hệ số nhưng lại có vế phải khác nhau Phương phápkhử Gauss khi đó không còn thích hợp Thay vào đó, ta sử dụng phân tích LU của

A

Trước tiên, ta nhắc qua khái niệm phân tích LU Người ta đã chỉ ra với mọi matrận vuông A, luôn tồn tại ma trận hoán vị P , ma trận tam giác dưới L và ma trậntam giác trên U sao cho P A = LU Ý nghĩa của khẳng định là bằng cách hoán đổi

Trang 12

các hàng của ma trận A, A luôn chấp nhận một phân tích LU Ta cũng biết rằng hoánđổi vị trí các hàng không ảnh hưởng gì đến hệ phương trình tuyến tính Vì thế, khôngmất tính tổng quát, ta luôn giả sử có thể phân tích A = LU.

Trước hết, chúng ta biến đổi A = LU Cũng từ quan hệ A = LU, ta dễ dàng suy

ra nếu A khả nghich thì L, U cũng khả nghịch và vì thế có các phần tử chéo kháckhông Khi đó, thay vì hệ (1.1), ta phải giải hai hệ phương trình

Ly = bvà Ux = y

ii) Độ phức tạp tính toán

Người ta đã chỉ ra phân tích LU của ma trận cỡ n × n có độ phức tạp O(n3).Ngoài ra, ta dễ dàng tính được giải phương trình với ma trận hệ số có dạng tamgiác có độ phức tạp O(n2) Do giải phương trình bằng phương pháp khử Gauss cũngtốn O(n3)phép tính nên việc thêm một bước phụ tính toán phân tích LU về cơ bảnkhông làm tăng thời gian tính toán so với phương pháp khử Gauss nếu ta chỉ giải mộtphương trình

Với L, U là 2 ma trận tam giác thì việc tính y từ b, sau đó x từ y là đơn giản.Tuy nhiên, khi đặt vào tính huống giải k hệ có cùng ma trận hệ số thì ưu việt củaphương pháp phân tích LU mới hiện rõ Đối với phương pháp khử Gauss, tổng sốphép tính sẽ là O(kn3) trong khi đối với phương pháp dựa trên phân tích LU, tổng

số phép tính sẽ là O(n3+ 2kn2) Ta sẽ minh họa điều đó qua ví dụ sau đây

Ví dụ 1.1 Ta chạy một chương trình trên phần mềm MATLAB so sánh thời gian giải

một hệ phương trình tuyến tính với ma trận hệ số là ma trận vuông cấp n = 2000ngẫu nhiên, bằng hai phương pháp Gauss và phân tích LU thì được kết quả như sau

• Thời gian tính toán sử dụng phương pháp Gauss là 38.4386 giây

• Thời gian tính toán sử dụng phương pháp phân tích LU là 5.3352 giây

Ta thấy rằng những phương pháp giải chính xác ở trên đều có độ phức tạp lớn

Nó rõ ràng không phù hợp cho những hệ lớn Đối với những hệ như vậy, cách thôngthường là giải xấp xỉ thông qua một lược đồ lặp

Trang 13

Để thực hiện phép lặp ta chọn một vectơ ban đầu x(0), sau đó tính các x(i),

i = 1, 2, theo công thức lặp sau

x(i) = Cx(i−1)+ d,

cho tới khi nào thoả mãn điều kiện dừng

Đánh giá sai số của phương pháp

kx(k)− x∗k ≤ kCk

1 − kCkkx(k)− x(k−1)k,hoặc

Phép lặp Jacobi xác định thành phần thứ i của xấp xỉ tiếp theo nhằm mục đíchtriệt tiêu thành phần thứ i của véc tơ thặng dư, trong phần sau đây, ξik sẽ là kí hiệu

Trang 14

thành phần thứ i của bước lặp xk và βilà kí hiệu thành phần thứ i của vế phải b Vìvậy, ta viết

(b − Axk+1)i = 0,trong đó(y)i là đại diện cho thành phần thứ i sẽ cho ta

aiiξi(k+1) = −

nXj=1,j6=i

aijξj(k+1)

, i = 1, , n (1.2)Đây chính là dạng phần tử của phép lặp Jacobi Tất cả những thành phần của bướclặp xk có thể nhóm vào thành vectơ xk+1 Cách kí hiệu trên có thể được sử dụng đểviết lại phép lặp Jacobi (1.2) dưới dạng vectơ như sau

xk+1= D−1(E + F )xk+ D−1b (1.3)

1.3.3 Phương pháp Gauss - Seidel

Tương tự, phép lặp Gauss-Seidel sẽ sửa thành phần thứ i của nghiệm xấp xỉ hiệntại theo thứ tự i = 1, 2, , n sao cho triệt tiêu thành phần thứ i của vectơ thặng dư.Tuy nhiên, lần này nghiệm xấp xỉ được cập nhật ngay lập tức sau khi thành phần mớiđược xác định, kí hiệu là ξi,i = 1, 2, , n, thành phần này có thể được thay đổi trongkhuôn khổ vectơ mà được định nghĩa lại tại mỗi bước Vì thế, do thứ tự là i = 1, 2, thì kết quả tại bước thứ i là

βi−

i−1Xj=1

aijξj(k+1)− aiiξi(k+1) −

nXj=i+1

aijξj(k)= 0, (1.4)dẫn đến biểu thức lặp

ξi(k+1) = 1

aii −

i−1Xj=1

aijξj(k+1) −

nXj=i+1

aijξj(k)+ βi

!, i = 1, , n (1.5)

và phương trình xác định (1.4) có thể được viết là

b + Exk+1− Dxk+1+ F xk = 0,

Trang 15

dẫn đến dạng vectơ của phép lặp Gauss - Seidel là

xk+1= (D − E)−1F xk + (D − E)−1b

Tính toán xấp xỉ mới trong biểu thức (1.5) sẽ đòi hỏi nhân nghịch đảo của một

ma trận chéo D trong (1.4) Vì vậy xấp xỉ mới trong phép lặp Gauss-Seidel có thểđược xác định hoặc bằng giải hệ tam giác với ma trận hệ số D − E hoặc có thể xácđịnh từ bằng quan hệ (1.5) Phép lặp ở trên là phép lặp tiến Gauss-Seidel, bây giờ ta

sẽ nói về phép lặp Gauss-Seidel lùi được định nghĩa như sau

(D − F )xk+1= Exk + b = 0, (1.6)tương đương với cách thay đổi hệ tọa độ theo thứ tự n, n − 1, , 2, 1

Ta thấy phép lặp Gauss-Seidel và phép lặp Jacobi đều có dạng

M xk+1= N xk+ b = (M − A)xk + b, (1.7)trong đó

là một tách của A Nếu M = D thì ta có phép lặp Jacobi, còn nếu M = D − E thì ta

có phép lặp tiến Gauss-Seidel và M = D − F thì ta có phép lặp tiến Gauss-Seidel.Phép lặp có dạng (1.7) có thể áp dụng (1.8) nếu M không suy biến

1.4 Phương pháp không gian con Krylov

1.4.1 Không gian con Krylov và Thuật toán Arnoldi

Trang 16

Một cơ sở tự nhiên của không gian Krylov Km(x)là các vectơ x, Ax, cho đếnkhi hệ này vẫn độc lập tuyến tính Tuy nhiên, chúng thường có xu hướng gần phụthuộc tuyến tính Điều này cần phải tránh trong tính toán Do đó, thay vì sử dụng cơ

sở tự nhiên, người ta tìm cách xây dựng một cơ sở trực chuẩn của nó Phương phápArnoldi là một lựa chọn để thực hiện việc đó

Arnoldi tính cơ sở của không gian Krylov Km Ta sẽ tính Km(A, v) với thuậttoán

Algorithm 1.1 Thuật toán Arnoldi cơ sở (arn_basic)

Trang 17

Algorithm 1.2 Thuật toán Arnoldi với MGS (arn_mgs)

Chú ý 1.1 Vẫn có trường hợp phương pháp MGS không hoạt động tốt Điều đó làm

ảnh hưởng tới tính trực chuẩn của hệ được sinh ra Ta có 2 phương án để xử lí

• Trực chuẩn hóa kép

• Sử dụng Thuật toán Householder

Trình bày chi tiết về các phương pháp này có thể được tìm thấy trong [3]

Trang 18

Đặt P = {pi, i = 1, n} là một cơ sở trực chuẩn theo h., iA Theo định lí schmidt thì P luôn tồn tại Giả sử x∗là nghiệm duy nhất của (1.1), xét biểu diễn

Gram-x∗ =

nXi=1

αipi

Khi đó,

b − Ax∗ =

nXi=1

αiApi, ∀pj ∈ P,suy ra:

pTjb = pTjAx∗ =

nXi=1

Nhận xét 1.1 Nghiệm duy nhất của (1.1) cũng là cực tiểu duy nhất của phiếm hàm

pTjArk

pTjApipi.Như vậy,

xk+1= xk + αkpk,

ở đây, αk là hệ số chọn sao cho một số điều kiện được xảy ra Thuật toán được chonhư sau

Trang 19

Algorithm 1.3 Thuật toán gradient liên hợp (cg)

1: Nhập vào ngưỡng dừng tol > 0

Nhận xét 1.2 Ta có những nhận xét sau

• Các thặng dư trực giao bởi tích vô hướng Euclid

• Các hướng trực giao tương ứng với tích vô hướng A

• Chỉ áp dụng khi A là ma trận xác định dương Mỗi bước lặp chỉ một lần duynhất tính pT

jApj có độ phức tạp là O(n2)với ma trận dày và O(n) với ma trậnthưa

Trang 20

Định nghĩa 1.2.

J (y) = kb − Axk = kb − A(x0+ Vmy)k2 = kr − AVmyk = kβv1− Vm+1Hmyk

Do v1 ∈span(Vm)nên VmVmTβv1 = βv1.Vì VT

mβv1 = βe1

và VmVmT = Vm+1VmT (Do vì cột cuối cùng của Vm+1 nhân với 0) nên ta có

J (y) = kVm+1(βe1− Hmy)k

krnk ≤ 1 − λ

2 min 1/2 AT + A

Chọn x0, đặt r0 = b − Ax0, ta sẽ chiếu phương trình lên không gian Km(A, r0) +

x0và sử dụng điều kiện Galerkin

Trang 21

Algorithm 1.4 Thuật toán GMRES (gmres)

11: Đặt Hm = {hi,j}1≤i≤m+1,1≤j≤m là ma trận Hessenberg cỡ (m + 1) × m

12: Tính ym, là cực tiểu của kβe1 − Hmyk2 và xm = x0+ Vmym

Thật vậy, nghiệm xấp xỉ thỏa mãn

VmTA(x0+ Vmym) = VmTbhay

Trang 22

Algorithm 1.5 Phương pháp trực chuẩn đủ (fom)

Ngày đăng: 20/03/2017, 08:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w