بخشی از مجموعه

چندین نمونه کد

~2 دقیقه مطالعه • بروزرسانی ۱۵ مهر ۱۴۰۴

شرح برنامه

این برنامه از روش عددی نصف‌کردن $$x + e^x = 5$$
که به‌صورت تابعی به شکل زیر تعریف می‌شود:
$$F(x) = x + e^x - 5$$
هدف یافتن ریشه‌ای از تابع F(x) است که مقدار آن صفر شود.


کد پایتون:


import math

def f(x):
    return x + math.exp(x) - 5

def bisection(a, b, tol=1e-4, max_iter=100):
    if f(a) * f(b) > 0:
        raise ValueError("تابع در بازه انتخاب‌شده تغییر علامت نمی‌دهد.")

    for _ in range(max_iter):
        c = (a + b) / 2
        if abs(f(c)) < tol or (b - a) / 2 < tol:
            return round(c, 4)
        if f(a) * f(c) < 0:
            b = c
        else:
            a = c
    return round((a + b) / 2, 4)

# اجرای برنامه
root = bisection(1, 2)
print(f"ریشه معادله: {root}")

نمونه خروجی:


ریشه معادله: 1.6094

توضیح مراحل:

- تابع F(x) تعریف می‌شود: x + e^x - 5
- بازه اولیه [a, b] باید شامل تغییر علامت باشد (مثلاً [1, 2])
- در هر مرحله، نقطه وسط c محاسبه شده و بررسی می‌شود که آیا ریشه در [a, c] یا [c, b] قرار دارد
- فرآیند تا رسیدن به دقت موردنظر یا تعداد تکرار مشخص ادامه می‌یابد


نوشته و پژوهش شده توسط دکتر شاهین صیامی