İkiye bölme yöntemi nedir?
İkiye bölme yöntemi, sürekli bir \(f(x)\) fonksiyonunun kökünü — yani \(f(x) = 0\) olan bir \(x\) değerini — bulmak için kullanılan en eski ve en güvenilir tekniklerden biridir. Yöntem, fonksiyonun işaret değiştirdiği bir \([a, b]\) aralığıyla başlar; ardından bu aralığı sürekli ikiye böler ve kökü hâlâ içinde barındıran yarıyı tutar. İşaret değişimi her adımda korunduğu için, \(f\) fonksiyonu sürekli olduğu ve \(f(a)\) ile \(f(b)\) zıt işaretli olduğu sürece yöntemin yakınsaması garanti edilir. Bu hesaplayıcı boyutsuz herhangi bir reel fonksiyonla çalışır ve trigonometrik işlemlerde radyan kullanır.
Bu hesaplayıcı nasıl kullanılır?
Fonksiyonunuzu f(x) kutusuna, değişken olarak x'i kullanarak girin (örneğin x-cos(x), x^2-2 veya exp(x)-3). Kök ikisinin arasında kalacak şekilde alt uç noktayı a ve üst uç noktayı b belirleyin — \(f(a)\cdot f(b)\) çarpımı sıfıra eşit ya da sıfırdan küçük olmalıdır. Bir maksimum iterasyon sayısı n ile kaç ondalık basamak görmek istediğinizi seçin. Araç; yaklaşık kökü, o noktadaki fonksiyon değerini (sıfıra yakın olmalıdır) ve gerçekte kaç iterasyon gerektiğini verir.
Formül
Her adımda tahmin, aralığın orta noktası \(x_n = (a_n + b_n) / 2\) olarak alınır.
$$c = \frac{a + b}{2} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} &\text{if } f(a)\cdot f(c) < 0 \Rightarrow b \leftarrow c \\ &\text{else} \Rightarrow a \leftarrow c \\ &\text{repeat up to } n \text{ times} \end{aligned} \right.$$Eğer \(|f(x_n)|\) tolerans değerinin altındaysa \(x_n\) kabul edilir. Aksi takdirde algoritma, işaret değişimini hâlâ içeren yarıyı tutar: \(f(a_n)\cdot f(x_n) > 0\) ise kök sağdadır (\(a = x_n\) yapılır), değilse soldadır (\(b = x_n\) yapılır). Aralık genişliği \((b - a)/2^n\) oranında küçülür; dolayısıyla yakınsama doğrusaldır — her adımda kabaca bir ikili basamak daha doğru hâle gelir.
Çözümlü örnek
\(f(x) = x - \cos(x)\) fonksiyonunu \([-10, 10]\) aralığında ele alalım: \(f(-10) \approx -10.84\) (negatif) ve \(f(10) \approx 10.84\) (pozitif), dolayısıyla kök çevrelenmiştir. Aralığı sürekli ikiye bölmek \(x \approx 0.7390851332151607\) değerine yakınsar; bu, \(x = \cos x\) eşitliğini sağlayan ünlü Dottie sayısıdır ve burada \(f(x)\) pratikte sıfırdır.
İkiye Bölme Yöntemi Elle Nasıl Yapılır
İkiye bölme yöntemi \(f(x)=0\) denklemi için, bir kökü içerdiği bilinen bir aralığı tekrar tekrar yarıya bölerek bulur. Ara Değer Teoremi üzerine dayanır: eğer \(f\) fonksiyonu \([a,b]\) aralığında sürekli ise ve \(f(a)\) ile \(f(b)\) zıt işaretlere sahipse, aralarında mutlaka bir kök bulunur.
- Köşeyi doğrulayın. \(f(a)\cdot f(b)<0\) olduğunu onaylayın. Çarpım pozitif ise, aralık kök içermesi garantili değildir — farklı bir \([a,b]\) seçin.
- Orta noktayı hesaplayın. \(m=\dfrac{a+b}{2}\).
- Fonksiyonu değerlendirin. \(f(m)\) değerini bulun. Eğer \(f(m)=0\) ise (veya tolerans içinde), \(m\) köktür ve durun.
- Bir uç noktayı işareti ile değiştirin. Eğer \(f(a)\cdot f(m)<0\) ise, kök \([a,m]\) aralığında vardır, böylece \(b\leftarrow m\) yapın. Aksi takdirde kök \([m,b]\) aralığında vardır, böylece \(a\leftarrow m\) yapın.
- 2–4. adımları tekrarlayın \(|b-a|<\text{tol}\) veya \(|f(m)|<\text{tol}\) olana kadar veya maksimum iterasyon sayısına ulaşana kadar.
Örnek: \(f(x)=x^{3}-x-2\) fonksiyonu \([1,2]\) aralığında. Kontrol: \(f(1)=-2\), \(f(2)=4\), çarpım \(<0\) — köşe geçerlidir.
| İter | a | b | m=(a+b)/2 | f(m) | Yeni aralık |
|---|---|---|---|---|---|
| 1 | 1.0000 | 2.0000 | 1.5000 | −0.125 | [1.5, 2] |
| 2 | 1.5000 | 2.0000 | 1.7500 | 1.6094 | [1.5, 1.75] |
| 3 | 1.5000 | 1.7500 | 1.6250 | 0.6660 | [1.5, 1.625] |
| 4 | 1.5000 | 1.6250 | 1.5625 | 0.2522 | [1.5, 1.5625] |
| 5 | 1.5000 | 1.5625 | 1.5313 | 0.0591 | [1.5, 1.5313] |
| 6 | 1.5000 | 1.5313 | 1.5156 | −0.0340 | [1.5156, 1.5313] |
Daha fazla iterasyon sonrası aralık gerçek kök olan 1.521380 değerine yaklaşır, bu değer aynı zamanda kübik \(x^{3}-x-2=0\) denklemi tarafından bulunan tek gerçek kök olup, 1.521380 doğrudan çözücü tarafından bulunmuştur.
İterasyonlar ile Tolerans ve Aralık Genişliği
Her ikiye bölme adımı aralığı yarıya böler, bu nedenle \(n\) iterasyon sonrası köşe genişliği \((b-a)/2^{\,n}\) olur. Kök konumunda bir tolerans \(\text{tol}\) değerine ulaşmak için yaklaşık olarak
$$n \approx \log_2\!\left(\frac{b-a}{\text{tol}}\right)$$sayıda iterasyon gerekir. Sayma, kesinliğin yalnızca logaritması ile büyür, bu nedenle çok sıkı toleranslar bile nispeten az adım gerektirir. Tablo çeşitli kombinasyonlar için yuvarlanmış iterasyon sayısını gösterir.
| İlk genişlik \(b-a\) | Hedef tolerans | \(\log_2((b-a)/\text{tol})\) | Gerekli iterasyonlar |
|---|---|---|---|
| 1 | \(10^{-3}\) | 9.97 | 10 |
| 1 | \(10^{-6}\) | 19.93 | 20 |
| 1 | \(10^{-10}\) | 33.22 | 34 |
| 10 | \(10^{-6}\) | 23.25 | 24 |
| 20 | \(10^{-6}\) | 24.25 | 25 |
| 100 | \(10^{-8}\) | 33.22 | 34 |
| 0.5 | \(10^{-12}\) | 38.86 | 39 |
Örneğin, genişliği 20 olan bir köşe \(10^{-6}\) değerine iyileştirildiğinde \(\lceil\log_2(20/10^{-6})\rceil=\lceil 24.25\rceil=\) 25 iterasyon gerekir, ve genişliği 1 olan bir köşe \(10^{-10}\) değerine iyileştirildiğinde \(\lceil 33.22\rceil=\) 34 iterasyon gerekir. Başlangıç genişliğini yarıya indirmek tam olarak bir iterasyonu tasarruf eder; kesinliği karesini almak (bir ondalık basamak daha) yaklaşık 3.3 iterasyonun maliyeti vardır.
Temel Terimler
- Kök. Fonksiyonun sıfır olduğu bir \(x^{*}\) değeri, \(f(x^{*})=0\); aynı zamanda denklemin sıfırı veya çözümü olarak da adlandırılır.
- Köşe / aralık \([a,b]\). Bir kökü kapsadığına inanılan bir uç nokta çifti. İkiye bölme için işaret değişimi koşulunu sağlamalıdır.
- İşaret değişimi. \(f(a)\cdot f(b)<0\) koşulu, yani \(f\) uç noktalarda zıt işaretlere sahip demektir. Sürekli bir \(f\) için bu, aralarında en az bir kökü garantiler (Ara Değer Teoremi).
- Orta nokta. Mevcut aralığın merkezi, \(m=(a+b)/2\); her adım bu noktayı sınayar ve kökü içeremeyecek olan yarıyı kaldırır.
- Tolerans. İterasyonu durduran doğruluk hedefi, aralık genişliğine \(|b-a|\) ya da artık \(|f(m)|\) uygulanır.
- Yakınsama (doğrusal). İkiye bölme doğrusal şekilde yakınsar: hata her adımda kabaca yarıya indirilir (hata \(\le (b-a)/2^{n}\)), istikrarlı fakat hızlanmayan ilerleme sağlar — her iterasyonda yaklaşık bir doğru ikili basamak.
- İterasyon. Orta noktayı hesaplamanın, fonksiyonu değerlendirmenin ve bir uç noktayı güncellerken bir tam döngü. İterasyon sayısı maksimum iterasyon ayarı tarafından sınırlanır.
Sıkça sorulan sorular
Neden "işaret değişimi yok" hatası alıyorum? İkiye bölme yöntemi, \(f(a)\) ile \(f(b)\)'nin zıt işaretli olmasını gerektirir. Kökü aralarına alana kadar a ve b değerlerini ayarlayın.
Birden fazla kök bulabilir mi? Hayır — aralık içindeki tek bir kökü döndürür ve eğrinin ekseni kesmeden yalnızca dokunduğu kökleri tespit edemez.
Neden Newton yönteminden daha yavaş? İkiye bölme yöntemi doğrusal yakınsar, yani her adımda yaklaşık bir ikili basamak kazanır; Newton yöntemi ise karesel yakınsar. İkiye bölme yöntemi çoğu zaman, daha hızlı yöntemlerin daha sonra ince ayar yapacağı güvenli bir başlangıç noktası elde etmek için kullanılır.