Bước tới nội dung

Phương pháp chia đôi

Phương pháp tìm nghiệm trong toán học, dựa trên sự chia đôi lặp đi lặp lại của một đoạn và sự lựa chọn tiếp theo của một khoảng con trong đó nghiệm được cho là sẽ được tìm thấy.
Bách khoa toàn thư mở Wikipedia
Hình minh họa phương pháp chia đôi sau vài bước để chia đôi đoạn [a1;b1]. Chấm đỏ thể hiện nghiệm đúng của phương trình.

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ình

Ví 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 , 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ứ...
1121.5−0.125
21.521.751.6093750
31.51.751.6250.6660156
41.51.6251.56250.2521973
51.51.56251.53125000.0591125
61.51.53125001.5156250−0.0340538
71.51562501.53125001.52343750.0122504
81.51562501.52343751.5195313−0.0109712
91.51953131.52343751.52148440.0006222
101.51953131.52148441.5205078−0.0051789
111.52050781.52148441.5209961−0.0022794
121.52099611.52148441.5212402−0.0008289
131.52124021.52148441.5213623−0.0001034
141.52136231.52148441.52142330.0002594
151.52136231.52142331.52139280.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

Tham khảo Phương pháp chia đôi

  1. "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.
  2. "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.
  3. Burden & Faires 1985, tr. 31
  4. Burden & Faires 1985, tr. 29.
  5. Burden & Faires 1985, tr. 31, Theorem 2.1
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. Ivo, Oliveira (ngày 14 tháng 12 năm 2020). "An Improved Bisection Method". doi:10.1145/3423597. S2CID 230586635..

Bản mẫu:Thuật toán tìm nghiệm