1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

52 7 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 52
Dung lượng 301,78 KB

Nội dung

ĐẠ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Ỹ TỐ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 Tai ngay!!! Ban co the xoa dong chu nay!!! Mục lục Mở đầu 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ử 1.1.1 Phương pháp khử Gauss 1.1.2 Phương pháp phần tử trội toàn phần 1.1.3 Phương pháp khử Gauss - Jordan 1.2 Phương pháp phân rã LU 1.3 Phương pháp Cholesky 1.4 Phương pháp phân rã QR 1.5 Phương pháp lặp đơn 1.6 Phương pháp lặp theo Seidel 1.7 Phương pháp lặp theo Jacobi phương pháp lặp theo GaussSeidel Tổng quan phương pháp khử Gauss giải hệ phương trình đại số tuyến tính 2.1 Sơ lược thuật tốn song song giải hệ phương trình đại số tuyến tính 2.1.1 Sơ lược phần mềm giải phương trình đại số tuyến tính máy tính song song 2.1.2 Giải hệ tam giác máy tính với nhớ phân tán 2.2 Các phương pháp giải hệ phương trình có ma trận hệ số thưa 2.2.1 Hệ ba đường chéo Phương pháp Thomas 2.2.2 Hệ ma trận băng Phương pháp Thomas cải biên 5 10 11 14 16 18 21 23 26 26 26 28 29 30 32 Sử dụng máy tính điện tử khoa học phần mềm Maple đại số tuyến tính 33 3.1 Sử dụng máy tính điện tử khoa học giải hệ phương trình tuyến tính 3.1.1 Tính toán ma trận CASIO fx-570VN PLUS 3.1.2 Giải hệ phương trình bậc hai ẩn CASIO fx570VN PLUS 3.1.3 Hệ ba phương trình bậc ba ẩn CASIO fx570VN PLUS 3.1.4 Hệ bốn phương trình bậc bốn ẩn CASIO fx-570VN PLUS 3.1.5 Tính tốn ma trận Vinacal 570 ES Plus 3.1.6 Giải hệ phương trình bậc bốn ẩn Vinacal 570 ES Plus 3.2 Sử dụng phần mềm Maple giải hệ phương trình tuyến tính Kết luận Tài liệu tham khảo 33 33 36 38 39 40 43 45 50 51 Mở đầu Phương pháp khử Gauss giải hệ phương trình đại số tuyến tính biết đến từ lâu Tuy nhiên, nhu cầu thực tiễn, nhiều toán thực tế tốn học (sai phân hóa 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, quan tâm nghiên cứu, đặc biệt vào năm gần với việc sử dụng thành tựu 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 phương pháp giải hệ phương trình đại số tuyến tính, đặc biệt 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 trường phổ thơng, Luận văn đề cập đến cách giải phương trình đại số tuyến tính máy tính điện tử khoa học 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 danh mục tài liệu tham khảo Chương 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 chương phân thành hai nhóm chính: nhóm phương pháp trực tiếp nhóm 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 tốn dự đố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 sử dụng cho hệ có kích thước lớn hệ gần suy biến thỏa mãn điều kiện xấu Mỗi phương pháp nêu chương thường kèm theo ví dụ minh họa Chương Tổng quan phương pháp khử Gauss giải hệ phương trình đại số tuyến tính Chương trình bày tổng quan theo [6] phương pháp giải hệ phương trình tuyến tính năm gần đây: Sơ lược giới thiệu số phần mềm giải hệ phương trình đại số tuyến tính 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 Sử dụng máy tính khoa học phần mềm Maple đại số tuyến tính Chương giới thiệu sơ lược cách sử dụng máy tính khoa học (CASIO fx-570VN Plus, Vinacal 570 ES Plus) phần mềm Maple đại số tuyến tính, chủ yếu sâu vào cách giải hệ phương trình đại số tuyến tính Luận văn hoàn thành hướng dẫn bảo tận tình PGS.TS Tạ Duy Phượng- Viện Tốn học, Viện khoa học Cơng nghệ Việt Nam Từ đáy lòng em xin bày tỏ lòng biết ơn sâu sắc quan tâm, động viên dạy, hướng dẫn tận tình đầy tâm huyết Thầy Tôi xin chân thành cảm ơn Thầy, 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 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 quan tâm, động viên giúp đỡ tơi q trình học tập làm luận văn Chương 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    a11 x1 + a12 x2 + + a1n xn = b1 , a21 x1 + a22 x2 + + a2n xn = b2 ,   an1 x1 + an2 x2 + + ann xn = bn , (1.1) dạng ma trận Ax = b, (1.2)  a11  a21 A =  an1 a12 a22 an2  a1n a2n   ann gọi ma trận hệ số phương trình đại số tuyến tính (1.1),   x1 x  x =   xn véctơ ẩn cần tìm,   b1 b  b =   bn véctơ hệ số tự Ma trận  a11  a21 A1 = (A|b) =  an1 a12 a22 an2 a1n a2n ann  b1 b2   bn gọi ma trận suy rộng 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 phương pháp cộng đại số khử dần ẩn để đưa hệ phương trình cho dạng tam giác giải hệ tam giác từ lên từ xuống để tìm nghiệm (x1 , , xn ) hệ phương trình cho Cơ sở thuật tốn phương pháp khử Gauss sau Sử dụng phép biến đổi tương đương ma trận A1 để đưa ma trận A dạng tam giác Tức là:  0 xn   a11 x1 +a0 12 x2 + +a1n a22 x2 + +a02n xn (1.1) ⇔   ann xn = = = b01 , b02 , b0n (1.3) Từ hệ phương trình ta ngược từ lên để tìm nghiệm: xn , xn−1 , xn−2 , , x1 Ta mô tả gắn gọn phương pháp khử Gauss sau Phần thuận: (k) Không làm tính tổng quát, giả sử aii 6= (k = 1, n − 1) Ngay bước khử đầu tiên, ta nhân dòng thứ với đại lượng −a21/a11 cộng vào dòng thứ hai khử biến x1 phương trình thứ hai Sau nhiều n − phép biến đổi ta đưa phần tử cột từ vị trí thứ hai đổ xuống ma trận A1 giá trị không Ở bước hai, cách làm tương tự Qua nhiều n − phép biến đổi ta đưa phần tử cột hai tính từ vị trí thứ ba đổ xuống ma trận biến đổi (lần hai) giá trị không, tức loại bỏ biến x2 khỏi phương trình từ phương trình thứ ba đến phương trình thứ n Quy trình đó, ngun tắc dừng bước khử biến thứ n−1 phương trình thứ n tương ứng với ma trận biến đổi cột thứ n − giá trị khơng vị trí thứ n, để nhận phương trình có ma trận hệ số ma trận tam giác Trong trình biến đổi ta biến đổi lúc vế phải hệ phương trình (tức véctơ b), ta 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 tính ngiệm xn , , x1 hệ phương trình cho theo công thức: xn = b0n a0nn b0k − , xk = n P j=k+1 a0kk a0kj xj , k = 1, n − Ví dụ 1.1 Giải hệ phương trình đại số tuyến tính sau phương pháp khử Gauss: ( x1 +2x2 +5x3 = −9, x1 −x2 +3x3 = 2, 3x1 −6x2 −x3 = 25 Giải Viết ma trận suy rộng thực phép biến đổi trên, ta có: −1 3 −6 −1 −9 25 ! ⇒ −3 −2 −12 −16 −9 11 52 ! ⇒ −3 −2 0 −8 −9 11 Khi ta có hệ phương trình: ( x1 +2x2 −5x3 = −9 −3x2 −2x3 = 11 −8x3 = Quy trình ngược trở lại ta nghiệm hệ phương trình : x3 = −1, x2 = −3, x1 = ! Phương pháp có hai yếu điểm Một là, bước khử mà phần tử đường chéo khơng biến đổi dừng lại Hai là, phần tử đường chéo khác khơng có giá trị tuyệt đối nhỏ phần tử khác cột chia làm tăng sai số, khuyếch đại sai số làm tròn số dẫn đến lời giải tốn bị sai số lớn Có thể khắc phục hai nhược điểm phương pháp sau Ở bước khử ta chọn phần tử lớn cột một, phần tử nằm dịng k (k 6= 1) ta đổi vị trí dịng cho dịng thực phép biến đổi phương pháp Gauss Bước thứ hai, ta chọn phần tử có giá trị tuyệt đối lớn cột hai, thực đổi dòng cần thiết, thực phép khử từ vị trí thứ ba trở xuống Tất bước khử thực với modul lớn cột tương ứng trước tiến hành phép khử Tức là, bước khử x1 ta chọn hàng r cho: |ar1 | = max {|ak1 | , k = 1, , n} Sau đổi hàng r cho hàng tiếp tục bước khử nêu Tương tự bước khử x2 , x3 , , xn−1 ta tìm phần tử có modul lớn 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 làm cho thuật tốn ổn định ln thực ma trận suy rộng, không làm thay đổi thứ tự ẩn số Ví dụ 1.2 Giải hệ phương trình sau phương pháp khử Gauss: ( 2x1 +3x2 +x3 = 11, −x1 +2x2 −x3 = 0, 3x1 +2x3 = Giải Xét ma trận suy rộng hệ phương trình ta có: A1 = −1 −1 11 ! Trên cột ma trận A1 ta thấy max {|ak1 | /k = 1, 2, 3} = a31 = 3, đổi dòng ba cho dòng một, nhân dòng vừa biến đổi với phần tử 1/3 cộng với dòng hai nhân với phần tử ta được: ! A1 = −1 −1 ⇒ A1 = 11 (−2/3) cộng với dòng ba 2 −1/3 −1/3 ! Ở bước khử thứ hai ta có max {|ak2 | /k = 2, 3} = a32 = Thực phép đổi vị trí dịng hai cho dịng ba, nhân dịng vừa hốn đổi cho phần tử (−2/3) sau cộng với dịng ba ta được: A1 = 3 −1/3 −1/3 ! ⇒ A1 = 3 −1/3 0 −1/9 −1/3 ! Khi hệ phương trình cho có dạng:  +2x3 =  3x1 3x2 − 31 x3 =  − 19 x3 = − 13 Quy trình ngược trở lại ta nhận nghiệm hệ phương trình cho là: x3 = 3, x2 = 2, x1 = 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 số phần tử aij (1 ≤ i, j ≤ n) ma trân Giả sử phần tử apq (dòng thứ p cột thứ q ) Ta gọi dòng p dòng trội, nhân dòng với thừa số −alp/apq (l 6= p) cộng dòng thứ l Bằng cách loại bỏ ẩn xp khỏi hệ phương trình, trừ phương trình thứ p Sau loại hàng trội cột q khỏi hệ phương trình vừa biến đổi, ta thu hệ gồm n − phương trình Tiếp tục thực bước khử thứ hai bước ban đầu thu hệ gồm n − phương trình Cứ sau n − lần thực phép khử ta nhận phương trình ẩn Giai đoạn tiếp theo, ta tính nghiệm từ phương trình cuối cùng, đến phương trình hai ẩn hàng trội bị bỏ sau bước khử thứ n−1, đến phương x − x∗ m ≡ max xk+1 − x = − x i p p , (1 ≤ p ≤ n) i Lấy i = p Khi (iii) có dạng: k+1 x − x∗ ≤ cp xk+1 − x∗ + dp xk − x∗ dp xk − x∗ ≤ γ xk − x∗ → xk+1 − x∗ ≤ − cp (iv) di ta kí hiệu γ = max 1−c i i Mặt khác ta có: ci + di = n X bij ≤ max j=1 i X |bij | ≡ kBk∞ < i nên di ≤ kBk∞ − ci < − ci Do đó: di 1−ci < ∀i = 1, n Nghĩa là: γ < Từ (iv) ta có: k+1 x − x∗ ≤ γ k+1 x0 − x∗ Suy ra: k+1 x − x∗ → (k → ∞) Từ ta có đánh giá sai số: k x − x∗ ≤ γk x1 − x0 1−γ (1.29) Nhận xét: di i −di ) - Ta có kBkm − γ = ci + di − 1−c = ci (1−c ≥ Do đó: kBkm ≥ γ 1−ci i - Qua (1.25) (1.29) bất đẳng thức kBkm ≥ γ , ta thấy tốc độ hội tụ phương pháp lặp đơn thấp tốc độ hội tụ phương pháp lặp Seidel, hai hội tụ Điều khẳng định thấy thơng qua ví dụ phần sau 22 1.7 Phương pháp lặp theo Jacobi phương pháp lặp theo Gauss-Seidel Định nghĩa 1.1 Ta nói ma trận A ma trận đường chéo trội thỏa mãn hai điều kiện sau: i) n P ii) j=1,j6=i n P |aij | < |aii |  = 1, n |aij | < |ajj |  j = 1, n () (1.30ab) i=1,i6=j Nếu hệ (1.1) có ma trận A chéo trội phương pháp biến đổi đưa (1.1) dạng công thức lặp: x = Cx + g (1.31) phần tử ma trân C g xác định sau: Nếu A ma trận chéo trội thỏa mãn điều kiện (i) thì: bi gi = aii  i = 1, n ;  C = (cij )n×n = (i = j) , a − aiiij (i = j) Nếu A ma trận chéo trội thỏa mãn điều kiện (ii) thì:   (i = j) gi = bi i = 1, n , C = (cij )n×n = − aij (i 6= j) (1.32a) (1.32b) ajj Vì ma trận A ma trận chéo trội nên dễ thấy kCk < hai trường hợp Do đó, phép lặp đơn hệ (1.35) hội tụ Trong trường hợp chéo trội theo cột nghiệm hệ (1.1) nhận cách chia nghiệm xi tính phép lặp nói cho hệ số aii tương ứng Phép lặp đơn trường hợp gọi phép lặp theo Jacobi công thức lặp sau: xk+i i = i−1 X j=1 cij xkj + n X cij xkj + gi j=i+1 23  i = 1, n (1.33) Nếu ta sử dụng phép lặp Seidel cho hệ (1.33) phép lặp gọi lặp theo Gauss-Seidel Cơng thức lặp sau: xk+i i = i−1 X cij xk+1 j j=1 + n X cij xkj + gi  i = 1, n (1.34) j=i+1 Ví dụ 1.8 Tính nghiệm gần hệ phương trình sau: ( 5x1 +x2 +x3 = x1 +5x2 +x3 = x1 +x2 +5x3 = phương pháp Jacobi phương pháp Gauss-Seidel, với sai số ε = 0, 02 Giải Xét ma trận hệ số ! 1 A= 1 Dễ thấy A ma trận chéo trội Đưa hệ phương ( x1 = −0, 2x2 −0, 2x3 x2 = −0, 2x1 −0, 2x3 x3 = −0, 2x1 −0, 2x2 trình cho dạng: +0, +0, +0, Lặp theo phương pháp Jacobi: Ta xây dựng công thức lặp hội tụ đến nghiệm hệ có dạng: xk+1 = Cxk + g đó: ! ! −0, −0, 0, −0, ; C = −0, g = 0, −0, −0, 0, Ta thấy kCk < nên phép lặp hội tụ Chọn x0 = g = ( 0, 0, 0, )T ta có kết tính tốn q trình lặp Jacobi là: k k x1 0.12 0.216 0.2164 0.152 0.139712 k x2 -0.04 0.184 0.12 0.15072 0.134456 k x 0.12 0.15072 0.134456 k -0.04 0.184 k−1 x − x 0.88 0.188 0.0896 0.0372 0.016264 24 Ta thấy bước lặp thứ 4, x4 − x3 = 0, 016264 < ε nên trình lặp dừng Vậy nghiệm gần hệ so với sai số 0,02 (0, 139712, 0, 134456, 0, 134456)T Kết trình lặp theo Gauss-Seidel Từ ma trận C suy ra: C1 = 0 −0, 0 −0, −0, ! ; C2 = −0, −0, 0 −0, 0 ! Chọn x0 = (1; 0, 2; 0, 2)T kết trình lặp thể sau: k k x1 0,92 0,2096 0,130896 ≈ 0, 144594 k x2 - 0,024 0,1108 ≈ 0, 146637 ≈ 0, 142183 k x k - 0,024 0,13592 ≈ 0, 146637 ≈ 0, 142644 x − xk−1 0,224 0,7104 0,07 0,013698 Ta thấy đến bước 3, ta có: x4 − x3 = 0, 013698 < ε nên trinh lặp dừng Vậy nghiệm gần hệ với sai số 0,02 (0, 144594; 0, 142183; 0, 142644)T  Chú ý nghiệm hệ 71 , 71 , 17 Như vậy, so sánh hai kết ta thấy phương lặp theo Gauss-Seidel hội tụ nhanh phương pháp Jacobi cho kết xác 25 Chương Tổng quan phương pháp khử Gauss giải hệ phương trình đại số tuyến tính 2.1 Sơ lược thuật tốn song song giải hệ phương trình đại số tuyến tính 2.1.1 Sơ lược phần mềm giải phương trình đại số tuyến tính máy tính song song Nếu trước đây, thuật toán cài đặt máy tính thuật tốn tuần tự, năm 1970, tư tưởng máy tính vectơ (vector computer) máy tính song song (parallel computer) bắt đầu trở nên thực Các máy tính khoa học IBM 360-91 thiết kế với tư tưởng song song hóa, cịn ẩn giấu cấu trúc máy tính, máy tính CRAY (1976) đánh dấu đời máy tính vectơ Các máy tính vận hành với qui tắc tương tác Nói cách thơ thiển, máy tính thực phép tốn cách tuần tự, cịn muốn thuật tốn chạy nhanh thông số đầu vào cần phải biểu diễn (nếu có thể) dạng vectơ Các máy tính vectơ thường gồm số sử lí vectơ với nhớ chung lớn Vào năm 2000, máy chạy với tốc độ cỡ 109 phép toán giây Vào năm 1990, loại máy tính khoa học xuất thị trường Đó máy tính song song với 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 thiết 26 kế vào năm 1972), gần máy tính đạt hiệu cao cho phép giải toán kĩ thuật Vào năm 2000, máy tính song song đạt tốc độ cỡ 1012 phép toán giây Để đạt hiệu cao tính tốn, cần xây dựng thuật tốn cho máy tính vectơ máy tính song song Dưới 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 máy tính song song BLAS BLAS (Basic Linear Algebra Subprograms) gói thủ tục giải tốn đại số tuyến tính máy tính song song Lawson, Hanson, Kincaid Krogh xây dựng vào năm 1979 Gói thủ tục chủ yếu liên quan đến phép toán vectơ cộng vectơ, nhân số 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 tốn bình phương tối thiểu) viết dựa BLAS cơng bố vào năm 1979 BLAS có thêm số thủ tục nhân ma trận với vectơ, tìm ma trận nghịch đảo, Hầu hết thuật tốn đại số tuyến tính, có phép khử Gauss, lập trình máy tính song song nhờ BLAS BLAS xuất vào năm 1990 cho phép nhân hai ma trận phép tốn khác máy tính song song LAPACK LAPACK (for Linear Algebra PACKage) xuất vào năm 1992 LAPACK kết hợp LINPACK gói thủ tục tính giá trị riêng EISPACK (the package for eigenvalues computations) LAPACK xây dựng gói phần mềm giải tốn đại số tuyến tính hiệu máy vi tính xách tay nhờ kết nối với BLAS song song hóa 27 2.1.2 Giải hệ tam giác máy tính với nhớ phân tán Bởi cần địi hỏi O(n2 ) cho giải xi giải ngược gồm O(n3 ) phép toán phân rã LU, giải hệ tam giác có hấp dẫn ưu đặc biệt máy tính song song Hơn nữa, thường xảy cần đồng thời giải số hệ với vế phải khác nhau, nên phải phân rã hệ ban đầu vào hệ tam giác lần Rất nhiều thuật toán song song xây dựng để giải hệ tam giác Tuy nhiên, nhiều thuật tốn số chúng địi hỏi phải có O(n3 ) sử lí Điều khơng thực tế máy có khoảng trăm đến nghìn sử lí Dưới trình bày thuật toán Heath Romine (xem, [6], trang 78) Giả sử ta bắt đầu với dãy thuật toán giả sử Lx = b giải, L ma trận tam giác Có hai cách để tính nghiệm Cách thứ phương pháp cổ điển, tọa độ xác nghiệm tính for i=1 n for j=1:i-1 b(i)=b(i)-l(i,j)*x(j) end x(i)=b(i)/l(i,i) end Thuật toán gọi thuật tốn tích vơ hướng, phép tốn tính tích vơ hướng dịng thứ i L (ngoại trừ phần tử đường chéo với vectơ có thành phần tính từ trước Thuật toán thứ hai sử dụng kiện sau thành phần vectơ x(i) tính, vế phải phương trình cải tiến thêm lần nữa: for j=1 n x(j)=b(j)/l(j,j) for i=j+1:n b(i)=b(i)-l(i,j)*x(j) end 28 end Ta gọi thuật toán Saxpy vịng lặp phép thay thế, x(j) số Nhận xét điều tương ứng với trao đổi hai vòng lặp thuật tốn Có thể xem chế vận hành tính tốn song song xử lí [6], p 79 2.2 Các phương pháp giải hệ phương trình có ma trận hệ số thưa Nghiên cứu ma trận thưa quan tâm phát triển mạnh mẽ vòng 50 năm trở lại Trong chương trước ta nhắc đến số dạng ma trận đặc biệt: ma trận đối xứng, ma trận xác định dương, ma trận đường chéo ma trận tam giác (trên dưới) Tuy nhiên, ta chưa quan tâm đến lớp ma trận có cấu trúc thưa, tức ma trận có nhiều phần tử khơng Khó đưa định nghĩa xác ma trận thưa, thí dụ, cần phải có phần tử 0, chí ma trận phải có phần trăm số phần tử gọi thưa Đã có kĩ thuật đặc biệt để lưu trữ ma trận thưa có thuật tốn làm cực tiểu nhớ thuật toán đánh giá số phép toán sử dụng khử Gauss cho ma trận thưa Các thuật toán với ma trận thưa song song hóa đạt kì tích giải hệ phương trình có đến hàng triệu biến vào năm 1996 Có số sách nói ma trận thưa Xem, thí dụ, [3], [4] Một hạn chế kĩ thuật thao tác với ma trận thưa thuật toán nói chung phức tạp (phức tạp nhiều so với thuật tốn thơng thường) nhiều khó tối ưu Các loại ma trận thưa thường gặp tính tốn thực tế ma trận ba đường chéo, ma trận băng, ma trận chéo khối, số ma trận khác có thêm số phần tử khác khơng nằm ngồi quy luật Để giải hệ phương trình có ma trận hệ số thưa với phương pháp nêu chương I thích hợp song lại khơng tối ưu như: khơng tiết kiệm nhớ, khơng tiết kiệm thời gian, Vì vậy, ta xem xét số phương pháp đặc thù suy từ phương pháp để giải hệ phương trình dạng 29 Giả sử ta cần tìm nghiệm phương trình vi phân thường bậc hai dạng: y 00 + p(x)y + q(x)y = f (x) (2.1) đoạn [a, b] với điều kiện hai nút a b phương pháp sai phân Ta chia đoạn [a, b] thành n − đoạn nhỏ nút điểm:  x1 ≡ a; x2 = x1 + h; ; xn ≡ b; b−a h= n−1  Ta kí hiệu y(xk ) = yk Tại nút lưới ta sử dụng sơ đồ sai phân trung tâm bậc hai cho đạo hàm bậc hai bậc hàm y(x) sau: yk+1 − 2yk + yk−1 yk+1 − yk−1 ; y = (2.2) k h2 2h Khi phương trình sai phân xấp xỉ phương trình (2.1) điểm xk (1 < k < n) điều kiện biên hai điểm mút có dạng tổng quát: 00 yk = ak yk−1 + bk yk + ck yk+1 = dk (2.3) đó: y1 , y2 , , yn , ẩn Và ak , bk , ck , dk hệ số phụ thuộc vào h, p(xk ), q(xk ), f (xk ) Khi (2.3) hệ phương trình n ẩn với ma trận hệ số có dạng:     b1 c1 d1   a2 b c  d2   a b   d  c 0 3      ; d =   A= (2.4)      0 an−2 bn−2 cn−2   dn−2   0 d  an−1 bn−1 cn−1  n−1 0 an bn dn Ma trận hệ số A trường hợp 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 phương pháp khử Gauss áp dụng cho ma trận ba đường chéo.Thuật toán ma trận gồm hai bước: bước thứ 30 ta tính hệ số truy hồi,bước thứ hai ta tính nghiệm hệ công thức truy hồi thông qua hệ số bước một.Cụ thể, phương pháp Thomas sau: Từ phương trình hệ ta có: b1 y1 + c1 y2 = d1 Suy ra: y1 + p1 y2 = q1 ; p1 = c1 /b1 , q1 = d1 /b1 (i) Từ phương trình thứ hai kết hợp phương trình (i) ta nhận được: y2 + p2 y3 = q2 ; p2 = c2 /b2 − a2 p1 , q2 = d2 − a2 q /b2 − a2 p1 (2i) Nói chung phương trình thứ k ta nhận được: yk + pk yk+1 = qk (3i) với pk = ck /(bk − ak pk−1 ); qk = (dk − ak qk−1 )/(bk − ak pk−1 ); k = 1, , n Ở phương trình (3i) ứng với k = n cho ta giá trị yn = qn ( qn = (dn − an qn−1 )/(bn − an pn−1 ) Sau tính yn dùng phương trình (3i) ngược trở lại để tính yn−1 , , y1 Cũng giống phương pháp Gauss, tính nghiệm hệ phương trình thuật tốn Thomas ta có phép chia cho phần tử pk−1 tính hệ số pk , qk ta có phép chia cho phần tử ((bk − ak pk−1 , k = 1, , n) ta thường dẫ tới sai số làm tròn số làm cho toán bị sai số lớn Vậy để thuật toán ổn định điều kiện đủ là: |bk | > |ak | + |ck | , (k = 1, , n) nghĩa ma trận hệ số A ma trận chéo trội 31 (2.5) 2.2.2 Hệ ma trận băng Phương pháp Thomas cải biên Ma trận băng ma trận có phần tử khác khơng nằm số đường chéo xung quanh đường chéo Ma trận băng gồm m1 đường chéo trên, m2 đường chéo đường chéo chính, ≤ m1 , m2 ≤ n, viết dạng tổng quát sau: aij = ∀i > j + m2 , ∀j > i + m1 Trong trường hợp ta có biểu thức dạng tổng quát: xk + c1k xk+1 + + cm1 k xm1 +k = dk (k = 1, , n) (2.6) Các hệ số c1k , , cm1 k , dk xác định từ nhỏ đến lớn công thức truy hồi theo hệ số hệ phương trình hệ số bước có số k nhỏ Sau tính hệ số trên, ứng với cơng thức cuối (k = n) cho ta kết xn , bước ta tìm giá trị ẩn từ xn−1 , , x1 theo công thức (2.6) theo chiều giảm dần k 32 Chương Sử dụng máy tính điện tử khoa học phần mềm Maple đại số tuyến tính Tính tốn với ma trận nói chung, hay thực phép toán đơn giản nhân hai ma trận nhiều thời gian làm phép toán (nhân cộng), dễ nhầm lẫn, chưa nói đến tính tốn phức tạp (tính định thức, tính ma trận ngược, ) Máy thay ta thực thao tác nhanh gọn xác Với mục đích áp dụng kiến thức trình bày hai chương trên, đặc biệt chương 1, vào giảng dạy đại số tuyến tính giải hệ phương trình đại số tuyến tính trường phổ thơng, chương giới thiệu cách sử dụng máy tính điện tử khoa học CASIO fx-570VN PLUS , Vinacal 570 ES Plus phần mềm Maple đại số tuyến tính 3.1 3.1.1 Sử dụng máy tính điện tử khoa học giải hệ phương trình tuyến tính Tính tốn ma trận CASIO fx-570VN PLUS Khai báo ma trận Mở máy vào chương trình tính tốn với ma trận nhờ phím ON M ODE Màn hình xuất hiện: 33 Matrix? 1: MatA 2: MatB 3:MatC Nghĩa là, ta khai báo làm việc với ba ma trận (matrix) Muốn khai báo ma trận A bấm phím Màn hình xuất hiện: MatrixA (m × n) m × n? 1: × 2: × 3: × 4: × 5: × 6: × Nếu bấm phím ∇ hình xuất hiện: MatrixA (m × n) m × n? 1: × 2: × 3: × Tức là, khai báo ma trận A với tất kích cỡ từ 1×1 dến 3×3 Cần khai báo ma trận với kích cỡ bấm số tương ứng Thí dụ, bấm số ma trận × 3, hình ma trận A để ta khai báo ! −2 Để khai báo ma trận A = −1 , ta làm sau: Mở máy: ON Vào chương trình ma trận: M ODE Khai báo ma trận A: Khai báo số chiều ma trận A × 3: Khai báo hệ số ma trận A: = (−) = = = = (−) = = = Sau khai báo ma trận A, ta bấm SHIF T ma trận B Màn hình hiện: 34 để tiếp tục khai báo 1: Dim 2: Data Bấm phím (Data-Dữ liệu) Màn hình hiện: Matrix? 1: MatA 2: MatB 3: MatC Bấm phím để chuẩn bị khai báo ma trận B = −1 −3 −1 ! có số chiều × Màn hình hiện: MatrixB (m × n) m × n? 1: × 2: × 3: × 4: × 5: × 6: × Bấm phím , tức khai báo ma trận B có số chiều × Màn hình bảng ma trận Khai báo hệ số ma trận B : = (−) = (−) = = (−) = Bấm phím AC để đưa hình chế độ tính tốn ma trận Sau bấm phím SHIF T , hình xuất hiện: 1: Dim 2: Data 3: MatA 4: MatB 5: MatC 6: Mat Asn 7: Det 8: Trn Muốn tính ta sử dụng bảng Ví dụ Tính tích AB hai ma trận A B 35

Ngày đăng: 18/10/2023, 11:26

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

TÀI LIỆU LIÊN QUAN

w