Trapez Yöntemi

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