Algoritmus pro numerické integrování - Obdélníková metoda

Algoritmy Matematické Algoritmus pro numerické integrování - Obdélníková metoda

Numerický výpočet integrálu

Jednoduchý určitý integrál slouží k výpočtu obsahu pod křivkou, přičemž intervaly jsou body, které danou křivku ohraničují. Takže pokud máme integrál nějaké funkce na intervalu <1;4>, tak to znamená, že vypočteme obsah pod křivkou, která na ose x začíná 1 a končí 4 viz. obrázek.

Obsah pod křivkou

Pro složitější funkce(křivky) budeme potřebovat určité vzorce(formule, metody), podle kterých spočítáme obsah pod danou křivkou. Asi nejznámější metody pro takovýto výpočet jsou: obdelníková, lichoběžníková a Simpsonova. Tyto metody můžeme dále rozdělit na základní(jedno­duché) a složené. Základní metody spočívají v tom, že máme křivku(funkci) na intervalu <a;b> a tu proložíte určitou křivkou podle použité metody. U složených metod, si danou funkci(křivku) můžeme rozdělit, na tolik intervalů, kolik potřebujeme a v každém intervalu aplikujeme základní metodu, čímž docílíme větší přesnosti výpočtu.

Obdelníková metoda

Základní formule

Vzorec jednoduché obdelníkové metody

a - začátek intervalu (v obrázku dole je a=1)

b - konec intervalu (v obrázku dole je b=4)

Jednoduchá obdelníková formule

Základní obdelníková formule spočívá v nalezení středu intervalu: (a+b)/2 a poté proloží tímto středem intervalu obdelník o délce intervalu. Viz obrázek.

Složená formule

h= (b-a)/n ,kde n je počet podintervalů

h - délka intervalu - udává délku křivky, kterou daný interval prokládáme(u obdelníkové metody je to délka obdelníku)

Vzorec obdelníkové složené metody
Složená obdelníková formule

Složená obdélníková metoda spočívá v tom, že si hlavní interval <a;b> rozdělíme na několik podintervalů. Na obrázku si rozděluji interval <1;4> na 3 podintervaly: <1;2>,<2;3>.<3;4>, ve kterých aplikuji základní obdélníkovou metodu.

Výpočet matematicky:

Př: Spočítejte obsah pod křivkou funkce y(x)=x na intervalu <1;4> pomocí složené obdelníkové metody.

Zadaná funkce je y(x) = x, to znamená, že když dosadím za x = 1, pak y =1 viz tabulka:

iterace 0 1 2 3
x 1 2 3 4
y 1 2 3 4

Dále si funkci rozdělím na 3 podintervaly, tedy n=3. ( <1;2>,<2;3>.<3;4>)

h= (b-a)/n=(4-1)/3= 1

S=h[f(x0+0,5h­)+f(x1+0,5h)+f(x2+0,5h)]

Podle rovnice musíme vypočítat hodnotu y(x) v polovině každého intervalu.

Výpočet y(x0+0,5h) y(x1+0,5h) y(x2+0,5h)
y(x) 1,5 2,5 3,5

S=1*[1,5+2,5+­3,5]=7,5

Výsledek příkladu podle obdelníkové metody je tedy 7,5. V tomhle případě to vyjde přesně. Pokud bychom měli složitější křivku a potřebovali bychom přesnější výsledek, řešením by bylo zvětšit počet intervalů.

Metoda v C#

private double ObdelnikovaMetoda(double a, double b, int n)
{
double[] stredyIntervalu = new double[n];  // deklaruju si pole, kde budu mit stredy intervalu

        double h = (b - a) / n; // spocitam si h

        for (int i = 1; i <= n; i++) // v tomhle foru plnim pole, pomoci stredu jednotlivych intervalu
        {
            stredyIntervalu[i-1] = (a + h*i) - (h/2);
        }

        double vysledek = 0; // deklaruju promenou vysledek

        for (int i = 0; i < n; i++)
        {
           vysledek += stredyIntervalu[i]; // tady je treba zadat tu svou funkci pokud  bych mel napriklad funkci y(x) = 2x + 3,
           //tak radek bude vypadat takto: vysledek += (2*stredyIntervalu[i]+3);
        }

        return vysledek *= h;

}

Závěr

Na závěr k této metodě jen řeknu, že její použití nedoporučuji. Její přesnost není ideální, uvádím ji jen proto, že se nachází ve všech studijních materiálech. A myslím, že pomůže v pochopení numerického výpočtu obsahu pod křivkou.

V dalším díle se podíváme na lichoběžníkovou metodu, která je mnohem přesnější.

Zdroj: http://mathonline.fme.vutbr.cz


 

  Aktivity (1)

Článek pro vás napsal Gramli
Avatar
Autor se věnuje hlavně jazyku C#

Jak se ti líbí článek?
Celkem (2 hlasů) :
55555


 



 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!