Kiriş Yöntemi (Yer Değiştirme)

Programda kullanıcıdan

  • Aralığın ilk değerini ( alt aralık )
  • Aralığın ikinci değerini ( üst aralık )
  • Mutlak hata

değeri istenmektedir.

Program x3-20x+16 fonksiyonu için uygulanmıştır. Eğer istenilirse FonksiyonHesap metodundaki geri dönüş değeri değiştirilerek farklı fonksiyonlar için uygulanabilir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//www.delimuhendis.com

namespace KirisYontemi
{
    class Program
    {
        static double ilkDeger = 0, ikinciDeger = 0, yeniDeger = 0, eskiDeger = -150, hataDegeri = 0;
        static void Main(string[] args)
        {
            Console.Write("İlk değeri giriniz: ");
            ilkDeger = Convert.ToDouble(Console.ReadLine());
            Console.Write("İkinci değeri giriniz: ");
            ikinciDeger = Convert.ToDouble(Console.ReadLine());
            Console.Write("Hata değerini giriniz: ");
            hataDegeri = Convert.ToDouble(Console.ReadLine());
            YerDegistirme();
            Console.Write("\n\nÇıkmak için bir tuşa basınız.");
            Console.ReadLine();

        }

        static void YerDegistirme()
        {
            int adimSayisi = 1;
            while (true)
            {
                yeniDeger = (ilkDeger) - ((ikinciDeger - ilkDeger) / (FonksiyonHesap(ikinciDeger) - FonksiyonHesap(ilkDeger)) * FonksiyonHesap(ilkDeger));
                
                if (Math.Abs(yeniDeger - eskiDeger) < hataDegeri)
                    break;

                if (Math.Sign(FonksiyonHesap(yeniDeger)) == Math.Sign(FonksiyonHesap(ilkDeger)))
                    ilkDeger = yeniDeger;
                else
                    ikinciDeger = yeniDeger;

                Console.WriteLine("\n\nAdım " + adimSayisi 
                                 +"\n\nx"+(adimSayisi+1) + ": " + yeniDeger + "\nf(x"+(adimSayisi+1) +") : " + FonksiyonHesap(yeniDeger));

                eskiDeger = yeniDeger;
                adimSayisi++;
                
            }
        }

        static double FonksiyonHesap(double deger)
        {
            return Math.Pow(deger, 3) - 20*deger +16;
        }
    }
}

 

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: