Phương pháp chia đôi

Trong toán học, phương pháp chia đôi (tiếng Anh: bisection method[1] hoặc dichotomy method[2]) là một thuật toán tìm nghiệm cho bất cứ hàm liên tục nào, khi đã biết hai giá trị của hàm đó trái dấu nhau. Như tên gọi, phương pháp này liên tục chia đôi đoạn chứa nghiệm và lựa chọn đoạn con mà ở đó hàm số đổi dấu, khi này theo định lý giá trị trung bình, đoạn này phải chứa nghiệm của hàm số đó. Phương pháp này dù đơn giản và trực quan nhưng có tốc độ chậm, từ đó thường chỉ được sử dụng để xấp xỉ nghiệm, sau đó nghiệm được xấp xỉ sẽ là nghiệm dự đoán cho các phương pháp có tốc độ hội tụ nhanh hơn.[3]Đối với các đa thức, có nhiều phương pháp hơn để kiểm tra sự tồn tại của nghiệm trên một đoạn như định lý về dấu của Descartes, định lý Sturm, từ đó mở rộng hơn phương pháp chia đôi để tìm đủ tất cả các nghiệm của một đa thức.
Đối với các đa thức, có nhiều phương pháp hơn để kiểm tra sự tồn tại của nghiệm trên một đoạn như định lý về dấu của Descartes, định lý Sturm, từ đó mở rộng hơn phương pháp chia đôi để tìm đủ tất cả các nghiệm của một đa thức.Đối với các đa thức, có nhiều phương pháp hơn để kiểm tra sự tồn tại của nghiệm trên một đoạn như định lý về dấu của Descartes, định lý Sturm, từ đó mở rộng hơn phương pháp chia đôi để tìm đủ tất cả các nghiệm của một đa thức.
Phương pháp Phương pháp chia đôi
Phương pháp chia đôi được sử dụng để giải số phương trình với biến thực và hàm số liên tục trên đoạn mà ở đó, . Khi ấy, theo định lý giá trị trung bình, hàm số liên tục phải có ít nhất một nghiệm trong khoảng .
Ở mỗi bước của phương pháp, trung điểm được xác định và giá trị . Nếu , phương pháp đã tìm được chính xác nghiệm và dừng lại, nhưng nếu không, thì hoặc trái dấu, hoặc trái dấu. Khi ấy, đoạn tiếp theo để thực hiện phương pháp chia đôi sẽ là đoạn mà ở đó, hàm số tại hai đầu mút có giá trị trái dấu, sau đó lặp lại quy trình trên. Phương pháp này sẽ tiếp tục cho đến khi độ dài của khoảng trở nên nhỏ đến mức cần thiết.
Dưới đây là một đoạn mã giả miêu tả thuật toán của phương pháp chia đôi.[4]
đầu vào: hàm số f, hai đầu mút a, b, sai số cho phép TOL, số phép lặp nmaxđiều kiện: a < b, f(a)*f(b) < 0đầu ra: giá trị xấp xỉ nghiệm phương trình f(x) = 0 nhỏ hơn sai số cho phép TOLcho n = 1khi n nmax: > c = (a+b)/2> nếu f(c) = 0 hoặc (b-a)/2 < TOL>> nhận về giá trị c, dừng quá trình> nếu không:>> nếu f(c) cùng dấu f(a), thay a bằng c>> nếu f(c) cùng dấu f(b), thay b bằng c>> n = n + 1nhận về giá trị c, dừng quá trìnhVí dụ: Tìm nghiệm của một đa thức
Ví dụ này sử dụng phương pháp chia đôi để tìm nghiệm của đa thứcDo và , hơn nữa hàm số liên tục, nên có ít nhất một nghiệm trên đoạn .Khi ấy, với , ta xác định trung điểm ,sau đó tính . Do cùng dấu với , ta thay bằng , sau đó tiếp tục lặp lại phương pháp này với . Xem bảng dưới đây sau 15 bước lặp để tìm giá trị xấp xỉ nghiệm của phương trình.
| Bước lặp thứ... | ||||
|---|---|---|---|---|
| 1 | 1 | 2 | 1.5 | −0.125 |
| 2 | 1.5 | 2 | 1.75 | 1.6093750 |
| 3 | 1.5 | 1.75 | 1.625 | 0.6660156 |
| 4 | 1.5 | 1.625 | 1.5625 | 0.2521973 |
| 5 | 1.5 | 1.5625 | 1.5312500 | 0.0591125 |
| 6 | 1.5 | 1.5312500 | 1.5156250 | −0.0340538 |
| 7 | 1.5156250 | 1.5312500 | 1.5234375 | 0.0122504 |
| 8 | 1.5156250 | 1.5234375 | 1.5195313 | −0.0109712 |
| 9 | 1.5195313 | 1.5234375 | 1.5214844 | 0.0006222 |
| 10 | 1.5195313 | 1.5214844 | 1.5205078 | −0.0051789 |
| 11 | 1.5205078 | 1.5214844 | 1.5209961 | −0.0022794 |
| 12 | 1.5209961 | 1.5214844 | 1.5212402 | −0.0008289 |
| 13 | 1.5212402 | 1.5214844 | 1.5213623 | −0.0001034 |
| 14 | 1.5213623 | 1.5214844 | 1.5214233 | 0.0002594 |
| 15 | 1.5213623 | 1.5214233 | 1.5213928 | 0.0000780 |
Sau 15 bước lặp, dần hội tụ đến nghiệm đúng của phương trình là .
Sự hội tụ và sai số Phương pháp chia đôi
Phương pháp này đảm bảo dãy xác định bằng phương pháp chia đôi sẽ hội tụ tới nghiệm đúng của phương trình trên đoạn nếu là hàm số liên tục và . Sai số tuyệt đối của phương pháp này giảm đi một nửa sau mỗi bước, nên phương pháp này hội tụ với tốc độ tuyến tính (bậc nhất). Hơn nữa, ở bước thứ , sai số tương đối của phương pháp này được đánh giá bởi công thức[5]
Bằng công thức trên, khi ấy để sai số nhỏ hơn một giá trị tuỳ ý, số bước lặp được chặn trên bởi công thức.Lợi điểm duy nhất của phương pháp chia đôi khi xét phương trình trên tập các hàm liên tục là luôn đảm bảo hội tụ tới nghiệm của phương trình với sai số sau bước,[6][7] tuy nhiên lại có tốc độ hội tụ chậm mà có thể đánh đổi được để lấy tốc độ hội tụ nhanh hơn như phương pháp dây cung, phương pháp Ridders, hay phương pháp Brent.[8][9][10] Phương pháp chia đôi cũng có thể được cải thiện để có tốc độ hội tụ tốt hơn mà không bao giờ gặp trường hợp xấu là phương pháp ITP.[10][11]
Xem thêm Phương pháp chia đôi
- Tìm kiếm nhị phân
- Thuật toán Lehmer-Schur
- Dãy đoạn lồng nhau
Tham khảo Phương pháp chia đôi
- ↑ "Interval Halving (Bisection)". Bản gốc lưu trữ ngày 19 tháng 5 năm 2013. Truy cập ngày 7 tháng 11 năm 2013.
- ↑ "Dichotomy method - Encyclopedia of Mathematics". www.encyclopediaofmath.org. Bản gốc lưu trữ ngày 20 tháng 8 năm 2017. Truy cập ngày 21 tháng 12 năm 2015.
- ↑ Burden & Faires 1985, tr. 31
- ↑ Burden & Faires 1985, tr. 29.
- ↑ Burden & Faires 1985, tr. 31, Theorem 2.1
- ↑ Sikorski, K. (ngày 1 tháng 2 năm 1982). "Bisection is optimal". Numerische Mathematik (bằng tiếng Anh). 40 (1): 111–117. doi:10.1007/BF01459080. ISSN 0945-3245. S2CID 119952605.
- ↑ Sikorski, K (ngày 1 tháng 12 năm 1985). "Optimal solution of nonlinear equations". Journal of Complexity (bằng tiếng Anh). 1 (2): 197–209. doi:10.1016/0885-064X(85)90011-1. ISSN 0885-064X.
- ↑ Graf, Siegfried; Novak, Erich; Papageorgiou, Anargyros (ngày 1 tháng 7 năm 1989). "Bisection is not optimal on the average". Numerische Mathematik (bằng tiếng Anh). 55 (4): 481–491. doi:10.1007/BF01396051. ISSN 0945-3245. S2CID 119546369.
- ↑ Novak, Erich (ngày 1 tháng 12 năm 1989). "Average-case results for zero finding". Journal of Complexity (bằng tiếng Anh). 5 (4): 489–501. doi:10.1016/0885-064X(89)90022-8. ISSN 0885-064X.
- 1 2 Oliveira, I. F. D.; Takahashi, R. H. C. (ngày 6 tháng 12 năm 2020). "An Enhancement of the Bisection Method Average Performance Preserving Minmax Optimality". ACM Transactions on Mathematical Software. 47 (1): 5:1–5:24. doi:10.1145/3423597. ISSN 0098-3500. S2CID 230586635.
- ↑ Ivo, Oliveira (ngày 14 tháng 12 năm 2020). "An Improved Bisection Method". doi:10.1145/3423597. S2CID 230586635..
- Burden, Richard L.; Faires, J. Douglas (1985), "2.1 The Bisection Algorithm", Numerical Analysis (ấn bản thứ 3), PWS Publishers, ISBN 0-87150-857-5
Bản mẫu:Thuật toán tìm nghiệm
- Thuật toán tìm nghiệm