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; } } }