Programda kullanıcıdan
- İntegral alt sınır değerini
- İntegral üst sınır değerini
- Aralık sayısını
Yöntem farklı fonksiyonlar için uygulamak istenirse FonksiyonHesap ve IntegralHesap(Hata kontrolü için) geri dönüş değerleri değiştirilmelidir.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //www.delimuhendis.com namespace TrapezYontemi { class Program { static double altSinir = 0, ustSinir = 0; static double aralikSayisi = 0, aralikDegeri = 0; static double sonuc = 0, anlikDeger = 0, analitikSonuc = 0; static void Main(string[] args) { Console.Write ("İntegral alt sınırını giriniz: "); altSinir = Convert.ToDouble(Console.ReadLine()); Console.Write ("İntegral üst sınırını giriniz: "); ustSinir = Convert.ToDouble(Console.ReadLine()); Console.Write ("Aralık sayisini giriniz: "); aralikSayisi = Convert.ToDouble(Console.ReadLine()); Trapez(); Console.Read(); } static void Trapez() { aralikDegeri = (ustSinir - altSinir) / aralikSayisi; sonuc = FonksiyonHesap(ustSinir) + FonksiyonHesap(altSinir); anlikDeger = aralikDegeri; for (int i = 1; i < aralikSayisi; i++) { sonuc += 2 * FonksiyonHesap(anlikDeger); anlikDeger += aralikDegeri; } sonuc = sonuc * (aralikDegeri / 2); Console.WriteLine("İntegral sonucu: " + sonuc); analitikSonuc = IntegralHesap(ustSinir) - IntegralHesap(altSinir); Console.WriteLine("Mutlak hata: " + Math.Abs(analitikSonuc - sonuc)); Console.WriteLine("Bağıl hata: " + (Math.Abs((analitikSonuc-sonuc)/analitikSonuc)*100)); } static double FonksiyonHesap(double x) { return (10 * x * x) - (6 * x); } static double IntegralHesap(double x) { return 10 * Math.Pow (x, 3) / 3 - 6 * Math.Pow(x, 2) / 2; } } }