GIỚI THIỆU PHƯƠNG PHÁP SỐ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH

7 126 0
GIỚI THIỆU PHƯƠNG PHÁP SỐ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH

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

Thông tin tài liệu

Ta đã biết hai cách giải hệ phương trình tuyến tính cỡ n×n. Đó là phương pháp khử Gauss và quy tắc Cramer. Khi hệ có nghiệm, các cách giải này cho ta nghiệm đúng sau một số hữu hạn bước (với giả thiết không có sai số làm tròn). Tuy nhiên các cách giải này thường chỉ áp dụng cho hệ có kích thước nhỏ. Giải hệ cỡ lớn, như hệ 30×30, theo quy tắc Cramer trên chiếc máy tính có tốc độ tính 20 nghìn tỉ phép tínhgiây mất 378080 tỉ năm. Ngoài ra, kết quả nhận được có thể sai lệch so với nghiệm đúng rất nhiều do những sai số xuất hiện quá nhiều khi máy tính làm tròn. Ngay cả phương pháp khử Gauss, mặc dù có số phép tính ít hơn quy tắc Cramer rất nhiều, cũng không hiệu quả trong trường hợp hệ cỡ lớn hoặc ma trận hệ số có nhiều số 0. Trong phần này ta nghiên một số phương pháp hiệu quả hơn để giải hệ phương trình tuyến tính cỡ n×n. Đó là các phương pháp giải gần đúng với độ chính xác tùy ý.

