Aralık Yarılama Yöntemi

Bu yöntemde verilen aralığın küçültülerek köke yaklaşılması esas alınmaktadır.

Programda kullanıcıdan

  • Aralık için bir alt nokta
  • Aralık için bir üst nokta
  • Mutlak hata

değerleri istenmektedir.

Programda aralık yarılama yöntemi x2-3x-5 için uygulanmıştır. Eğer istenilirse kod içersinde yer alan FonksiyonHesap metodundaki geri dönüş değeri ayarlanarak farklı fonksiyonlar için uygulanabilir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;

namespace AralikYarilamaYontemi
{
    class Program
    {
        static double altNokta = 0, ustNokta = 0, mutlakHata = 0, yeniNokta = 0;
            
        static void Main(string[] args)
        {

            Console.Write("Alt nokta değerini giriniz:");
            altNokta = Convert.ToDouble(Console.ReadLine());
            Console.Write("Üst nokta değerini giriniz:");
            ustNokta = Convert.ToDouble(Console.ReadLine());
            Console.Write("Mutlak hata değerini giriniz:");
            mutlakHata = Convert.ToDouble(Console.ReadLine());
            BolzonaYontemi();
            Console.Write("\n\n\nBulunan kök : " + yeniNokta + "\n\nÇıkmak için herhangi bir tuşa basınız");
            Console.ReadLine();
            
        }

        static void BolzonaYontemi()
        {

            if ((FonksiyonHesap(altNokta) * FonksiyonHesap(ustNokta)) < 0)
                Console.WriteLine("\n\nVerilen aralıkta bir kök vardır.");
            else
            {
                Console.WriteLine("\n\nVerilen aralıkta bir kök yoktur.\n Programdan çıkış yapılıyor...");
                Thread.Sleep(3000);
                Environment.Exit(0);
                
            }
            int adimSayisi = 1;
            double donguKosulu = mutlakHata + 1;
            while (donguKosulu > mutlakHata)
            {
                yeniNokta = (altNokta + ustNokta) / 2;
                if ((FonksiyonHesap(altNokta) * FonksiyonHesap(yeniNokta)) < 0)
                    ustNokta = yeniNokta;
                else
                    altNokta = yeniNokta;
                
                donguKosulu = Math.Abs(FonksiyonHesap(altNokta) - FonksiyonHesap(ustNokta));

                Console.WriteLine("\nAdım:" + adimSayisi + "\n\nYeni Nokta: " + yeniNokta + " Alt Nokta : " + altNokta + " Üst Nokta: "
                                 + ustNokta + "\nAnlık Hata " + donguKosulu + "Mutlak Hata : " + mutlakHata);
                adimSayisi++;
            }
        }   

        static double FonksiyonHesap(double deger)
        {
            return (deger * deger) - (3 * deger) - 5;
        }

    }

}

 

 

Become a patron at Patreon!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: