Phương Pháp Khử Gauss Giải Hệ Phương Trình đại Số ... - 123doc

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC -Trần Thị Hương Liên PHƯƠNG PHÁP KHỬ GAUSS GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH LUẬN VĂN THẠC SỸ TOÁN HỌC... 23 2 Tổng quan về phương pháp

Trang 1

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC KHOA HỌC

-Trần Thị Hương Liên

PHƯƠNG PHÁP KHỬ GAUSS GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH

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

Trang 2

Mục lục

1 Các phương pháp giải hệ phương trình đại số tuyến tính 5

1.1 Các phương pháp khử 5

1.1.1 Phương pháp khử Gauss 6

1.1.2 Phương pháp phần tử trội toàn phần 9

1.1.3 Phương pháp khử Gauss - Jordan 10

1.2 Phương pháp phân rã LU 11

1.3 Phương pháp Cholesky 14

1.4 Phương pháp phân rã QR 16

1.5 Phương pháp lặp đơn 18

1.6 Phương pháp lặp theo Seidel 21

1.7 Phương pháp lặp theo Jacobi và phương pháp lặp theo Gauss-Seidel 23

2 Tổng quan về phương pháp khử Gauss giải hệ phương trình đại số tuyến tính 26 2.1 Sơ lược về các thuật toán song song giải hệ phương trình đại số tuyến tính 26

2.1.1 Sơ lược về các phần mềm giải phương trình đại số tuyến tính trên máy tính song song 26

2.1.2 Giải hệ tam giác trên máy tính với bộ nhớ phân tán 28 2.2 Các phương pháp giải hệ phương trình có ma trận hệ số thưa 29 2.2.1 Hệ ba đường chéo Phương pháp Thomas 30

2.2.2 Hệ ma trận băng Phương pháp Thomas cải biên 32

3 Sử dụng máy tính điện tử khoa học và phần mềm Maple

Trang 3

3.1 Sử dụng máy tính điện tử khoa học trong giải hệ phương trình

tuyến tính 333.1.1 Tính toán ma trận trên CASIO fx-570VN PLUS 333.1.2 Giải hệ phương trình bậc nhất hai ẩn trên CASIO fx-

570VN PLUS 363.1.3 Hệ ba phương trình bậc nhất ba ẩn trên CASIO fx-

570VN PLUS 383.1.4 Hệ bốn phương trình bậc nhất bốn ẩn trên CASIO

fx-570VN PLUS 393.1.5 Tính toán trên ma trận trên Vinacal 570 ES Plus 403.1.6 Giải hệ phương trình bậc nhất bốn ẩn trên Vinacal 570

ES Plus 433.2 Sử dụng phần mềm Maple trong giải hệ phương trình tuyến

tính 45Kết luận 50Tài liệu tham khảo 51

Trang 4

sử dụng phần mềm Maple Luận văn bao gồm phần mở đầu, ba chương, kếtluận và danh mục tài liệu tham khảo.

Chương 1 Các phương pháp giải hệ phương trình đại số tuyếntính

Các phương pháp giải hệ phương trình đại số tuyến tính trong chương nàyđược phân thành hai nhóm chính: nhóm các phương pháp trực tiếp và nhómcác phương pháp lặp Các phương pháp trực tiếp thường sử dụng cho hệphương trình đại số tuyến tính cỡ không lớn, số phép toán có thể dự đoántrước được, ma trận hệ số thường không suy biến Còn phương pháp lặpthường được sử dụng cho hệ có kích thước lớn hoặc hệ gần suy biến hoặcthỏa mãn điều kiện xấu Mỗi một phương pháp được nêu trong chương thườngkèm theo ví dụ minh họa

Trang 5

Chương 2 Tổng quan về phương pháp khử Gauss giải hệ phươngtrình đại số tuyến tính

Chương này trình bày tổng quan theo [6] các phương pháp giải hệ phươngtrình tuyến tính trong những năm gần đây: Sơ lược giới thiệu một số phầnmềm giải hệ phương trình đại số tuyến tính trên máy tính song song; Giải hệphương trình đại số tuyến tính có dạng đặc biệt: hệ có ma trận hệ số thưa,

Luận văn được hoàn thành dưới sự hướng dẫn và chỉ bảo tận tình củaPGS.TS Tạ Duy Phượng- Viện Toán học, Viện khoa học và Công nghệ ViệtNam Từ đáy lòng em xin bày tỏ lòng biết ơn sâu sắc đối với sự quan tâm,động viên và chỉ dạy, hướng dẫn tận tình đầy tâm huyết của Thầy

Tôi xin chân thành cảm ơn các Thầy, các Cô giảng viên Trường Đại họcKhoa học, phòng đào tạo Trường Đại học Khoa học, khoa Toán-Tin TrườngĐại học Khoa học-Đại học Thái Nguyên Đồng thời tôi xin gửi lời cảm ơntới gia đình, bạn bè, tập thể lớp cao học toán K6D Trường Đại học Khoahọc-Đại học Thái Nguyên đã luôn quan tâm, động viên giúp đỡ tôi trong quátrình học tập và làm luận văn này

Trang 6

Trang 7

Sử dụng phép biến đổi tương đương trên ma trận A1 để đưa ma trận A

về dạng tam giác trên Tức là:

Không làm mất tính tổng quát, giả sử các a(k)ii 6= 0 (k = 1, n − 1) Ngay

ở bước khử đầu tiên, ta nhân dòng thứ nhất với đại lượng −a21/a11 rồi cộngvào dòng thứ hai sẽ khử được biếnx1 ở phương trình thứ hai Sau nhiều nhất

n − 1 phép biến đổi ta đưa phần tử ở cột một từ vị trí thứ hai đổ xuống của

ma trậnA1 về giá trị không Ở bước hai, bằng cách làm tương tự Qua nhiềunhất n − 2 phép biến đổi ta đưa phần tử ở cột hai tính từ vị trí thứ ba đổ

Trang 8

xuống của ma trận biến đổi (lần hai) về giá trị không, tức là loại bỏ biến x2

ra khỏi phương trình từ phương trình thứ ba đến phương trình thứ n

Quy trình đó, về nguyên tắc dừng ở bước khử biến thứn − 1 trong phươngtrình thứ n tương ứng với ma trận biến đổi là cột thứ n − 1 về giá trị không

ở vị trí thứ n, để nhận được phương trình có ma trận hệ số là ma trận tamgiác trên Trong quá trình biến đổi ta cũng biến đổi cùng một lúc vế phảicủa hệ phương trình (tức là véctơb), ta được hệ phương trình có dạng (1.3)

Phần nghịch: Từ hệ phương trình tuyến tính (1.3) ta đi tính ngiệm

xn, , x1 của hệ phương trình đã cho theo công thức:

xn = b

0 n

a0 nn

Trang 9

Phương pháp trên có hai yếu điểm Một là, ở bước khử nào đó mà phần tửtrên đường chéo bằng không thì biến đổi dừng lại Hai là, các phần tử trênđường chéo khác không nhưng có giá trị tuyệt đối nhỏ hơn các phần tử kháccùng cột khi chia sẽ làm tăng sai số, do đó khuyếch đại sai số là làm tròn sốdẫn đến lời giải bài toán bị sai số lớn.

Có thể khắc phục hai nhược điểm này bằng phương pháp như sau Ở bướckhử đầu tiên ta chọn phần tử lớn nhất trên cột một, nếu phần tử đó nằm ởdòng k (k 6= 1) ta đổi vị trí dòng đó cho dòng một rồi thực hiện phép biếnđổi như trong phương pháp Gauss Bước thứ hai, ta cũng chọn phần tử cógiá trị tuyệt đối lớn nhất trên cột hai, thực hiện đổi dòng nếu cần thiết, vàthực hiện phép khử từ vị trí thứ ba trở xuống Tất cả các bước khử đều thựchiện với modul lớn nhất trên cột tương ứng trước khi tiến hành phép khử.Tức là, ở bước khử x1 ta chọn hàng r sao cho:

|ar1| = max {|ak1| , k = 1, , n}

Sau đó đổi hàng r cho hàng 1 và tiếp tục các bước khử như đã nêu ở trên.Tương tự trong các bước khử x2, x3, , xn−1 ta cũng tìm phần tử có modullớn nhất trên từng cột tương ứng

|ari| = max {|aki| , k = i, i + 1, , n} (i = 2, 3, , n − 1)

Phương pháp khử kết hợp với phép chọn như vậy làm cho thuật toán ổnđịnh và luôn thực hiện trên ma trận suy rộng, không làm thay đổi thứ tựcủa các ẩn số

Ví dụ 1.2 Giải hệ phương trình sau bằng phương pháp khử Gauss:

( 2x1 +3x2 +x3 = 11,

−x1 +2x2 −x3 = 0,3x1 +2x3 = 9

Giải Xét ma trận suy rộng của hệ phương trình trên ta có:

Trang 10

1/3 rồi cộng với dòng hai và nhân với phần tử (−2/3) rồi cộng với dòng ba

−19x3 = −13

Quy trình thế ngược trở lại ta nhận được nghiệm của hệ phương trình đãcho là:

x3 = 3, x2 = 2, x1 = 1

1.1.2 Phương pháp phần tử trội toàn phần

Ngay từ bước khử đầu tiên, ta chọn phần tử có giá trị tuyệt đối lớn nhấttrong số các phần tử aij(1 ≤ i, j ≤ n) của ma trân Giả sử phần tử đó là apq

(dòng thứ p và cột thứ q) Ta gọi dòng p là dòng trội, lần lượt nhân dòngnày với thừa số −alp/apq(l 6= p) rồi cộng dòng thứ l Bằng cách này loại bỏ

ẩnxp ra khỏi hệ phương trình, trừ phương trình thứ p Sau đó loại hàng trội

và cột q ra khỏi hệ phương trình vừa biến đổi, ta thu được hệ gồm n − 1

phương trình Tiếp tục thực hiện bước khử thứ hai như bước ban đầu thuđược hệ gồm n − 2 phương trình Cứ như vậy sau n − 1 lần thực hiện phépkhử như trên ta nhận được phương trình một ẩn

Giai đoạn tiếp theo, ta tính nghiệm từ phương trình cuối cùng, rồi đếnphương trình hai ẩn ở hàng trội bị bỏ sau bước khử thứn − 1, rồi đến phương

Trang 11

trình ba ẩn là hàng trội bị bỏ sau bước khử thứ n − 2, cho đến phươngtrình đủn là dòng trội đầu tiên bị bỏ sau bước khử lần thứ nhất Đặc trưngcủa phương pháp này là các ẩn được tính từ giai đoạn hai không theo thứ tự

từ xn đến x1 mà xuất hiện nhiều lần thay đổi các ẩn Trong quá trình khử,

vế phải của hệ cũng được thực hiện biến đổi đồng thời

1.1.3 Phương pháp khử Gauss - Jordan

Cơ sở của phương pháp này như sau: Từ ma trận suy rộng A1, dùng phépbiến đổi tương đương đưa ma trận hệ số của hệ phương trình về ma trận đơn

vị E, và vế phải của hệ cũng được biến đổi đồng thời

0 0 1 b0n

Khi đó nghiệm của hệ phương trình (1.1) là x = (b01, b02, , b0n)T

Để biến đổi ma trận về dạng tương đương ta dùng phép biến đổi như mô

tả trong phương pháp Gauss, có thể kết hợp với phương pháp chọn như trênhoặc phương pháp phần tử trội như đã mô tả (nếu cần thiết) Ở đây khôngcần phần nghịch để tìm nghiệm của hệ phương trình như trong phương phápGauss nhưng phép khử lại nhiều hơn

Phương pháp này không những giải hệ phương trình tuyến tính (1.1) màcòn dùng để tìm ma trận nghịch đảo của ma trận không suy biến bất kì.Ta

có sơ đồ để giải hệ phương trình (1.2) và tìm ma trận nghịch đảo như sau:

Trang 12

Như chúng ta đã biết, nếu hệ phương trình (1.2) có dạng tam giác thì rất

dễ giải Nếu ma trận vuông A cấp n có tính chất: tất cả các định thức con

từ cấp một đến đến cấp n trên đường chéo chính đều khác không thì ta cóthể phân tích ma trận A thành tích hai ma trận:

Trang 13

trong đó L là ma trận tam giác dưới, U là ma trận tam giác trên có dạngtổng quát như sau:

Nếu ta chọnβii = 1 i = 1, n thì ta có công thức tương ứng vớiαii i = 1, n

chưa xác định Ở đây để tiện trình bày ta chỉ sử dụng công thức (1.5) Sửdụng công thức nhân hai ma trận ta có thể xác định αij(i > j) và βij(i ≤ j)

Trang 14

Ví dụ 1.5 Giải hệ phương trình đại số tuyến tính sau :

( 2x1 +3x2 +x3 = 11

−x1 +2x2 −x3 = 03x1 +2x3 = 9

bằng phương pháp phân rã LU

Giải Xét ma trận hệ số của hệ phương trình

Trang 15

Bây giờ ta đi tìm nghiệm của hệ phương trình Ly = b Suy ra

−1/2 1 03/2 −9/7 1

!

Giải hệ phương trình này ta tìm được y = 11; 112 ; −37T

Bước tiếp theo, giải hệ phương trình U x = y ta có:

Trang 16

là ma trận đối xứng Khi đó ta có thể phân tích ma trận A thành tích hai

ma trận A = ST.S, trong đó S là ma trận tam giác trên Nên ta có:

Trang 17

tử trên cột một, tính từ phần tử thứ hai trở xuống về không ta xây dựng matrận Householder theo công thức

P1 = E − u1.u

T 1

với véctơ sinh

u1 = (a11 + sign (a11) α, a21, , an1)T ; α =

vuut

Trang 18

Cũng bằng kiểm tra trực tiếp các phần tử của ma trận P1A được tínhbằng công thức sau:

a0ij = aij − a1aj

ku1k2.2

(1.17)

trong đó kí hiệu a1 và aj để chỉ cột thứ nhất và cột thứ j của ma trận

A Trong công thức (1.17) khi i = 1 thay vì viết phần tử a11 ta phải lấy

là ma trận tam giác trên

Pn−1 P1A = R (1.18)

Kí hiệu QT = Pn−1 P1 từ (1.18)và từ tính chất ma trận trực giao ta suyra

A = QR; Q = P1T Pn−1T (1.19)Bây giờ ta đi tính nghiệm của hệ (1.2) sau khi sử dụng phân rã QR

Từ (1.18) ta có:

Pn−1 P1A x=Pn−1 P b → R x = QTb (1.20)

Vì R là ma trận tam giác trên nên hệ (1.20) giải được nhờ công thức truyhồi như đã nêu trên

Trang 19

1.5 Phương pháp lặp đơn

Trước tiên ta nhắc lại khái niệm chuẩn của ma trận

Định nghĩa 1.1: Cho ma trận A = (aij)n×n Chuẩn của ma trận A là một

số không âm được kí hiệu là kAk và thỏa mãn các tính chất sau:

i) kAk ≥ 0, kAk = 0 ⇔ A = Θ,ii) kλAk = |λ| kAk ,