Chương 10 GIỚI THIỆU PHƯƠNG PHÁP SỐ GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH _ Ta biết hai cách giải hệ phương trình tuyến tính cỡ n×n Đó phương pháp khử Gauss quy tắc Cramer Khi hệ có nghiệm, cách giải cho ta nghiệm sau số hữu hạn bước (với giả thiết khơng có sai số làm tròn) Tuy nhiên cách giải thường áp dụng cho hệ có kích thước nhỏ Giải hệ cỡ lớn, hệ 30×30, theo quy tắc Cramer máy tính có tốc độ tính 20 nghìn tỉ phép tính/giây 378080 tỉ năm Ngoài ra, kết nhận sai lệch so với nghiệm nhiều sai số xuất nhiều máy tính làm tròn Ngay phương pháp khử Gauss, có số phép tính quy tắc Cramer nhiều, không hiệu trường hợp hệ cỡ lớn ma trận hệ số có nhiều số Trong phần ta nghiên số phương pháp hiệu để giải hệ phương trình tuyến tính cỡ n×n Đó phương pháp giải gần với độ xác tùy ý 10.1 KIẾN THỨC CHUẨN BỊ Tất phương pháp giải gần hệ phương trình ta trình bày có chung đặc điểm xây dựng dãy vectơ hội tụ tới nghiệm Bây ta xác hóa khái niệm dãy vectơ, hội tụ Giới hạn dãy vectơ Cho n dãy số { x1( k ) }, { x2( k ) }, , { xn(k ) } với k ∈N xi(k ) số hạng thứ k dãy số thứ i Với k, ký hiệu v(k) vectơ ( x1( k ) , x2( k ) , , xn(k ) ) ∈ Rn, ta có dãy vectơ v(0), v(1), v(2), Dãy viết tắt {v(k)} Như dãy vectơ Rn chẳng qua n dãy số cho đồng thời Khi k → ∞, thành phần thứ i vectơ v(k) có giới hạn αi, v = (α1, α2, , αn) gọi giới hạn dãy {v(k)}, ta nói {v(k)} hội tụ tới v  2k −  Ví dụ Khi k → ∞, dãy vectơ {v(k) =  , ,  } hội tụ tới v = (0, 2, 2) k k  Chuẩn vectơ chuẩn ma trận Trong Rn ta định nghĩa độ dài vectơ v theo tích vơ hướng (Xem 6.1) Độ dài có ba tính chất giống tính chất vectơ hình học (i) ||v|| ≥ 0, với dấu "=" xảy v = (ii) ||cv|| = |c|||v|| vô hướng c (iii) ||v + w|| ≤ ||v|| + ||w|| (bất đẳng thức Tam giác) Nhờ khái niệm độ dài vectơ, ta hiểu đơn giản {v(k)} hội tụ tới v có nghĩa ||v(k) - v||→ k → ∞ Tuy nhiên, độ dài vectơ định nghĩa theo tích vơ hướng có nhược điểm tính tốn cồng kềnh, khơng thuận tiện thực hành, nên người ta tìm định nghĩa độ dài khác tốt Sau định nghĩa mới: Với v = (x1, x2, , xn)∈Rn, ta gọi max{|x1|, , |xn|} độ dài v Độ dài thỏa mãn ba tính chất (i), (ii), (iii) nói trên, nói chung với v∈Rn độ dài khác ||v|| Vì vậy, để phân biệt ta gọi chuẩn vơ hạn vectơ, ký hiệu ||v||∞ = max{|x1|, , |xn|} Đối với chuẩn ta có tiêu chuẩn hội tụ Định lý 10.1 {v(k)} hội tụ tới v ||v(k) - v||∞→ k →∞ Sau này, lúc xác lập hội tụ dãy vectơ tới nghiệm đánh giá sai số nghiệm xấp xỉ so với nghiệm ta cần đến khái niệm chuẩn ma trận Chuẩn vô hạn ma trận thực B = (bij)n×n, ký hiệu ||B||∞, số thực n n n  ||B||∞ = max ∑ | b1 j |, ∑ | b2 j |, , ∑ | bnj | j =1 j =1  j =1  Ví dụ − 0.06 0.02   0.05 có ||B||∞ = max{0.08; 0.08; 0.03} = 0.08 B = − 0.03  − 0.01 0.02  10.2 PHƯƠNG PHÁP LẶP ĐƠN Nội dung phương pháp lặp đơn Cho hệ Ax = b cỡ n×n Có nhiều cách để đưa hệ dạng x = Bx + g tương đương với Ax = b Chẳng hạn, ta tách A thành S - T, S khả nghịch, Ax = b tương đương với Sx = Tx + b Đặt B = S-1T, g = S-1b, ta có hệ x = Bx + g Ta xây dựng dãy vectơ {v(k)}, sau: Cho trước v(0) tính v(k) theo công thức (1) v(k) = Bv(k-1) + g (k = 1, 2, ) Ta gọi (1) công thức tính lặp, k ≥ số lần lặp Phương pháp tính {v(k)} gọi phương pháp lặp đơn Nếu {v(k)} hội tụ, ta nói phương pháp lặp đơn hội tụ Nếu {v(k)} hội tụ tới v, v nghiệm Ax = b Thật vậy, chuyển qua giới hạn hai vế (1) ta có v = Bv + g, nghĩa v nghiệm x = Bx + g, tức nghiệm Ax = b Với ε > cho trước, k đủ lớn ta có ||v(k) - v||∞ ≤ ε Khi ta nói v(k) nghiệm xấp xỉ nghiệm với độ xác ε Trong thực tế, ta bắt buộc phải dừng tính tốn bước thứ k xem v(k) nghiệm gần Ví dụ Cho hệ phương trình 4x1 + 0.24x2 - 0.08x3 = 0.09x1 + 3x2 - 0.15x3 = 0.04x1 - 0.08x2 + 4x3 = 20 Lần lượt chia phương trình 1, 2, cho 4, 3, chuyển vế, ta có hệ x1 = -0.06x2 + 0.02x3 + x2 = -0.03x1 + 0.05x3 + x3 = -0.01x1 + 0.02x2 + Hệ có dạng x = Bx + g, với − 0.06 0.02   0.05 B = − 0.03  − 0.01 0.02  2 g = 3 5  Với v(k) = ( x1( k ) , x 2( k ) , x3( k ) ), v(k-1) = ( x1( k −1) , x 2( k −1) , x3( k −1) ) công thức (1) cụ thể x1( k ) = -0.06 x 2( k −1) + 0.02 x3( k −1) + x 2( k ) = -0.03 x1( k −1) + 0.05 x3( k −1) + x3( k ) = -0.01 x1( k −1) + 0.02 x 2( k −1) + Khởi đầu ta lấy v(0) = (2, 3, 5) Thay v(0) vào vế phải cơng thức ta tính v(1) = ( x1(1) , x2(1) , x3(1) ) với x1(1) = -0.06(3) + 0.02(5) + = 1.92 x2(1) = -0.03(2) + 0.05(5) + = 3.19 x3(1) = -0.01(2) + 0.02(3) + = 5.04 Sự hội tụ phương pháp lặp đơn đánh giá sai số nghiệm xấp xỉ Dưới điều kiện đủ cho hội tụ phương pháp lặp đơn áp dụng cho phương trình x = Bx + g với B = (bij)n×n Định lý 10.2 Nếu ||B||∞ chọn trước, muốn xác định số lần lặp k để nghiệm xấp xỉ đạt độ xác ε (tức ||v(k) - v||∞ < ε), ta cần tính v(1) tìm k nhờ giải bất phương trình || B ||∞k ||v(1) - v(0)||∞ ≤ε 1− || B ||∞ 2) Sai số q trình tính tốn khơng ảnh hưởng đến kết cuối bước có sai số lại xem xấp xỉ ban đầu v(0) Vì vậy, người ta nói phương pháp lặp đơn có khả tự sửa sai Ví dụ Hệ phương trình Ví dụ có ||B||∞ = 0.08 < 1, nên phương pháp lặp đơn hội tụ Ta đánh giá sai số v(3) so với nghiệm v theo (2): v(1) - v(0) = (-0.08, 0.19, 0.04) ||v(3) - v||∞ ≤ || B ||3∞ ||v(1) - v(0)||∞ = 1− || B ||∞ 0.083 0.083 max{0.08; 0.19; 0.04} = 0.19 ≈ 10-4 − 0.08 − 0.08 Độ xác gần 10-4, nên cao Phương pháp Jacobi Nếu hệ Ax = b ma trận A có tất phần tử đường chéo khác 0, ta tách A thành hiệu S - T, − a12 − a1n  0 a11     − a2 n  a22 −a , , S=  T =  21  M   O O M      ann   − an1 − an  Ax = b tương đương với Sx = Tx + b Đặt − a12 − a1n   0 a11 a11    − a2 n   − a21 a22  g = S-1b, B = S-1T =  a22   O M  M     − an1 − an   ann ann  ta có hệ tương đương x = Bx + g Phương pháp lặp đơn tiến hành theo công thức v(k+1) = Bv(k) + g gọi phương pháp Jacobi Trong Ví dụ ta dùng phương pháp Jacobi Phương pháp Jacobi hội tụ, A = (aij)n×n ma trận đường chéo trội, tức với i = 1, , n, |aii| > n ∑| a ij | j =1 j ≠i Thật vậy, tổng trị tuyệt đối phần tử hàng B nhỏ 1, nên ||B||∞ < Do đó, theo Định lý 10.2, phương pháp lặp đơn v(k+1) = Bv(k) + g hội tụ với v(0) ∈Rn Trong Ví dụ 1, ma trận hệ số hệ phương trình ma trận đường chéo trội, nên phương pháp hội tụ 10.3 PHƯƠNG PHÁP SEIDEL Nội dung phương pháp Seidel Để dễ hình dung nội dung phương pháp Seidel, ta quay lại Ví dụ 10.2 Trong phương pháp lặp đơn v(k) = ( x1( k ) , x 2( k ) , x3( k ) ) tính qua v(k-1) = ( x1( k −1) , x 2( k −1) , x3( k −1) ) nhờ cơng thức tính lặp x1( k ) = -0.06 x 2( k −1) + 0.02 x3( k −1) + x 2( k ) = -0.03 x1( k −1) + 0.05 x3( k −1) + x3( k ) = -0.01 x1( k −1) + 0.02 x 2( k −1) + Người ta cải tiến phương pháp lặp đơn sau: tính x 2( k ) sử dụng x1( k ) vừa tính được, tính x3( k ) sử dụng x1( k ) , x 2( k ) vừa tính Cụ thể ta tính v(k) = ( x1( k ) , x 2( k ) , x3( k ) ) qua v(k-1) = ( x1( k −1) , x 2( k −1) , x3( k −1) ) theo công thức x1( k ) = -0.06 x 2( k −1) + 0.02 x3( k −1) + x 2( k ) = -0.03 x1( k ) + 0.05 x3( k −1) + x3( k ) = -0.01 x1( k ) + 0.02 x 2( k ) + Với v(0) = (2, 3, 5), ta tính v(1) = ( x1(1) , x2(1) , x3(1) ) với x1(1) = -0.06(3) + 0.02(5) + = 1.92 x2(1) = -0.03(1.92) + 0.05(5) + = 3.1924 x3(1) = -0.01(1.92) + 0.02(3.1924) + = 5.044648 Cách làm gọi phương pháp Seidel (một biến dạng phương pháp lặp đơn) Ý phương pháp Seidel thành phần vừa tính v(k) sử dụng để tính thành phần Ưu điểm phương pháp Seidel tiết kiệm nhớ máy tính nói chung phương pháp Seidel hội tụ nhanh phương pháp lặp đơn Sự hội tụ phương pháp Seidel đánh giá sai số nghiệm xấp xỉ Dưới điều kiện đủ cho hội tụ phương pháp Seidel áp dụng cho phương trình x = Bx + g với B = (bij)n×n Định lý 10.3 Nếu ||B||∞

Ngày đăng: 19/04/2019, 10:55

Từ khóa liên quan

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

Tài liệu liên quan