İkiye Bölme Yöntemi – Nedir, Algoritma ve Örnek

İkiye Bölme Yöntemi Nedir?

Bisection Yöntemi, bir polinom denkleminin kökünü bulmak için temel sayısal çözümlerden biridir. Denklemin kökünün bulunduğu aralığı paranteze alır ve kökü bulana kadar her yinelemede bunları yarıya böler. Bu nedenle, bisection yöntemine parantezleme yöntemi de denir.

Ancak çalışma mekanizması ikili arama algoritmasına benzediğinden ikiye bölme yöntemi ikili arama yöntemi, yarıya indirme yöntemi veya dikotomi yöntemi olarak da bilinir. Öncelikle Ara değer teoremine dayanmaktadır.

Denklemlerin Köklerini Bulma

Bu örnekte yalnızca tek bağımsız değişkenli denklemleri ele alacağız. Doğrusal veya doğrusal olmayan olabilir. Doğrusal denklemler düz bir çizginin grafiğini temsil etmek için kullanılırken, doğrusal olmayan denklemler eğrileri temsil etmek için kullanılır.

Bir denklemin kökü, denklemi sağlayan bağımsız değişkenin değeri anlamına gelir. Örneğin: f(x)= 4-x denkleminin kökü2 = 0 2'dir çünkü f(2) = 4-22 = 0.

f(x)'i gerçel sürekli bir fonksiyon olarak ele alalım. Ara değer teoremine göre, f(a)f(b) < 0 ise f(x)=0 denkleminin a ile b arasında en az bir kökü vardır. f(x) fonksiyonunun bir kökü vardır, “c” A ve B arasında.

Denklemlerin Köklerini Bulma

İkiye Bölme Yönteminin Grafiksel Gösterimi

Aşağıdaki grafik, ikiye bölme yönteminin çalışma mekanizmasını temsil eder. Grafikten, denklemin kökünün kırmızıyla işaretlendiğini görebiliriz.

Başlangıç ​​olarak:

  • İlk önce iki başlangıç ​​tahmininde bulunduk;1 ve B1, hangi f(a) için1)f(b1) < 0. Ara değer teoremine göre kök [a'da olmalıdır1, b1].
  • Bir noktanın orta noktasını bulabiliriz1 ve B1, hangisi b2. Böylece, başlangıç ​​aralığı artık [a1, b2] çünkü f(a1)f(b2) < 0.
  • Aynı şekilde yaklaşık çözüm bulunana kadar aralık azaltılır.

İkiye Bölme Yönteminin Grafiksel Gösterimi

Bölme Yöntemi Algoritması

f(x)=0 denkleminin kökünü bulmak için ikiye bölme yöntemi algoritmasını uygulama adımları aşağıdaki gibidir

) 1 Adım Başlangıç ​​tahminleri a, b ve tolerans oranı e'yi seçin

) 2 Adım Eğer f(a)f(b) >=0 ise kök bu aralıkta yer almaz. Böylece çözüm olmayacaktır.

) 3 Adım Orta noktayı bulun, c = (a+b)/2

(i) Eğer orta noktanın fonksiyon değeri f(c) = 0 ise, c köktür. 5. adıma gidin.
(ii) Eğer f(a)f(c) < 0 ise kök a ile c arasındadır. Daha sonra a = a, b = c'yi ayarlayın.
(iii) Aksi halde a = c, b = b olsun.

) 4 Adım Mutlak hata tolerans oranından yüksekse veya (ba) > e ise 3. adıma gidin.

) 5 Adım c'yi yaklaşık kök olarak görüntüleyin.

İkiye bölme yöntemi algoritmasının bir örneğini görelim.
Aşağıdaki sürekli fonksiyonun kökünü ikiye bölme yöntemi formülünü kullanarak bulmamız gerekiyor.

f(x) = x3 - x2 + 2

İkiye Bölme Yöntemi Örneği

) 1 Adım Diyelim ki,

         a = -10,
         b = 10 ve
         e = %1 veya 0.01

) 2 Adım Şimdi f(a)f(b) >= 0 olup olmadığını kontrol edeceğiz.

         f(a) = f(-10) = (-10)3 – (-10)2 + 2 = -1098
         f(b) = f(10) = (10)3 – (10)2 + 2 = 902
         f(a)f(b) = f(-10)f(10) = (-1098)(902) < 0

Dolayısıyla yukarıdaki fonksiyonun kökü bu [-10, 10] aralığında yer almaktadır.

) 3 Adım Daha sonra ilk olarak orta nokta c hesaplanacaktır.

İkiye Bölme Yöntemi Örneği

Şimdi aşağıdaki koşulların kontrol edilmesi gerekiyor:

(i) f(c) = 0 olsun:
         f(c) = f(0) = (0)3 – (0)2 + 2 = 2 ≠ 0

(ii) f(a)f(c) < 0 ise:
         f(c)f(a) = 2*(-1098) < 0

Koşul yerine getirildi. Bir sonraki yineleme için değerler şöyle olacaktır:

         bir = bir = -10
         b = c = 0

) 4 Adım (ba) = (0-(-10)) = 10>0.05 olduğundan işlem tekrarlanacaktır. Sonraki yinelemeler tabloda gösterilmektedir.

tekrarlama a b c ba f(c)
1 -10 0 0 10 2
2 -5 0 -5 5 -148
3 -2.5 0 -2.5 2.5 -19.875
4 -1.25 0 -1.25 1.25 -1.52562
5 -1.25 -0.625 -0.625 0.625 1.36523
6 -1.25 -0.9375 -0.9375 0.3125 0.297119
7 -1.09375 -0.9375 -1.09375 0.15625 -0.50473
8 -1.01562 -0.9375 -1.01562 0.078125 -0.0791054
9 -1.01562 -0.976562 -0.976562 0.0390625 0.115003
10 -1.01562 -0.996094 -0.996094 0.0195312 0.0194703
11 -1.00586 -0.996094 -1.00586 0.00976562 -0.0294344

) 5 Adım 11. yinelemede 4. adımın koşulu yanlış olacaktır. Dolayısıyla bu denklemin kökü -1.00586'dır.

İkiye Bölme Yöntemi Mantıksal Diyagramı

İkiye Bölme Yöntemi Mantıksal Diyagramı

sözde kod

Start
Set a, b, e
if f(a)*f(b) >=0 
	Output("Root does not exist in this interval")
	Stop
while (b-a)>e do   
	c ← (a + b)/2    
	if f(c) = 0
        	break    
	end if 
	if f(c)*f(a) < 0 then
      	b ← c    
	else        
		a ← c
end while
Output(c)
Stop

C/'de İkiye Bölme Yöntemi ÖrneğiC++

Giriş:

#include<bits/stdc++.h>
using namespace std;
#define Error 0.01
double value(double x)
{
	return x*x*x - x*x + 2;
}
void bisection_method(double a, double b)
{
	if (value(a) * value(b) >= 0)
	{
		cout << "The root does not lie in this interval\n";
		return;
	}
	double c = a;
	while ((b-a) >= Error)
	{
		c = (a+b)/2;
		if (value(c) == 0.0)
			break;
		else if (value(c)*value(a) < 0)
			b = c;
		else
			a = c;
	}
	cout << "The root is :" << c;
}
int main()
{
	double a =-10 , b = 10;
	bisection_method(a, b);
	return 0;
}

Çıktı:

The root is :-1.00586

İkiye Bölme Yöntemi Örneği Python

Giriş:

def value(x):
	return x*x*x - x*x + 2
def bisection_method(a,b):
	if (value(a) * value(b) >= 0):
		return
	c = a
	while ((b-a) >= 0.01):
		c = (a+b)/2
		if (value(c) == 0.0):
			break
		if (value(c)*value(a) < 0):
			b = c
		else:
			a = c			
	print("The root is : ","%.4f"%c)	
a =-10
b = 10
bisection_method(a, b)

Çıktı:

The root is :  -1.0059

İkiye Bölme Yönteminin Avantajları ve Sınırlamaları

İşte ikiye bölme yönteminin artıları ve eksileri:

Artılar Eksiler
Uygulaması kolay ve basit kök bulma yöntemi. Yakınsama yavaştır çünkü sadece aralığın yarıya indirilmesine dayanmaktadır.
Kökü paranteze aldığı için her zaman yakınsaktır. İlk tahminlerden biri köke yakınsa köke ulaşmak daha fazla yineleme gerektirecektir.
Hata oranı yineleme sayısını artırarak veya azaltarak kontrol edilebilir.