Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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

V minulé lekci, Generování (pseudo)náhodných čísel, jsme se něco dozvěděli o základních principech algoritmů generování náhodných čísel počítačem včetně popisu generování různých pravděpodobnostních rozložení.

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.

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

V další lekci, Algoritmus pro numerické integrování - Lichoběžníková metoda, si popíšeme algoritmus pro numerický výpočet integrálu, tedy obsahu pod křivkou, pomocí lichoběžníkové formule.


 

Předchozí článek
Generování (pseudo)náhodných čísel
Všechny články v sekci
Matematické algoritmy
Přeskočit článek
(nedoporučujeme)
Algoritmus pro numerické integrování - Lichoběžníková metoda
Článek pro vás napsal Gramli
Avatar
Uživatelské hodnocení:
5 hlasů
Autor se věnuje hlavně jazyku C#
Aktivity

 

 

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í!