Metoda połowienia (bisekcji)

1. Wstęp – jak znaleźć rozwiązanie, kiedy nie wiesz, gdzie ono jest

Wyobraź sobie, że zgubiłeś klucz w domu.
Nie wiesz, w którym pokoju, więc dzielisz mieszkanie na pół:
sprawdzasz jedną część — jeśli nie tam, to drugą.
Potem znów dzielisz wybraną połowę na pół… i tak aż znajdziesz klucz.

To właśnie metoda połowienia – dzielisz problem na pół, aż trafisz w cel.
Nie zgadujesz na ślepo – zawężasz obszar poszukiwań krok po kroku.


2. Na czym polega metoda połowienia

Metoda połowienia (ang. bisection method) to sposób znajdowania rozwiązania (np. miejsca, gdzie funkcja przyjmuje wartość 0), przez:

  1. Wybranie przedziału [a, b], w którym wiemy, że rozwiązanie się znajduje.
  2. Sprawdzenie środka – czyli punktu x = (a + b) / 2.
  3. Sprawdzenie znaku (czy funkcja zmienia znak między a i x, czy między x i b).
  4. Zawężenie przedziału – wybieramy tę połowę, w której funkcja zmienia znak.
  5. Powtarzamy, aż różnica między a i b będzie bardzo mała.

To jak gra w „ciepło–zimno”, tylko zamiast biegać po pokoju, przesuwasz granice liczb.


3. Przykład z życia: zgadywanie liczby

Uczeń wymyślił liczbę od 1 do 100.
Ty możesz tylko pytać:

  • „Czy liczba jest większa od 50?”
  • Jeśli tak → sprawdzasz 75, jeśli nie → 25.
  • Zawsze dzielisz zakres na pół.

Każde pytanie zmniejsza zakres poszukiwań o połowę.
Po kilku krokach zawsze trafisz w cel.

To dokładnie to samo co metoda bisekcji – tylko zamiast „liczby ucznia” szukasz „miejsca, gdzie funkcja = 0”.


4. Schemat działania

1. Wybierz przedział [a, b]
2. Oblicz środek x = (a + b) / 2
3. Jeśli f(a) i f(x) mają różne znaki → rozwiązanie leży między a i x
   Wtedy ustaw b = x
   W przeciwnym razie ustaw a = x
4. Powtarzaj, aż różnica (b - a) będzie bardzo mała

5. Przykład matematyczny – znajdź miejsce zerowe funkcji

Załóżmy, że chcemy znaleźć pierwiastek z 2, czyli rozwiązanie równania:
x² - 2 = 0

Wiemy, że:

  • dla x=1 wartość to -1,
  • dla x=2 wartość to +2.
    Czyli szukane miejsce zerowe jest pomiędzy 1 a 2.

6. Przykład w Pythonie

def f(x):
    return x**2 - 2

def bisekcja(a, b, dokladnosc):
    if f(a) * f(b) > 0:
        print("Brak miejsca zerowego w tym przedziale!")
        return None

    while (b - a) > dokladnosc:
        x = (a + b) / 2
        if f(a) * f(x) < 0:
            b = x
        else:
            a = x
    return (a + b) / 2

wynik = bisekcja(1, 2, 0.0001)
print("Pierwiastek z 2 ≈", wynik)

Wynik:

Pierwiastek z 21.414215087890625

Komputer w każdym kroku dzieli przedział na pół, aż znajdzie wartość z dokładnością do czterech miejsc po przecinku.


7. Wizualizacja kroków (intuicyjnie)

Przedział: [1, 2]
f(1) = -1   f(2) = +2

Środek: 1.5  →  f(1.5) = 0.25  (dodatnia)
Nowy przedział: [1, 1.5]

Środek: 1.25 → f(1.25) = -0.4375  (ujemna)
Nowy przedział: [1.25, 1.5]

Środek: 1.375 → f(1.375) = -0.1093
...

Widzisz? Z każdym krokiem zawężamy pole, aż zostaje bardzo mały fragment.


8. Gdzie stosuje się metodę bisekcji

  • znajdowanie miejsc zerowych funkcji,
  • rozwiązywanie równań nieliniowych,
  • szukanie punktu przecięcia wykresów,
  • w grach lub grafice – np. obliczanie kolizji z dokładnością,
  • w fizyce i ekonomii – gdy trzeba znaleźć wartość równowagi.

9. Zalety i wady metody połowienia

ZaletyWady
prosta do zrozumienia i zaimplementowaniadziała tylko, gdy funkcja zmienia znak
zawsze zbiega do rozwiązaniadziała powoli – dzieli na pół w każdym kroku
nie wymaga znajomości pochodnychnie nadaje się do wielu miejsc zerowych naraz

10. Zadania dla ucznia

Zadanie 1 – Znajdź pierwiastek z 3
Użyj funkcji x**2 - 3 i przedziału [1, 2].
Ustaw dokładność 0.0001.
Sprawdź, czy wynik zgadza się z kalkulatorem.

Zadanie 2 – Równanie z minusem
Znajdź miejsce zerowe funkcji x**3 - 4*x + 1.
Dobierz przedział samodzielnie (spróbuj np. [-3, 3]).

Zadanie 3 – Ile kroków potrzeba?
Zmodyfikuj program, by wypisywał numer kroku i długość przedziału.
Obserwuj, jak szybko się zawęża.


11. Porównanie z innymi metodami

MetodaJak działaStyl myślenia
RekurencjaRozwiązuje problem przez powtarzanie siebie„Zrób to samo, tylko prościej”
DynamicznaZapamiętuje wcześniejsze wyniki„Nie licz tego dwa razy”
ZachłannaZawsze wybiera najlepszy krok teraz„Weź to, co się najbardziej opłaca”
Połowienia (bisekcji)Dzieli problem na pół, aż do celu„Zawężaj obszar poszukiwań krok po kroku”

12. Do zapamiętania

Metoda połowienia to cierpliwe zawężanie pola poszukiwań.
Nie zgadujesz – krok po kroku przybliżasz się do rozwiązania.


13. Dla wzrokowców

START
↓
Wybierz przedział [a, b]
↓
Policz środek x = (a+b)/2
↓
Sprawdź znak funkcji
↓
Wybierz połowę z miejscem zerowym
↓
Zawęż przedział
↓
Jeśli dokładność wystarczająca → STOP