Phương pháp chia đôi trong giải tích số là một trong những kỹ thuật quan trọng và hữu ích để giải quyết các bài toán tìm nghiệm của phương trình, đặc biệt là trong những trường hợp mà không thể áp dụng các phương pháp giải đại số truyền thống. Kỹ thuật này dựa trên nguyên lý tìm kiếm nghiệm trong một khoảng cho trước bằng cách chia đôi khoảng đó thành hai phần nhỏ hơn, từ đó xác định được vị trí của nghiệm thông qua việc kiểm tra dấu của hàm số tại các đầu mút của các khoảng. Phương pháp này không chỉ đơn giản và dễ hiểu mà còn đảm bảo tính chính xác cao, giúp các nhà khoa học và kỹ sư nhanh chóng tìm ra giải pháp cho những bài toán phức tạp trong thực tiễn. Với ứng dụng rộng rãi trong lĩnh vực toán học, vật lý, và kỹ thuật, phương pháp chia đôi trở thành một phần thiết yếu trong giải tích số hiện đại.
Cụ thể hơn, phương pháp chia đôi là một thuật toán số học dùng để tìm nghiệm của phương trình trong một khoảng
mà hàm
liên tục. Phương pháp dựa trên định lý giá trị trung gian: Nếu
, thì tồn tại ít nhất một nghiệm
sao cho
.
(Định lý giá trị trung gian là một trong những định lý quan trọng trong giải tích. Nó được phát biểu như sau: Nếu một hàm số liên tục trên một đoạn có giá trị
và
, thì với mọi giá trị
nằm giữa
và
, tồn tại ít nhất một điểm
trong khoảng
sao cho
.)
Ý tưởng chính:
- Chọn khoảng
sao cho
.
- Tính điểm giữa:
.
- Xác định dấu của
:
- Nếu
, thì nghiệm nằm trong khoảng
, thay
bằng
.
- Nếu
, thì nghiệm nằm trong khoảng
, thay
bằng
.
- Nếu
, thì
chính là nghiệm.
- Lặp lại quá trình cho đến khi khoảng cách giữa
và
đủ nhỏ (độ chính xác mong muốn).
Thuật toán chi tiết:
Đầu vào:
- Hàm
.
- Khoảng ban đầu
sao cho
.
- Sai số
(độ chính xác mong muốn).
Quy trình:
- Kiểm tra điều kiện
. Nếu không thỏa mãn, dừng thuật toán.
- Tính
.
- Kiểm tra:
- Nếu
hoặc
: Dừng, nghiệm gần đúng là
.
- Nếu
: Đặt
.
- Nếu
: Đặt
.
- Quay lại bước 2.
Đầu ra:
- Nghiệm gần đúng
.
- Số lần lặp.
Ưu điểm:
- Dễ hiểu, dễ triển khai.
- Đảm bảo hội tụ nếu hàm liên tục và khoảng
thỏa mãn
.
Nhược điểm:
- Hội tụ chậm so với các phương pháp khác (vd: Newton-Raphson, Secant).
- Yêu cầu khoảng ban đầu
phải chứa nghiệm (điều kiện
).
Ví dụ minh họa:
Tìm nghiệm của phương trình trên khoảng
với sai số
.
Bước đầu tiên:
(
).
Tính .
.
Vì , đặt
.
Tiếp tục lặp:
Khoảng mới: , tính
.
Lặp lại cho đến khi khoảng cách giữa và
nhỏ hơn
.
Nghiệm gần đúng là: .
Mã Python:
def bisection_method(func, a, b, tol):
if func(a) * func(b) >= 0:
print("Invalid interval: f(a) and f(b) must have opposite signs.")
return None
iteration = 0
while (b - a) / 2 > tol:
c = (a + b) / 2
if func(c) == 0:
return c, iteration
elif func(a) * func(c) < 0:
b = c
else:
a = c
iteration += 1
return (a + b) / 2, iteration
# Ví dụ sử dụng
f = lambda x: x**3 - x - 2
root, iters = bisection_method(f, 1, 2, 1e-3)
print(f"Root: {root}, Iterations: {iters}")
Mã MATLAB:
function [root, iterations] = bisection_method(func, a, b, tol)
if func(a) * func(b) >= 0
error('Khoảng [a, b] không hợp lệ: f(a) và f(b) phải trái dấu.');
end
iterations = 0;
while (b - a) / 2 > tol
c = (a + b) / 2;
if func(c) == 0
break;
elseif func(a) * func(c) < 0
b = c;
else
a = c;
end
iterations = iterations + 1;
end
root = (a + b) / 2;
end
% === Sử dụng ===
f = @(x) x^3 - x - 2;
a = 1;
b = 2;
tol = 1e-3;
[root, iterations] = bisection_method(f, a, b, tol);
fprintf('Nghiệm gần đúng: %.5f\n', root);
fprintf('Số lần lặp: %d\n', iterations);
Discover more from Science Comics
Subscribe to get the latest posts sent to your email.