Laman

24 Mar 2010

Algoritma Integral dengan C#

Class ini digunakan untuk melakukan perhitungan nilai integral. Pada metode ini, perhitungan integralnya dilakukan dengan menggunakan metode Simpson. Sbenarnya msih ada bnyak algoritma2 lain utk ngitung integral, tpi pda bahsan ni, aq cma bhas yg metode Simpson nya ja. Klo emang mw lbih ngdalemin, mngkin tmen2 bsa cari2/plajari dari plajaran Metode Numerik nih..

Okelah klo bGitu, lngsung aja ya dkasih contohnya dalam bahasa pemrograman C#.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Smart_StatMat.Main;

namespace StatMat.Calculus.Metode
{
    class Integral
    {

        ///
        /// Digunakan untuk melakukan perhitungan pada Integral
        /// Menggunakan metode Simpson
        ///

        ///
fungsi yang akan di integralkan
        ///
Batas atas dari integral
        ///
Batas bawah dari integral
        ///
        public double CariIntegral(string function, double atas, double bawah)
        {
            double e = 0.00001;
            double h = (atas - bawah) / 2;
            int k = 2;
            double es1 = getFX(function, (int)atas) + getFX(function, (int)bawah);
            double es2 = 0;
            double es4 = getFX(function, (int)bawah + (int)h);
            double i0 = 0;
            double iN = (es1 + 4 * es4) * (h / 3);

            while (setMutlak((iN - i0) / iN) > e)
            {
                es2 += es4;
                es4 = 0;
                double x = bawah + h / 2;

                for (int j = 1; j <= k; j++)
                {
                    es4 += getFX(function, x);
                    x += h;
                }
                k *= 2;
                h /= 2;
                i0 = iN;
                iN = (h / 3) * (es1 + 2 * es2 + 4 * es4);
            }
            return iN;
        }

        ///
        /// Melakukan penghitungan nilai f(x)
        ///

        ///
fungsi yang akan dihitung
        ///
nilai x dari fungsi tsb
        ///
        public double getFX(string function, double x)
        {
            ubahOrder itu = new ubahOrder(function, x);
            hitung ini = new hitung(itu.getItu(), itu.getY());
            return ini.getHasil();
        }

        ///
        /// Mengeset suatu nilai menjadi positif
        ///

        ///
nilai yang akan diset
        ///
        public double setMutlak(double nilai)
        {
            if (nilai >= 0)
                return nilai;
            else
                return nilai * (-1);
        }
    }
}



Slesai, smoga brmanfaat ya....

Tidak ada komentar:

Posting Komentar