Vũ Quang Huy Khi làm việc trên các platform khác nhau (iOS, Android, Windows Phone 8, BB OS 10 …) tôi gặp trường hợp các thư viện toán học không đưa ra kết quả giống nhau trên các platform khác nhau. Điều này dẫn tới việc ảnh hưởng đến quá trình xử lý logic khi tôi làm việc. Bài viết này giới thiệu đến các bạn cách tính căn bậc 2 (square root) dựa trên phương pháp Newton-Raphson.
Nội dung bài viết

Giới thiệu

Bài viết này giới thiệu đến bạn đọc cách tính căn bậc 2 (square root) dựa trên phương pháp Newton-Raphson (hay một số tài liệu khác chỉ gọi tắt là phương pháp Newton) mà không cần dùng thêm bất kì một thư viện toán học nào.

Tiền đề bài viết

Khi làm việc trên các platform khác nhau (iOS, Android, Windows Phone 8, BB OS 10 …); tôi gặp trường hợp các thư viện toán học không đưa ra kết quả giống nhau trên các platform khác nhau. Điều này dẫn tới việc ảnh hưởng đến quá trình xử lý logic khi tôi làm việc.

Để khắc phục vấn đề này, ta có 2 giải pháp

  1. Xây dựng bảng giá trị của các hàm đại số, bạn đọc tham khảo thêm Tính Trước Giá Trị Lượng Giác Sin - Cos - Tang - Cotang của tác giả La Kiến Vinh.
  2. Viết lại các hàm đại số này

Đối tượng hướng đến

Bài viết này hướng đến bạn đọc quan tâm đến việc hiểu các phép toán đại số - trong khuôn khổ bài viết này là căn bậc 2 - hoạt động như thế nào đồng thời muốn cài đặt lại các hàm đó.

Phương pháp Newton-Raphson

Trong thực tế, có rất nhiều phương pháp khác nhau để giúp chúng ta có thể tính được căn bậc 2 của một số. Một trong các phương pháp mà tôi muốn đề cập đến trong bài viết này là phương pháp tính căn bậc 2 được xây dựng bởi hai nhà toán học là Isaac Newton (1642 – 1726) và Joseph Raphson (1648 – 1715).

Gọi S là một số thực lớn hơn hay bằng 0 với n là số lần thực hiện việc tính toán (n càng lớn, ta cần tính càng nhiều tuy nhiên độ chính xác càng cao) và xn là căn bậc 2 của S sau n bước tính toán. Công thức tính căn bậc 2 theo phương pháp Newton – Raphson có dạng như sau:

ss_1

Tuy nhiên câu hỏi đặt ra là khi n = 0 thì x_0 sẽ có giá trị như thế nào? Để tìm được giá trị khởi đầu x_0 dùng cho việc tính toán này, ta dùng phương pháp gọi là ước lượng sơ bộ.

Ước lượng sơ bộ

Phương pháp này giúp ta ước lượng được gần nhất căn bậc 2 của một số bất kì – mặc dù không đước chính xác tuyệt đối tuy nhiên ưu điểm lớn nhất của nó là được tính một cách dễ dàng – và với số này ta áp dụng phương pháp đã trình bày ở trên để có được xấp xỉ gần chính xác nhất giá trị cuối cùng ta mong muốn.

Tương tự như trên, ta khởi đầu với S là một số thực không âm. Ta tìm cách phân giải S thành dạng như sau:

ss_2

Trong đó a là một số thực (1 ≤ a < 100) n là một số nguyên dương. Khi đó căn bậc 2 của S có dạng như sau:

ss_4

Hay xấp xỉ căn bậc 2 của S là:

ss_5

Sở dĩ 2 và 6 được chọn trong trường hợp này vì dựa vào các chứng minh bằng phương pháp hìnhh học xấp xỉ (bạn đọc có thể tham khảo thêm ở link phía cuối bài viết).

Ví du cho trường hợp ta muốn tìm căn bậc 2 của số S = 512468. Ta phân tích ra như sau:

ss_6

Tất nhiên con số này chỉ mang tính chất sơ bộ, ta cần thêm các bước tính toán chi tiết để có thể có được kết quả cuối cùng.

Áp dụng phương pháp Newton-Raphson

Sau khi đã tìm được ước lượng sơ bộ, việc tiếp theo chúng ta chỉ việc áp dụng theo phương pháp Newton-Raphson với giá trị khởi tạo ban đầu là ước lượng sơ bộ căn bậc 2 của số cần tìm – trong trường hợp này là số S.

ss_7

ss_8

Để hiểu rõ hơn, xét ví dụ tìm căn bậc 2 của số S = 795286

ss_9_0

ss_9_1

ss_9_2

ss_9_3

ss_9_4

ss_9_5

Cuối cùng ta có được:

ss_10

Lời kết

Trên đây chỉ là một trong vô vàn cách mà ta có thể tính được căn bậc 2, cũng như 3, 4 … của một số thực. Tuy nhiên hạn chế của nó là chỉ giới hạn ở các số dương.

Thế giới toán học vô cùng rộng lớn và huyền bí; tôi hy vọng qua bài viết này có thể giúp bạn đọc hiểu thêm một khía cạnh thú vị khác của toán học.

Tham khảo

  • http://en.wikipedia.org/wiki/Methods_of_computing_square_roots - 13/9/2014
  • http://en.wikipedia.org/wiki/Geometric_mean - 13/9/2014
THẢO LUẬN
ĐÓNG