Tiểu luận MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY TÌM HIỂU VÀ ỨNG DỤNG THUẬT TOÁN SONG SONG TRONG BÀI TOÁN GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH

35 928 1
Tiểu luận MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY TÌM HIỂU VÀ ỨNG DỤNG THUẬT TOÁN SONG SONG TRONG BÀI TOÁN GIẢI HỆ PHƯƠNG TRÌNH 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 QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY ĐỀ TÀI : TÌM HIỂU VÀ ỨNG DỤNG THUẬT TOÁN SONG SONG TRONG BÀI TOÁN GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH GVHD: PGS-TS NGUYỄN PHI KHỨ HỌC VIÊN: HOÀNG NGUYÊN KHANG MSHV: CH1301092 TPHCM , 07.06.2014 MỤC LỤC Hoàng Nguyên Khang - CH1301092 CHƯƠNG 1. HỆ PHƯƠNG TRÌNH TUYẾN TÍNH SONG SONG 1.1 Giới thiệu các phương pháp giải 1.1.1 Phương pháp Cramer - Nội dung của phương pháp này cũng chính là định lý sau: a. Định lý: Cho hệ Cramer 11 1 12 2 1 1 21 1 22 2 2 2 1 1 2 2 (2) n n n n n n nn n n a x a x a x b a x a x a x b a x a x a x b + + + =   + + + =     + + + =  trong đó 11 12 1 21 22 2 1 2 n n n n nn a a a a a a A a a a       =       M M O M là ma trận các hệ số. Khi đó, - Nếu det 0A ≠ thì hệ phương trình có nghiệm duy nhất xác định bởi công thức sau: det det i i A x A = , trong đó i A chính là ma trận thu được ma trận A bằng cách thay cột i bởi cột hệ số tự do 1 2 n b b b             M o Nếu detA = 0 và tồn tại {1,2, , }j n∈ sao cho | | 0 j A ≠ thì hệ phương trình vô nghiệm o Nếu detA = 0 và | | 0, 1, j A j n= ∀ = thì hệ phương trình không có nghiệm duy nhất (nghĩa là vô nghiệm hoặc vô số nghiệm). Nếu xảy ra trường hợp này thì ta sẽ dùng phương pháp Gauss (được nêu trong phần tiếp theo) để giải hệ phương trình này. b. Hệ quả: Hệ phương trình tuyến tính thuần nhất n phương trình n ẩn có nghiệm không tầm thường khi và chỉ khi định thức của ma trận các hệ số bằng 0. Nhận xét: Phương pháp này dùng để giải hệ phương trình có số phương trình bằng số ẩn. 3 Hoàng Nguyên Khang - CH1301092 c. Các ví dụ: Ví dụ 1: Giải hệ phương trình sau: 1 2 2 3 1 3 (1) ax bx c cx ax b cx bx a + =   + =   + =  với a, b, c là các số khác 0. Giải: Ta có 0 det 0 2 0 0 a b A c a abc c b = = ≠ nên đây là hệ Cramer. Hơn nữa 2 2 2 1 0 det ( ) 0 c b A b c a a b c b a b = = − + 2 2 2 2 0 det 0 ( ) a c A b a a b c a c a b = = − + + 2 2 2 3 det 0 ( ) 0 a b c A c b a b c c c a = = + − Do đó, hệ có nghiệm duy nhất 2 2 2 1 1 det det 2 A a b c x A ac − + = = ; 2 2 2 2 2 det det 2 A a b c x A bc − + + = = ; 2 2 2 3 3 det det 2 A a b c x A ab + − = = ■ 1.1.2 Phương pháp Gauss a. Định lý Cronecker Capelly: Cho hệ phương trình tuyến tính tổng quát 11 1 12 2 1 1 21 1 22 2 2 2 1 1 2 2 (1) n n n n m m mn n m a x a x a x b a x a x a x b a x a x a x b + + + =   + + + =     + + + =  A và A lần lượt là các ma trận hệ số và ma trận hệ số mở rộng. Khi đó: 4 Hoàng Nguyên Khang - CH1301092 i) Nếu rankA rank A< thì hệ (1) vô nghiệm; ii) Nếu rankA rank A r= = thì hệ (1) có nghiệm. Hơn nữa:  Nếu r = n thì hệ (1) có nghiệm duy nhất.  Nếu r < n thì hệ (1) có vô số nghiệm phụ thuộc n – r tham số. b. Thuật toán sau để giải hệ phương trình tuyến tính (gọi là thuật toán Gauss): Lập ma trận các hệ số mở rộng A . Bằng các phép biến đổi sơ cấp trên dòng đưa ma trận A về dạng bậc thang. Giả sử ma trận bậc thang cuối cùng có dạng: 1 2 * 1 1 1 * 2 2 2 * 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r i n i n r ri rn r m c c d c c d A C d c c d d +       → =                   Hệ phương trình tương ứng với ma trận C tương đương với hệ ban đầu. Do đó: - Nếu tồn tại ít nhất i d với 1r i m+ ≤ ≤ khác 0 thì hệ vô nghiệm. - Nếu 1 2 0 r r m d d d + + = = = = thì hệ có nghiệm. Khi đó các cột 1 2 , , , r i i i (là các cột được đánh dấu * ) được giữ lại bên trái và các 1 2 , , , r i i i x x x là các ẩn, còn các cột còn lại thì được chuyển sang bên phải, các ẩn k x tương ứng với các cột này sẽ trở thành tham số. Vậy ta sẽ có n – r tham số và hệ đã cho tương ứng với hệ 1 2 2 1 1 1 1 2 2 ( ) 0 ( ) (3) ( ) 0 0 r r i i i k i k r k ri c c c d x c d x d x c               Trong đó ( ) i k d x là các hàm tuyến tính của k x với 1 2 , , , r k i i i≠ . Hệ phương trình (3) là hệ phương trình dạng tam giác ta có thể dễ 5 Hoàng Nguyên Khang - CH1301092 dàng giải được bằng cách thế dần từ dưới lên, tức là tính lần lượt 1 1 , , , r r i i i x x x − . Chú ý: Nếu trong quá trình biến đổi xuất hiện 1 dòng mà bên trái bằng 0 còn bên phải là số khác 0 thì ta có thể kết luận hệ phương trình vô nghiệm và không cần làm gì tiếp. Nhận xét: Nếu ma trận thu được cuối cùng trong thuật toán Gauss có dạng A’|B’ thì A’ được gọi là ma trận rút gọn theo dòng từng bậc hay đơn giản là ma trận rút gọn, ký hiệu A R . Khi đó hạng của ma trận A bằng hạng của A R . c. Các ví dụ: a) Giải hệ phương trình sau: 1 2 3 1 2 3 1 2 3 2 2 0 2 2 2 (*) 3 4 2 x x x x x x x x x + + =   − + − =   + + = −  Giải: Vì 1 2 3 | | | | | | | | 0A A A A= = = = nên ta không thể dùng phương pháp Cramer để giải hệ phương trình này. Ta sẽ áp dụng phương pháp Gauss để giải hệ phương trình trên. Ta viết hệ dưới dạng ma trận hóa như sau: 3 3 2 2 2 1 3 3 1 2 2 2 3 1 5 1 2 2 0 1 2 2 0 1 2 2 0 2 1 2 2 0 5 2 2 0 5 2 2 3 1 4 2 0 5 2 2 0 0 0 0 1 2 2 0 0 1 2 / 5 2 / 5 0 0 0 0 d d d d d d d d d d d → + → + → − →             − − → →             − − − −           →       Vậy hệ phương trình (*) có vô số nghiệm phụ thuộc vào tham số 3 x . 6 Hoàng Nguyên Khang - CH1301092 1 2 3 3 3 3 2 3 3 4 4 4 6 2 2 2 5 5 5 5 2 2 5 5 x x x x x x x x x − − −  = − − = + − = −    = −   ∈    ¡ ■ Chú ý: - Khi hệ phương trình có vô số nghiệm thì dù giải bằng phương pháp nào ta cũng có thể có nhều cách chọn biến tự do. - Khi giải hệ phương trình tuyến tính thuần nhất, ta có nhiều cách chọn hệ nghiệm cơ bản. b) Giải hệ phương trình 1 2 3 1 2 3 1 2 3 2 5 9 3 2 3 6 25 x x x x x x x x x + + = −   − + =   − − =  Giải: Ta tiến hành giải bằng thuật toán Gauss như sau: 2 2 1 3 3 1 3 3 2 3 4 1 2 5 9 1 2 5 9 1 2 5 9 1 1 3 2 0 3 2 11 0 3 2 11 3 6 1 25 0 12 16 52 0 0 8 8 d d d d d d d d d → − → − → −  −   −   −        − → − − → − −             − − − − −       Vậy hệ phương trình đầu tương đương với hệ: 1 2 3 2 3 3 2 5 9 3 2 11 - 8 8 x x x x x x + + = −   − − =   =  Do đó nghiệm của hệ là 1 2 3 ( , , ) (2, 3, 1)x x x = − − . 1.1.3 Phương pháp lặp đơn - Trở lại bài toán giải hệphương trình tuyến tính Ax =b (2.4) Ta đưa (2.4) về dạng x = Cx + d (2.5) - Trong đó ma trận C và vec tơ d được xây dựng từ A và b. Để thực hiện phép lặp ta chọn một vec tơ ban đầu x (0) , sau đó tính các x (i) , i=1,2, theo công thức lặp sau: 7 Hoàng Nguyên Khang - CH1301092 Véc tơ x (k) được gọi là vec tơ lặp thứ k. - Ta có định lý sau: - Định lý. (Sự hội tụ của phương pháp) - Nói chung theo phương pháp lặp đơn, điều kiện để phép lặp được hội tụ thì ||C|| < 1. Tuy nhiên trong thực tế thì ta chỉ có ma trận A. Một câu hỏi đặt ra là ma trận A phải thỏa mãn điều kiện gì để ta có thể đưa (2.4) về dạng (2.5) và áp dụng phương pháp lặp đơn? Để phương pháp lặp hội tụ thì thường ma trận A phải thỏa mãn tính chéo trội của ma trận vuông. - Định nghĩa: (Tính chéo trội của một ma trận vuông): Ma trận A với các thành phần a ij được gọi là có tính chéo trội, nếu giá trị tuyệt đối của các phần tử nằm trên đường chéo chính lớn hơn tổng các giá trị tuyệt đối của các phần còn lại nằm cùng hàng, tức là: Sau đây sẽ giới thiệu 2 phương pháp lặp đơn Jacobi và Gaus- Seidel 8 Hoàng Nguyên Khang - CH1301092 1.1.4 Phương pháp lặp Jacobi - Với giả thiết ma trận A có tính chéo trội, khi đó các hệ số a ii ≠0, i = 1,2, ,n do đó ta có thể chia phương trình thứ i của hệ(2.1) cho a ii và nhận được hệ tương đương Từ đây ta có: Khi đó ma trận C, vector d là: 9 Hoàng Nguyên Khang - CH1301092 (Đến đây ta đã đưa hệ(2.4) về dạng (2.5) và dễ thấy rằng ma trận C thỏa mãn điều kiện lặp đơn, tức là ||C||∞< 1.). Vậy đến đây ta tiếp tục áp dụng phương pháp lặp (2.6) đểtính nghiệm ởcác bước lặp như sau: Với vectơ x (0) cho trước bất kỳ, ví dụ x (0) = θ(vecto0) ta có thểtính các vectơ x (k) tại bước lặp k bằng công thức x (k) = C x (k-1) + d , k =1, 2, Cụ thể hơn, nếu x (k) = (x 1 (k) , x 2 (k) , . . ., x n (k) ) thì ta có Với từng thành phần x i (k) ta có 10 [...]... thức sau để đánh giá sai số của phương pháp lặp Gauss-Seidel: Gọi x* là nghiệm đúng của h phương trình và gọi Giải (1).Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây thỏa mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương pháp lặp Jacobi Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi... rồi tính x(1), x(2), theo công thức (2.11) với lưu ý aii=1 ta được bảng kết quả sau: 14 Hoàng Nguyên Khang - CH1301092 Thuật toán Jacobi cũng tương tự như thuật toán Gauss-Seidel, nhưng thuật toán Gauss - Seidel có tốc độ hội tụ nhanh hơn 1.2 Một số ứng dụng thực tế của giải hệ PTTT - 1.2.1 Giới thiệu - Ứng dụng tính chi phí Các ứng dụng về hỗn hợp Các ứng dụng liên quan đến gốc và lãi Các ứng dụng. .. CH1301092 CHƯƠNG 3 – MPI TRONG THUẬT TOÁN JACOBI VÀ GAUSS-SEIDEL CHO BÀI TOÁN HỆ PHƯƠNG TRÌNH TUYỂN TÍNH SONG SONG 3.1 Lựa chọn hàm MPI cho thuật toán song song Một chương trình MPI bao gồm nhiều chương trình tuần tự có trao đổi dữ liệu với nhau thông qua việc gọi các hàm trong thư viện Các hàm này thuộc bốn lớp cơ bản: 1 Khởi tạo, quản lý và kết thúc trao đổi 2 Trao đổi giữa hai tiến trình 3 Trao đổi giữa... CH1301092 - Điều kiện hội tụ, đánh gía sai số của phương pháp lặp Jacobi cũng giống với phương pháp lặp đơn Giải (1).Có thể thấy rằng ma trận các hệ số của hệ phương trình trên đây thỏa mãn tính chéo trội, do đó ta có thể biến đổi hệ này để áp dụng phương pháp lặp Jacobi Chia hai vế phương trình đầu tiên cho 4, hai vế phương trình thứ hai cho 3 và hai vế của phương trình thứ ba cho 4 rồi biến đổi thích hợp... distributed) và phân tán một nửa (semi distributed) a) Các thuật toán cân bằng tải tập trung Các thuật toán này thường đưa ra quyết định có tính chất tổng thể trong việc phân phối lại khối lượng công việc cho các bộ xử lý Một vài thuật toán trong lớp này sử dụng thông tin hệ thống có tính toàn cục để lưu trạng thái các máy tính riêng lẻ Thông tin này sẽ giúp 24 Hoàng Nguyên Khang - CH1301092 thuật toán phân... tốt bằng các thuật toán cân bằng tải tập trung c) Các thuật toán cân bằng tải phân tán một nửa Các thuật toán thuộc lớp này chia các bộ xử lý thành từng miền Trong mỗi miền sử dụng thuật toán cân bằng tải tập trung để phân phối công việc cho các bộ xử lý thuộc miền đó 2.2.2.3 Sự bế tắc Các tiến trình xử lý bị rơi vào tình trạng bế tắc nếu mỗi tiến trình đó nắm giữ tài nguyên mà một vài tiến trình khác... lực tính toán Việc song song hóa một chương trình nhằm làm cho chương trình đó chạy nhanh hơn, tuy nhiên chương trình đó sẽ chạy nhanh hơn bao nhiêu lần? Định luật Amdahl’s [3] cho phép ta xác định điều này Giả sử xét về khía cạnh thời gian chạy chương trình, một phần p của chương trình có thể song song hóa và phần 1-p còn lại buộc phải chạy tuần tự Trong trường hợp lý tưởng, nếu thực thi chương trình. .. vừa được tính toán thì được lưu trữ ngay vào vị trí cũ và được dùng ngay trong công thức tính các giá trị khác Hoàng Nguyên Khang - CH1301092 - Sự hội tụ của phương pháp Gauss-Seidel: Điều kiện hội tụcủa phương pháp lặp Gauss- Seidel cũng giống với phương pháp lặp đơn Như ta sẽthấy trong ví dụ trong phần sau, phương pháp Gauss- Seidel nói chung hội tụ nhanh hơn phương pháp lặp đơn Ta có thể sử dụng các... số lượng của tiến trình trong phiên tính toán, nhận dang bộ vi xử lý hiện tại mà bộ vi xử lý được ánh xạ, những tiến trình lân cận truy cập trong một mô hình liên kết logic 2.2 Lập trình song song với MPI 2.2.1 Giới thiệu Giao thức truyền thông điệp MPI là một thư viện các hàm và macro 19 Hoàng Nguyên Khang - CH1301092 có thể được gọi từ các chương trình sử dụng ngôn ngữ C, Fortran, và C++ Như tên gọi... tiến trình có sự độc quyền trong việc sử dụng tài nguyên của nó  Không có sự ưu tiên: Mỗi tiến trình không bao giờ giải phóng tài nguyên mà nó đang chiếm giữ cho tới tận khi không còn sử dụng chúng nữa  Sự chờ đợi tài nguyên: mỗi tiến trình đang chiếm giữ tài nguyên trong khi lại chờ đợi các tiến trình khác giải phóng chúng  Sự chờ đợi giữa các tiến trình: tiến trình chờ đợi tài nguyên mà tiến trình . ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC ĐIỆN TOÁN LƯỚI VÀ ĐÁM MÂY ĐỀ TÀI : TÌM HIỂU VÀ ỨNG DỤNG THUẬT TOÁN SONG SONG TRONG BÀI TOÁN GIẢI HỆ PHƯƠNG TRÌNH. dùng phương pháp Gauss (được nêu trong phần tiếp theo) để giải hệ phương trình này. b. Hệ quả: Hệ phương trình tuyến tính thuần nhất n phương trình n ẩn có nghiệm không tầm thường khi và chỉ. Gauss-Seidel, nhưng thuật toán Gauss - Seidel có tốc độ hội tụ nhanh hơn. 1.2 Một số ứng dụng thực tế của giải hệ PTTT 1.2.1 Giới thiệu - Ứng dụng tính chi phí - Các ứng dụng về hỗn hợp - Các ứng dụng liên

Ngày đăng: 19/05/2015, 20:44

Từ khóa liên quan

Mục lục

  • 1.1 Giới thiệu các phương pháp giải

    • 1.1.1 Phương pháp Cramer

    • 1.1.2 Phương pháp Gauss

    • 1.1.3 Phương pháp lặp đơn

    • 1.1.4 Phương pháp lặp Jacobi

    • 1.1.5 Phương pháp Gauss-Seidel

    • 1.2 Một số ứng dụng thực tế của giải hệ PTTT

      • 1.2.1 Giới thiệu

      • 1.2.2 Một số ví dụ minh họa

      • CHƯƠNG 2 - LẬP TRÌNH SONG SONG VỚI MPI

        • 2.1. Tổng quan về lập trình song song với MPI

          • 2.1.1. Giới thiệu

          • 2.1.2 Một số đặc điểm của lập trình MPI

          • 2.2. Lập trình song song với MPI

            • 2.2.1. Giới thiệu

            • 2.2.2 Một số vấn đề về hiệu năng

              • 2.2.2.1 Năng lực tính toán

              • 2.2.2.2 Cân bằng tải

              • 2.2.2.3 Sự bế tắc

              • CHƯƠNG 3 – MPI TRONG THUẬT TOÁN JACOBI VÀ GAUSS-SEIDEL CHO BÀI TOÁN HỆ PHƯƠNG TRÌNH TUYỂN TÍNH SONG SONG

                • 3.1 Lựa chọn hàm MPI cho thuật toán song song

                • 3.2 CHƯƠNG TRÌNH DEMO:

                  • 3.2.1 Giao diện chương trình:

                  • 3.2.2 Cách sử dụng:

                  • 3.2.3 Kết quả đạt được :

                  • CHƯƠNG 4 : TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan