NAZARIYA / BISEKSIYA USULI

BISEKSIYA USULI

KESMANI TENG IKKIGA BO'LISH USULI

Algebraik va transendent tenglamalarni yarim bo'lish usuli bilan yechish

✂️ USUL HAQIDA

Biseksiya usuli (yarim bo'lish usuli) – ildizni o'z ichiga olgan oraliqni har safar teng ikkiga bo'lib, ildizni topish usuli.

📊 AFZALLIKLARI

  • ✓ Har doim yaqinlashuvchi
  • ✓ Sodda algoritm
  • ✓ Aniq ildizga yaqinlashadi
  • ✓ Bir yoki bir nechta ildiz bor

1️⃣ MASALANING QO'YILISHI

Faraz qilaylik, $[a, b]$ kesmada aniqlangan va uzluksiz bo'lgan $f(x)$ funksiya berilgan bo'lsin. Biz $f(x) = 0$ ko'rinishidagi tenglamaning ildizini topishimiz kerak.

Agar funksiya kesmaning chetki nuqtalarida turli ishorali qiymatlarni qabul qilsa:

$$f(a) \cdot f(b) < 0$$

shart bajarilsa, Bolsano-Koshi teoremasiga ko'ra, $[a, b]$ oraliqda kamida bitta $x^*$ ildiz mavjud bo'ladi.

2️⃣ HISOBLASH BOSQICHLARI (ALGORITM)

1

Oraliqni bo'lish

Kesmaning o'rtasini topamiz:

$$c = \frac{a+b}{2}$$
2

Ildizni tekshirish:

Agar $f(c) = 0$ bo'lsa, $c$ — aniq yechim. Aks holda, $f(a) \cdot f(c) < 0$ shartini tekshiramiz.

3

Oraliqni toraytirish:

  • Agar $f(a) \cdot f(c) < 0$ bo'lsa, yangi kesma $[a, c]$ bo'ladi ($b=c$).
  • Agar $f(a) \cdot f(c) > 0$ bo'lsa, yangi kesma $[c, b]$ bo'ladi ($a = c$).
4

To'xtash sharti:

Berilgan $\epsilon$ aniqlik uchun $|b - a| < \epsilon$ sharti bajarilgunicha jarayon takrorlanadi.

3️⃣ AMALIY MISOL TAHLILI

📝 Misol:

Ushbu funksiyani kesmani teng ikkiga bo'lish usuli yordamida yeching: $f(x) = x - 1 - \frac{\sin(x)}{10} = 0$

Oraliq: $[1, 1.1]$   |   Aniqlik: $\epsilon = 0.01$

Iter a b $c = \frac{(a+b)}{2}$ f(c) |b-a| Holat
1 1.00000 1.10000 1.05000 -0.03674 0.10000 f(1)·f(1.05) < 0 ✓
2 1.05000 1.10000 1.07500 -0.01296 0.05000 f(1.05)·f(1.075) < 0 ✓
3 1.07500 1.10000 1.08750 -0.00105 0.02500 f(1.075)·f(1.0875) < 0 ✓
4 1.08750 1.10000 1.09375 0.00491 0.01250 f(1.0875)·f(1.09375) > 0
5 1.087500 1.093750 1.09063 0.00193 0.00625 < ϵ ✓ TO'XTASH!

📌 Natija:

$|b - a| = 0.00625 < \epsilon=0.01$ shart bajarilgani uchun jarayon to'xtatiladi.

Ildiz: $x^* \approx 1.09063$

Jami iteratsiyalar: 5 ta

4️⃣ ALGORITMIK VA DASTURIY KO'RINISH

Algoritm Blok-Sxemasi

graph TD Start(["Boshlash"]) --> Eps[/"ε"/] Eps --> Func["f(x) = ..."] Func --> Input[/"a, b"/] Input --> Check{"f(a) * f(b) < 0"} Check -- "Yo'q" --> Input Check -- "Ha" --> Calc["c = (a + b) / 2"] Calc --> Sign{"f(a) * f(c) < 0"} Sign -- "Ha" --> UpdateB["b = c"] Sign -- "Yo'q" --> UpdateA["a = c"] UpdateB --> Loop{"b - a < ε"} UpdateA --> Loop Loop -- "Yo'q" --> Calc Loop -- "Ha" --> Result["c"] Result --> End(["Tamom"]) %% Dizayn style Start fill:#f8fafc,stroke:#475569 style End fill:#f8fafc,stroke:#475569 style Check fill:#fff7ed,stroke:#ea580c style Sign fill:#fff7ed,stroke:#ea580c style Loop fill:#fff7ed,stroke:#ea580c style Calc fill:#eff6ff,stroke:#2563eb style Func fill:#ecfeff,stroke:#0891b2
BisectionMethod.cs
using System;

class Program
{
    // Misolning berilishi: f(x) = x - 1 - sin(x)/10
    static double f(double x) => x - 1 - Math.Sin(x) / 10;

    static void Main()
    {
        double a = 1, b = 1.1, eps = 0.01;
        int iter = 0;

        if (f(a) * f(b) >= 0) {
            Console.WriteLine("Shart bajarilmadi!");
            return;
        }

        Console.WriteLine("Iter | a       | b       | c       | f(c)     | |b-a|");

        while ((b - a) >= eps)
        {
            iter++;
            double c = (a + b) / 2;
            double fc = f(c);

            // Natijani chop etish
            Console.WriteLine($"{iter,4} | {a,7:F5} | {b,7:F5} | {c,7:F5} | {fc,8:F5} | {b - a,7:F5}");

            if (fc == 0.0) break;

            if (f(a) * fc < 0)
                b = c;
            else
                a = c;
        }

        // Oxirgi nuqtani (ildizni) topish
        double ildiz = (a + b) / 2;
        Console.WriteLine($"\nIldiz: {ildiz:F5}");
        Console.WriteLine($"Jami iteratsiyalar: {iter}");
    }
}

5️⃣ AFZALLIKLARI VA KAMCHILIKLARI

✅ AFZALLIKLARI

  • 📍 Yaqinlashish: Har doim yaqinlashuvchi (agar f(a)·f(b) < 0)
  • ⚙️ Soddalik: Algoritmi juda sodda va tushunish qulay
  • 🎯 Aniqlik: Berilgan aniqlikka erishish kafolatlanadi
  • 📊 Turli ildizlar: Bir yoki bir nechta ildizga qo'llaniladi

❌ KAMCHILIKLARI

  • 🐢 Sekinlik: Konvergensiya tezligi sekin (linear)
  • 📋 Shart: f(a)·f(b) < 0 sharti zarur
  • 🔄 Iteratsiyalar: Aniqlikka erishish uchun ko'p iteratsiya kerak
  • 🎪 Kompleks ildizlar: Faqat haqiqiy ildizlarni topadi