kAk = sup

x6=0

kAxkkxk

Dễ thấy kAk xác định như trên thỏa mãn ba điều kiện về định nghĩachuẩn của ma trận

Từ hệ (1.2) bằng phép biến đổi tương đương ta thu được hệ ở dạng:

Phép lặp đơn được xây dựng trên (1.22) theo công thức:

xk+1 = Bxk+ g (k = 0, 1, 2, ) (1.23a)hoặc viết theo từng ẩn ta có:

xk+1i = bi1xk1 + bi2xk2 + + binxkn+ gi = Xbijxkj + gi i = 1, n (1.23b)trong đó xk và xk+1 là các xấp xỉ nghiệm ở bước lặp thứ k và k + 1

Như vậy bằng phép lặp (1.23) ta tạo ra được dãy các véctơ Câu hỏi đặt

ra là: Khi nào dãy đó hội tụ đến x∗ là nghiệm đúng của (1.1)

Định lý 1.1.(về điều kiện đủ để phép lặp (1.23) hội tụ)

Trang 20

Phép lặp (1.23) sẽ hội tụ đến nghiệm x∗ của hệ (1.1) với mọi xấp xỉ banđầu x0 nếu ta có:

Lấy giới hạn hai vế cuả bất đẳng thức này khi k cố định, còn p → ∞, ta

sẽ nhận được đánh giá sau:

Trên thực tế đánh giá này còn dùng làm tiêu chuẩn dừng phép lặp Nghĩa

là ta lặp theo (1.25) tới bước thứ k + 1 thì dừng, nếu thỏa mãn điều kiện:

xk+1 − xk

Nhận xét:

Trang 21

- Đối với phép lặp (1.23) thỏa mãn (1.25) thì ta có thể lấy x0 ≡ g

- Luôn tồn tại cách đưa (1.2) về (1.22) thoả mãn (1.25) Chẳng han, nếu

det A 6= 0, ta nhân hai vế của (1.2) với D ≡ A1− ε trong đó ε = (εij) là matrận mà các phần tử εij đủ nhỏ về giá trị tuyệt đối Khi đó ta có:

Trang 22

1.6 Phương pháp lặp theo Seidel

Xét phương trình (1.22) Ta phân tích ma trận B thành tổng của hai matrận

Định lý (về điều kiện đủ để phép lặp Seidel hội tụ)

Nếu ta có kBk < 1 thì phép lặp (1.28) hội tụ

Chứng minh Ta lấy chuẩn kBk = kBk∞

Do kBk < 1 nên phép lặp đơn hội tụ nên ta có:

x∗i = Xbijx∗j + gi (i)Lấy (1.28b) trừ đi (i) ta được:

Trang 23

Suy ra:

xk+1i − x∗i ≤ ci xk+1 − x∗ m + di xk − x∗ m, (iii)với ci = P

Trang 24

1.7 Phương pháp lặp theo Jacobi và phương pháp lặp

trong đó các phần tử của ma trân C và g được xác định như sau:

Nếu A là ma trận chéo trội thỏa mãn điều kiện (i) thì:

Trang 25

Nếu ta sử dụng phép lặp Seidel cho hệ (1.33) thì phép lặp đó gọi là lặptheo Gauss-Seidel Công thức lặp như sau:

Ta thấy kCk < 1 nên phép lặp hội tụ

Chọn x0 = g = ( 0, 2 0, 2 0, 2 )T ta có kết quả tính toán của quá trìnhlặp Jacobi là:

Trang 26

Ta thấy ở bước lặp thứ 4, x4 − x3 = 0, 016264 < ε nên quá trình lặp

dừng Vậy nghiệm gần đúng của hệ so với sai số 0,02 là(0, 139712, 0, 134456, 0, 134456)T

Kết quả quá trình lặp theo Gauss-Seidel là Từ ma trận C suy ra:

Như vậy, so sánh hai kết quả trên ta thấy phương lặp theo Gauss-Seidel

hội tụ nhanh hơn phương pháp Jacobi và cho kết quả chính xác hơn

Trang 27

2.1.1 Sơ lược về các phần mềm giải phương trình đại số tuyến

tính trên máy tính song song

Nếu như trước đây, các thuật toán cài đặt trên máy tính là các thuật toántuần tự, thì bắt đầu từ những năm 1970, các tư tưởng về máy tính vectơ(vector computer) và máy tính song song (parallel computer) đã bắt đầu trởnên hiện thực Các máy tính khoa học như IBM 360-91 đã được thiết kế với

tư tưởng song song hóa, tuy vẫn còn được ẩn giấu trong cấu trúc máy tính,máy tính CRAY 1 (1976) đã đánh dấu sự ra đời của máy tính vectơ

Các máy tính này được vận hành với những qui tắc tương tác mới Nói mộtcách thô thiển, máy tính tuần tự thực hiện các phép toán một cách tuần tự,còn muốn thuật toán chạy nhanh thì các thông số đầu vào cần phải đượcbiểu diễn (nếu có thể) dưới dạng vectơ Các máy tính vectơ thường gồm một

số bộ sử lí vectơ với bộ nhớ chung lớn Vào những năm 2000, các máy này

đã chạy với tốc độ cỡ 109 phép toán trong một giây

Vào những năm 1990, một loại máy tính khoa học mới đã xuất hiện trên thịtrường Đó là những máy tính song song với bộ nhớ phân tán Mặc dù tưtưởng song song hóa đã có từ lâu (máy tính song song Illiac IV đã được thiết

Trang 28

kế vào năm 1972), chỉ mới gần đây các máy tính này mới đạt được hiệu năngcao cho phép giải các bài toán kĩ thuật Vào những năm 2000, máy tính songsong đã đạt được tốc độ cỡ 1012 phép toán trong một giây.

Để đạt được hiệu năng cao trong tính toán, cần xây dựng các thuật toán mớicho máy tính vectơ và máy tính song song Dưới đây trình bày sơ lược haigói thủ tục (routines) giải hệ phương trình đại số tuyến tính trên máy tínhsong song

BLAS

BLAS (Basic Linear Algebra Subprograms) là một gói thủ tục giải các bàitoán của đại số tuyến tính trên máy tính song song được Lawson, Hanson,Kincaid và Krogh xây dựng vào năm 1979 Gói thủ tục này chủ yếu liên quanđến các phép toán vectơ như cộng các vectơ, nhân một số với một vectơ, tích

vô hướng, tính chuẩn của vectơ và chuẩn của ma trận,

Gói thủ tục đại số tuyến tính LINPACK (giải hệ phương trình tuyến tính vàcác bài toán bình phương tối thiểu) đã được viết dựa trên BLAS 1 và đượccông bố vào năm 1979

BLAS 2 đã có thêm một số thủ tục như nhân một ma trận với một vectơ,tìm ma trận nghịch đảo,

Hầu hết các thuật toán của đại số tuyến tính, trong đó có phép khử Gauss,

có thể lập trình trên máy tính song song nhờ BLAS 2

BLAS 3 xuất hiện vào năm 1990 cho phép nhân hai ma trận và các phéptoán khác trên máy tính song song

LAPACK

LAPACK (for Linear Algebra PACKage) xuất hiện vào năm 1992 LAPACKkết hợp LINPACK và gói thủ tục tính các giá trị riêng EISPACK (the packagefor eigenvalues computations) LAPACK đã xây dựng gói phần mềm giải cácbài toán của đại số tuyến tính hiệu quả trên máy vi tính xách tay nhờ kếtnối với BLAS và đã được song song hóa

... cần xây dựng thuật tốn mớicho máy tính vectơ máy tính song song Dưới trình bày sơ lược haigói thủ tục (routines) giải hệ phương trình đại số tuyến tính máy tínhsong song

BLAS

BLAS... với vectơ, tích

vơ hướng, tính chuẩn vectơ chuẩn ma trận,

Gói thủ tục đại số tuyến tính LINPACK (giải hệ phương trình tuyến tính vàcác tốn bình phương tối thiểu) viết dựa BLAS đượccơng... mềm giải phương trình đại số tuyến< /p>

tính máy tính song song

Nếu trước đây, thuật tốn cài đặt máy tính thuật tốntuần tự, năm 1970, tư tưởng máy tính vectơ(vector computer) máy tính

Từ khóa » Cách Khử Gauss