Dört İşlem ile Karekök Hesaplama

  Hesap makinesinin kök alma fonksiyonunu kullanmadan kök hesaplamak elbette mümkün. Ortaokul yıllarında matematik dersinde bu konuyu öğrenmiştik. Ancak yıllar içerisinde öğretilen yöntemi unuttum. Çok araştırmama rağmen aynı hesaplama yöntemini bulmadım. Kök hesaplamak için bir çok farklı yöntem kullanılıyor. Bazı yöntemler yaklaşık sonuçlar verirken bazı yöntemler ise daha kesin sonuçlar vermektedir. 

 Hesaplama yöntemleri içerisinde başarılı ve basit bulduğum ayrıca bilgisayarlarında kök hesaplamasında kullandığı Babil yönteminden bahsetmek istiyorum. Aşağıdaki formül ile dört işlem kullanılarak kök hesaplayabiliyoruz.

√x = y ise

√x = ((x/y)+y)/2{codeBox} 

 Hemen bildiğimiz bir değer ile deneme yapalım.

√9=3

√9=((9/3)+3)/2 = (3+3)/2 =  6/2 = 3{codeBox} 

 Gelelim bilmediğimiz bir değeri bu formül ile nasıl kullandığımız konusuna... Kök değeri için kaba bir yaklaşım ile kökü alınacak sayının yarısı (ikiye bölümü) kök değer için yaklaşık bir değer olarak kabul edilir. Bu değer ile yukarıdaki formüle göre hesap yapıldığında sonuç yaklaşık değerden farklı çıkarsa elde edilen sonuç yaklaşık değer olarak kabul ettiğimiz sayıdan daha doğru bir değer vermektedir. Dolayısı ile işlem sonucu yeni yaklaşık değer olarak kabul edilerek formüle göre aynı işlem tekrarlanır. Yaklaşık değer ile sonuç aynı olduğunda tam olarak kök değer hesaplanmış olur. Bazı kaynaklar ilk yaklaşık değerin tahmin ile tayin edilmesi gerektiğini anlatmaktadır. Tahmin yöntemi ile de doğru sonuca ulaşılır ancak biz programlamaya da uygun olması amacı ile ilk yaklaşık değerimizi kökü alınacak sayının yarısı kabul ediyoruz... 

  Örnek ile konuyu pekiştirelim. 9 sayısının kökünü hesaplayalım. 

√9 = 9/2 = 4.5{codeBox}   

ilk yaklaşık sonuç. Şimdi formüle göre doğrulayalım,

√9 = ((9 / 4.5)+ 4.5) / 2 = 3,25{codeBox}

Sonuç yaklaşık değerimizden faklı. O halde yeni yaklaşık değer ile tekrar doğrulama yapalım. 

√9 = ((9 / 3,25)+ 3,25) / 2 = 3,0096{codeBox}

Sonuç yine farklı işleme devam...

√9 = ((9 / 3,0096)+ 3,0096) / 2 = 3,000015{codeBox}

Sonuç yine farklı işleme devam...

√9 = ((9 / 3,000015  )+ 3,000015  ) / 2 = 3,00000000003{codeBox}

Sonuç yaklaşık değere çok yakın. Bu sonuç doğru kabul edilebilir. Ancak hesaplama yeteneğimize bağlı olarak işleme devam edersek tam sayıya (veya mümkün olduğu kadar doğru hesaplananına)  ulaşmış oluruz.

√9 = ((9 /  3,00000000003 )+  3,00000000003 ) / 2 = 3,00000000000000000000015{codeBox}

Sonuç yine farklı işleme devam...

√9 = ((9 /  3,00000000000000000000015 )+  3,00000000000000000000015 ) / 2 = 3{codeBox}

Sonuç yine farklı işleme devam...

√9 = ((9 /  3)+  3) / 2 = 3{codeBox}

Sonuç yaklaşık değer ile aynı. O Halde;

√9 = 3{codeBox}

 Yaklaşık değer ile sonuç farklı olduğu sürece aynı işlemi tekrarladığımıza göre programlama da bu işlemi koşullu bir döngü ile kodlayabiliriz. Yukarıdaki işlemi yapan örnek bir C kodunu aşağıda bulabilirsiniz. 

float kokHesapla(int sayi)

{

    float kaba, kok;

    kok = sayi / 2;

    kaba = 0;

    // doğru sonucu ulaşıncaya kadar işlem döngüsü

    while(kok != kaba){      

        kaba = kok;  // yaklaşık değer ilk seferde sayı/2 

        kok = ( sayi / kaba + kaba ) / 2;

    }

    // dongüden çıkıldı. O halde sonuç bulundu.

    return kok;

}{codeBox}


Yorum Gönder

Daha yeni Daha eski