Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.1 MB, 11 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌCBÁCH KHOA KHOA KHOA HỌC ỨNG DỤNG 2022 - 2023</b>
<b>Nhóm: 4 – ANO1<small>GVHD: ĐẶNG VĂN VINH</small></b>
<i>Tp.HCM, tháng 12 năm 2022</i>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">2.ĐIỀU KIỆN HỘI TỤ... 3. CHƯƠNG TRÌNH SỬ DỤNG THUẬT TOÁN...
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">I. Định nghĩa
Trong đại số tuyến tính , phương pháp hồi quy liên tiếp (SOR) là phương pháp khái quát hơn của phương pháp Gauss–Seidel để giải một hệ phương trình tuyến tính, dẫn đến sự hội tụ nhanh hơn. Là một phương pháp tương tự có thể được sử dụng cho bất kỳ quá trình lặp lại hội tụ chậm nào.
SOR được phát triển bằng cách sửa đổi mơ hình lặp Gauss-Seidel. Mơ hình Gauss-Seidel dựa trên các bước sau
II. Cơ sở lý thuyết
SOR là một phương pháp giải hệ phương trình tuyến tính thu được bằng cách ngoại suy phương pháp Gauss-Seidel. Phép ngoại suy này có dạng trung bình có trọng số giữa lần lặp trước và lần lặp Gauss-Seidel được tính tốn liên tiếp cho mỗi thành phần
trong đó biểu thị một phép lặp Gauss-Seidel và là hệ số ngoại suy. Ý tưởng là chọn một giá trị cho điều đó sẽ đẩy nhanh tốc độ hội tụ của các lần lặp lại cho giải pháp.
Theo thuật ngữ ma trận, thuật toán SOR có thể được viết là
trong đó các ma trận D, -L, và -U tương ứng biểu thị các phần đường chéo, tam giác dưới và tam giác trên của A.
Nếu =1, phương pháp SOR đơn giản hóa thành phương pháp Gauss-Seidel . Một lý do do Kahan (1958) chỉ ra rằng SOR không hội tụ nếu nằm ngồi khoảng (0,2).
Nói chung, khơng thể tính tốn trước giá trị sẽ tối đa hóa tốc độ hội tụ của SOR. Thơng thường, một số ước tính heuristic được sử dụng, chẳng hạn như
=2-O(h) tại h là khoảng cách lưới của sự rời rạc của miền vật lý cơ bản.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">Điều kiện cần để phương pháp SOR hội tụ là Vì vậy thì sẽ dẫn đến
Tỷ lệ hội tụ :
Tốc độ hội tụ cho phương pháp SOR có thể được phân tích. Người ta cần giả định như sau
<small></small> tham số thư giãn là phù hợp:
Sau đó, tốc độ hội tụ có thể được biểu thị bằng
trong đó tham số thư giãn tối ưu được đưa ra bởi
Giả thiết cuối cùng được thỏa mãn đối với ma trận tam giác
các mục
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5"><small>Sau đó, A có thể được phân tách thành một thành phần đường chéo D và các thành phần tam giác trên và dưới L và U :</small>
Phương pháp giản quá mức liên tiếp là một kỹ thuật lặp giải quyết phía bên trái của biểu thức này cho x , sử dụng giá trị trước đó cho x ở phía bên tay phải. Về mặt phân tích, điều này có thể được viết là:
<small>ở đâu là xấp xỉ hoặc lần lặp thứ k của là lần lặp tiếp theo hoặc + 1 của X. Tuy nhiên, bằng cách tận dụng dạng ktam giác của ( + ), các phần tử của DωLx ( k +1) có thể được tính tuần tự bằng cách ể :</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">2.THUẬT TỐN
Vì các phần tử có thể bị ghi đè khi chúng được tính tốn trong thuật toán này nên chỉ cần một vectơ lưu trữ và việc lập chỉ mục vectơ được bỏ qua. Thuật toán diễn ra như sau:
<small>Inputs: , , </small><i>A b ω</i>
<small>Output: </small><i>φ</i>
<small>Choose an initial guess to the solution</small><i>φ</i>
<small>repeat until convergence for </small><i>i</i><small>from until 1 </small><i>n</i><small>dodo đó tiết kiệm được một phép nhân trong mỗi lần lặp của vòng lặp - bên ngoài for</small>
% SOR Successive Over-Relaxation Method % This function solves linear equation systems such as Ax=b using SOR
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">% method (Successive Over-Relaxation). % When the relaxation scalar w=1, the method % err - norm err estimate
% iter - nu,ber of performed iterations % flag - 0 = a solution was found / 1 = no convergence for max_it
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">x = M \ (N * x + b); % adjust the aproximation %err = norm(x - x_1) / norm(x); % compute error
err = norm(x_1 - x, 1); % compute error if (err <= tol) % check for convergence
% MATSEP Matrix Separation
% Input matrix is splitted into several others in diferent ways depending
% on the method to be used: Jacobi and SOR
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><small>maxerr = input('enter the error allowed: ');w = input('enter the relaxtion parmeter: ');if size(A,1) ~= size(A,2)</small>
<small> disp('ERROR: MATRIX A SHOULD BE A SQUARE ') return</small>
<small>if size(b,1) ~= size(A,1) || size(b,2) ~= 1 disp('ERROR:input error.. please re-input data ') return</small>
<small>if size(x,1) ~= size(A,1) || size(x,2) ~= 1 disp('ERROR: please check input ')</small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11"><small>Barrett, R.; Berry, M.; Chan, T. F.; Demmel, J.; Donato, J.; Dongarra, J.; Eijkhout, V.; Pozo, R.; Romine, C.; and van der Vorst, H. Templates for the Solution of Linear Systems: </small>
<small>Building Blocks for Iterative Methods, 2nd ed. Philadelphia, PA: SIAM, </small>
<small>Young, D. Applied Iterative Methods. New York: Academic Press, 1981.Kahan, W. Gauss-Seidel Methods of Solving Large Systems of Linear Equations. Ph.D. thesis. Toronto, </small>
<small>Canada, University of Toronto, 1958.Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; and Vetterling, W. T. "Successive Overrelaxation (SOR)." Numerical Recipes in FORTRAN: TheArt of Scientific Computing, 2nd ed. Cambridge, England: Cambridge University Press, pp. 866-869, 1992.Varga, R. Matrix Iterative Analysis. Englewood Cliffs, NJ: Prentice-Hall,1962.Young, D. Iterative Solutions of Large Linear Systems. New York: Academic Press, 1971.</small>
</div>