Phương pháp khử Gauss giải hệ phương trình đại số tuyến tính

52 23K 12
Phương pháp khử Gauss giải hệ phương trình đại số tuyến tính

Đ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

ĐẠ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 Chuyên ngành: TOÁN ỨNG DỤNG Mã số: 60 46 01 12 Người hướng dẫn khoa học PGS. TS. TẠ DUY PHƯỢNG THÁI NGUYÊN - NĂM 2014 Mục lục Mở đầu 3 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 trong đại số tuyến tính 33 1 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.1.1 Tính toán ma trận trên CASIO fx-570VN PLUS . . . 33 3.1.2 Giải hệ phương trình bậc nhất hai ẩn trên CASIO fx- 570VN PLUS . . . . . . . . . . . . . . . . . . . . . . 36 3.1.3 Hệ ba phương trình bậc nhất ba ẩn trên CASIO fx- 570VN PLUS . . . . . . . . . . . . . . . . . . . . . . 38 3.1.4 Hệ bốn phương trình bậc nhất bốn ẩn trên CASIO fx-570VN PLUS . . . . . . . . . . . . . . . . . . . . . 39 3.1.5 Tính toán trên ma trận trên Vinacal 570 ES Plus . . . 40 3.1.6 Giải hệ phương trình bậc nhất bốn ẩn trên Vinacal 570 ES Plus . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.2 Sử dụng phần mềm Maple trong giải hệ phương trình tuyến tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Tài liệu tham khảo . . . . . . . . . . . . . . . . . . . . . . . . . 51 2 Mở đầu Phương pháp khử Gauss giải hệ phương trình đại số tuyến tính đã được biết đến từ lâu. Tuy nhiên, do nhu cầu của thực tiễn, nhiều bài toán của thực tế hoặc của chính toán học (sai phân hóa và giải số phương trình vi phân, ), phương pháp khử Gauss nói riêng, phương pháp giải hệ phương trình đại số tuyến tính nói chung, vẫn được quan tâm nghiên cứu, đặc biệt vào những năm gần đây với việc sử dụng những thành tựu mới của công nghệ thông tin (máy tính tốc độ cao, máy tinh song song, ). Luận văn " Phương pháp khử Gauss giải hệ phương trình đại số tuyến tính" có mục đích trình bày các phương pháp giải hệ phương trình đại số tuyến tính, trong đó đặc biệt chú trọng trình bày phương pháp khử Gauss. Ngoài ra, nhằm phục vụ cho giảng dạy đại số tuyến tính trong trường phổ thông, Luận văn cũng đề cập đến cách giải phương trình đại số tuyến tính trên máy tính điện tử khoa học và sử dụng phần mềm Maple. Luận văn bao gồm phần mở đầu, ba chương, kết luậ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ến tí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óm cá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án trước được, ma trận hệ số thường không suy biến. Còn phương pháp lặp thường được sử dụng cho hệ có kích thước lớn hoặc hệ gần suy biến hoặc thỏa mãn điều kiện xấu. Mỗi một phương pháp được nêu trong chương thường kèm theo ví dụ minh họa. 3 Chương 2 Tổng quan về phương pháp khử Gauss giải hệ phương trì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ương trình tuyến tính trong những năm gần đây: Sơ lược giới thiệu một số phần mề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, ma trận chéo khối, Chương 3 Sử dụng máy tính khoa học và phần mềm Maple trong đại số tuyến tính Chương này giới thiệu sơ lược cách sử dụng các máy tính khoa học (CASIO fx-570VN Plus, Vinacal 570 ES Plus) và phần mềm Maple trong đại số tuyến tính, chủ yếu đi sâu vào cách giải hệ phương trình đại số tuyến tính. 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ủa PGS.TS. Tạ Duy Phượng- Viện Toán học, Viện khoa học và Công nghệ Việt Nam. 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ọc Khoa 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 ơn tới gia đình, bạn bè, tập thể lớp cao học toán K6D Trường Đại học Khoa họ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. 4 Chương 1 Các phương pháp giải hệ phương trình đại số tuyến tính 1.1 Các phương pháp khử . Xét hệ phương trình đại số dạng tổng quát      a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 , a 21 x 1 + a 22 x 2 + + a 2n x n = b 2 , a n1 x 1 + a n2 x 2 + + a nn x n = b n , (1.1) hoặc ở dạng ma trận Ax = b, (1.2) trong đó A =    a 11 a 12 a 1n a 21 a 22 a 2n a n1 a n2 a nn    được gọi là ma trận hệ số của phương trình đại số tuyến tính (1.1), x =    x 1 x 2 x n    là véctơ ẩn cần tìm, b =    b 1 b 2 b n    5 là véctơ hệ số tự do. Ma trận A 1 = (A|b) =    a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2 a n1 a n2 a nn b n    được gọi là ma trận suy rộng của hệ phương trình đại số tuyến tính (1.1). 1.1.1 Phương pháp khử Gauss . Phương pháp khử Gauss là bằng phương pháp thế hoặc cộng đại số khử dần các ẩn để đưa hệ phương trình đã cho về dạng tam giác rồi giải hệ tam giác này từ dưới lên trên hoặc từ trên xuống để tìm nghiệm (x 1 , , x n ) của hệ phương trình đã cho. Cơ sở thuật toán của phương pháp khử Gauss như sau Sử dụng phép biến đổi tương đương trên ma trận A 1 để đưa ma trận A về dạng tam giác trên. Tức là: (1.1) ⇔      a  11 x 1 +a  12 x 2 + +a  1n x n = b  1 , a  22 x 2 + +a  2n x n = b  2 , a  nn x n = b  n . (1.3) Từ hệ phương trình trên ta đi ngược từ dưới lên để tìm nghiệm: x n , x n−1 , x n−2 , , x 1 Ta mô tả gắn gọn phương pháp khử Gauss như sau Phần thuận: Không làm mất tính tổng quát, giả sử các a (k) ii = 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 −a 21 / a 11 rồi cộng vào dòng thứ hai sẽ khử được biến x 1 ở 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ận A 1 về giá trị không. Ở bước hai, bằng cách làm tương tự. Qua nhiều nhất n − 2 phép biến đổi ta đưa phần tử ở cột hai tính từ vị trí thứ ba đổ 6 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 x 2 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ương trì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 tam giác trên. Trong quá trình biến đổi ta cũng biến đổi cùng một lúc vế phải củ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 x n , , x 1 của hệ phương trình đã cho theo công thức: x n = b  n a  nn , x k = b  k − n  j=k+1 a  kj x j a  kk , k = 1, n −1. Ví dụ 1.1 Giải hệ phương trình đại số tuyến tính sau bằng phương pháp khử Gauss:  x 1 +2x 2 +5x 3 = −9, x 1 −x 2 +3x 3 = 2, 3x 1 −6x 2 −x 3 = 25. Giải Viết ma trận suy rộng và thực hiện phép biến đổi như trên, ta có:  1 2 5 −9 1 −1 3 2 3 −6 −1 25  ⇒  1 2 5 −9 0 −3 −2 11 0 −12 −16 52  ⇒  1 2 5 −9 0 −3 −2 11 0 0 −8 8  Khi đó ta có hệ phương trình:  x 1 +2x 2 −5x 3 = −9 −3x 2 −2x 3 = 11 −8x 3 = 8 Quy trình thế ngược trở lại ta được nghiệm của hệ phương trình là : x 3 = −1, x 2 = −3, x 1 = 2. 7 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ác cù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ước khử đầ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 = 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ực hiệ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ử x 1 ta chọn hàng r sao cho: |a r1 | = max {|a k1 |, 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ử x 2 , x 3 , , x n−1 ta cũng tìm phần tử có modul lớn nhất trên từng cột tương ứng |a ri | = max {|a ki |, 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:  2x 1 +3x 2 +x 3 = 11, −x 1 +2x 2 −x 3 = 0, 3x 1 +2x 3 = 9. Giải. Xét ma trận suy rộng của hệ phương trình trên ta có: A 1 =  2 3 1 11 −1 2 −1 0 3 0 2 9  . Trên cột một của ma trận A 1 ta thấy max {|a k1 |/k = 1, 2, 3} = a 31 = 3, đổi dòng ba cho dòng một, rồi nhân lần lượt dòng một vừa biến đổi với phần tử 8 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 ta được: A 1 =  3 0 2 9 −1 2 −1 0 2 3 1 11  ⇒ A 1 =  3 0 2 9 0 2 −1/3 3 0 3 −1/3 5  . Ở bước khử thứ hai ta có max {|a k2 |/k = 2, 3} = a 32 = 3. Thực hiện phép đổi vị trí dòng hai cho dòng ba, rồi nhân dòng vừa hoán đổi cho phần tử (−2/3) sau đó cộng với dòng ba ta được: A 1 =  3 0 2 9 0 3 −1/3 5 0 2 −1/3 3  ⇒ A 1 =  3 0 2 9 0 3 −1/3 3 0 0 −1/9 −1/3  Khi đó hệ phương trình đã cho có dạng:    3x 1 +2x 3 = 9 3x 2 − 1 3 x 3 = 5 − 1 9 x 3 = − 1 3 Quy trình thế ngược trở lại ta nhận được nghiệm của hệ phương trình đã cho là: x 3 = 3, x 2 = 2, x 1 = 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ất trong số các phần tử a ij (1 ≤ i, j ≤ n) của ma trân. Giả sử phần tử đó là a pq (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òng này với thừa số −a lp / a pq (l = p) rồi cộng dòng thứ l. Bằng cách này loại bỏ ẩn x p 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ép khử 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 đến phương trình hai ẩn ở hàng trội bị bỏ sau bước khử thứ n−1, rồi đến phương 9 [...]... dạy đại số tuyến tính và giải hệ phương trình đại số tuyến tính trong trường phổ thông, chương này giới thiệu cách sử dụng các máy tính điện tử khoa học CASIO fx-570VN PLUS , Vinacal 570 ES Plus và phần mềm Maple trong đại số tuyến tính 3.1 3.1.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 Tính toán ma trận trên CASIO fx-570VN PLUS Khai báo các ma trận Mở máy vào chương trình. .. của hệ với sai số 0,02 là (0, 144594; 0, 142183; 0, 142644)T 1 1 Chú ý rằng nghiệm đúng của hệ trên là 7 , 7 , 1 7 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 25 Chương 2 Tổng quan về phương pháp khử Gauss giải hệ phương trình đại số tuyến tính 2.1 Sơ lược về các thuật toán song song giải hệ phương trình đại số. .. thể kết hợp với phương pháp chọn như trên hoặc phương pháp phần tử trội như đã mô tả (nếu cần thiết) Ở đây không cần phần nghịch để tìm nghiệm của hệ phương trình như trong phương pháp Gauss 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à... trận hệ số A trong trường hợp này có dạng ma trận ba đường chéo 2.2.1 Hệ ba đường chéo Phương pháp Thomas Phương pháp Thomas thực chất là phương pháp khử Gauss áp dụng cho ma trận ba đường chéo.Thuật toán của ma trận này gồm hai bước: bước thứ 30 nhất ta tính các hệ số truy hồi,bước thứ hai ta tính nghiệm của hệ bằng công thức truy hồi thông qua hệ số ở bước một.Cụ thể, phương pháp Thomas như sau: Từ phương. .. 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ới cho máy tính vectơ và máy tính song song Dưới đây trình bày sơ lược hai gói thủ tục (routines) giải hệ phương trình đại số tuyến tính trên máy tính song song BLAS BLAS (Basic Linear Algebra Subprograms) là một gói thủ tục giải các bài toán của đại số tuyến tính trên máy tính song song được Lawson, Hanson, Kincaid... việc tìm nghiệm (1.7b) trước rồi tính nghiệm (1.7a) sau Việc tính nghiệm có thể viết dưới dạng sau: i−1 y1 = b1/α11 , yi = 1 αii bi − xn = yn/βnn , xi = 1 βii yi − 12 αik yk (1.8) βik yk (1.9) k=1 i−1 k=1 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 = 0 3x1 +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 A= 2 3 1 −1 2 −1 3 0 2 Vì... 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à được cô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... an pn−1 ) Sau khi tính được yn dùng phương trình (3i) thế ngược trở lại để tính yn−1 , , y1 Cũng giống như trong phương pháp Gauss, khi tính nghiệm của hệ phương trình trên trong thuật toán Thomas ta có phép chia cho phần tử pk−1 hoặc khi tính hệ số pk , qk ta cũng có phép chia cho phần tử ((bk − ak pk−1 , k = 1, , n) ta thường dẫ tới sai số là làm tròn số làm cho bài toán bị sai số lớn Vậy để thuật... gọi là lặp theo Gauss- Seidel Công thức lặp như sau: i−1 xk+i i n cij xk+1 j = cij xk + gi j + j=1 i = 1, n (1.34) j=i+1 Ví dụ 1.8 Tính nghiệm gần đúng của hệ phương trình sau: 5x1 +x2 +x3 = 1 x1 +5x2 +x3 = 1 x1 +x2 +5x3 = 1 bằng phương pháp Jacobi và phương pháp Gauss- Seidel, với sai số ε = 0, 02 Giải Xét ma trận hệ số A= 5 1 1 1 5 1 1 1 5 Dễ thấy A là ma trận chéo trội Đưa hệ phương trình đã cho về... 0 0 −1/7 Bây giờ ta đi tìm nghiệm của hệ phương trình Ly = b Suy ra 1 0 0 −1/2 1 0 3/2 −9/7 1 y1 y2 y3 = Giải hệ phương trình này ta tìm được y = 11; 11 0 9 11 2; −3 7 T Bước tiếp theo, giải hệ phương trình U x = y ta có: 2 3 1 0 7/2 −1/2 0 0 −1/7 x1 x2 x3 = 11 11/2 −3/7 Cuối cùng ta tìm được nghiệm x3 = 3, x2 = 2, x1 = 1 1.3 Phương pháp Cholesky Xét hệ phương trình (1.1) Nếu A là ma trận đối xứng . suy rộng của hệ phương trình đại số tuyến tính (1.1). 1.1.1 Phương pháp khử Gauss . Phương pháp khử Gauss là bằng phương pháp thế hoặc cộng đại số khử dần các ẩn để đưa hệ phương trình đã cho. họa. 3 Chương 2 Tổng quan về phương pháp khử Gauss giải hệ phương trì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ương trình tuyến tính trong những năm gần. lược giới thiệu một số phần mề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, ma trận chéo

Ngày đăng: 18/11/2014, 19:53

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan