یافتن ریشههای یک معادله به روش نصف کردن (Bisection Method) در متلب
روش نصف کردن یکی از روشهای عددی برای یافتن ریشههای معادلات غیرخطی است. این روش بر اساس اصل میانهگرا کار میکند و برای معادلاتی که در یک بازه مشخص تغییر علامت دارند، بسیار مؤثر است.
توضیحات روش
روش نصف کردن به این صورت عمل میکند:
1. دو نقطه a و b انتخاب میشوند که در آنها تابع تغییر علامت دارد (یعنی f(a) ⋅ f(b) < 0 ).
2. نقطه میانی c = (a + b)/2 محاسبه میشود.
3. اگر( f(c نزدیک به صفر باشد، آنگاه c تقریباً ریشه است.
4. در غیر این صورت، یکی از بازهها (یا [a, c] یا [c, b] ) انتخاب میشود و مراحل تکرار میشوند تا زمانی که دقت مورد نظر حاصل شود.
کد متلب
در زیر کد متلب برای پیادهسازی روش نصف کردن آورده شده است:
function root = bisectionMethod(func, a, b, tol)
% بررسی اینکه تابع در نقاط a و b تغییر علامت دارد
if func(a) * func(b) >= 0
error('تابع در نقاط a و b باید تغییر علامت داشته باشد.');
end
% شروع فرآیند نصف کردن
while (b - a) / 2 > tol
c = (a + b) / 2; % محاسبه نقطه میانی
if func(c) == 0 % اگر c ریشه باشد
break;
elseif func(c) * func(a) < 0 % ریشه در نیمه اول
b = c;
else % ریشه در نیمه دوم
a = c;
end
end
root = (a + b) / 2; % برآورد نهایی ریشه
end
% مثال استفاده از تابع
f = @(x) x^3 - x - 2; % تعریف تابع
a = 1; % نقطه شروع a
b = 2; % نقطه شروع b
tol = 1e-6; % دقت مورد نظر
root = bisectionMethod(f, a, b, tol);
fprintf('ریشه معادله در بازه [%.2f, %.2f] برابر است با: %.6fn', a, b, root);
▎توضیحات کد:
1. تعریف تابع: تابع bisectionMethod به عنوان ورودی تابع ریاضی، دو نقطه a و b ، و دقت مورد نظر tol را دریافت میکند.
2. بررسی تغییر علامت: ابتدا بررسی میشود که آیا تابع در نقاط a و b تغییر علامت دارد یا نه.
3. حلقه تکرار: حلقه تا زمانی که طول بازه بیشتر از دقت مورد نظر باشد، ادامه مییابد و نقطه میانی محاسبه میشود.
4. خروجی: در نهایت، ریشه تقریبی معادله بازگشت داده میشود.
در زیر تصاویری از فرآیند روش نصف کردن آورده شده است:
این تصاویر نشاندهنده مراحل مختلف روش نصف کردن است و چگونگی نزدیک شدن به ریشه را نمایش میدهد.
نتیجهگیری:
روش نصف کردن یک روش ساده و مؤثر برای یافتن ریشههای معادلات غیرخطی است. با استفاده از کد متلب ارائه شده، میتوانید به راحتی ریشههای معادلات را محاسبه کنید. این روش به خصوص در مسائل مهندسی و علمی کاربردهای زیادی دارد.