IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Algoritmus pre numerické integrovanie - Obdĺžniková metóda

V minulej lekcii, Matice a základné operácie s nimi, nielen v kóde , sme sa zoznámili s pojmom matice a naučili sa základné matematické operácie, ktoré na ne možno aplikovať.

Numerický výpočet integrálu

Jednoduchý určitý integrál slúži na výpočet obsahu pod krivkou, pričom intervaly sú body, ktoré danú krivku ohraničujú. Takže ak máme integrál nejaké funkcie na intervale <1; 4>, tak to znamená, že vypočítame obsah pod krivkou, ktorá na osi x začína 1 a končí 4 viď. obrázok.

Obsah pod krivkou - Matematické algoritmy

Pre zložitejšie funkcie (krivky) budeme potrebovať určité vzorce (formula, metódy), podľa ktorých spočítame obsah pod danú krivkou. Asi najznámejšie metódy pre takýto výpočet sú: obdĺžniková, lichobežníková a Simpsonova. Tieto metódy môžeme ďalej rozdeliť na základné (jednoduché) a zložené. Základné metódy spočívajú v tom, že máme krivku (funkciu) na intervale <a, b> a tú preložíte určitú krivkou podľa použitej metódy. U zložených metód, si danú funkciu (krivku) môžeme rozdeliť, na toľko intervalov, koľko potrebujeme a v každom intervale aplikujeme základnú metódu, čím docielime väčšej presnosti výpočtu.

Obdĺžniková metóda

Základná formula

Vzorec jednoduché obdĺžnikové metódy - Matematické algoritmy

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

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

Jednoduchá obdĺžniková formula - Matematické algoritmy

Základná obdĺžniková formula spočíva v nájdení stredu intervale: (a + b) / 2 a potom preloží týmto stredom intervalu obdĺžnik s dĺžkou intervalu. Viď obrázok.

Zložená formula

h = (ba) / n, pričom n je počet podintervalů

h - dĺžka intervalu - udáva dĺžku krivky, ktorú daný interval prekladáme (u obdĺžnikových metódy je to dĺžka obdĺžnika)

Vzorec obdĺžnikové zložené metódy - Matematické algoritmy
Zložená obdĺžniková formula - Matematické algoritmy

Zložená obdĺžniková metóda spočíva v tom, že si hlavnú interval <a, b> rozdelíme na niekoľko podintervalů. Na obrázku si rozdeľujem interval <1; 4> na 3 podintervaly: <1; 2>, <2; 3>. <3; 4>, v ktorých aplikujem základný obdĺžnikovú metódu.

Výpočet matematicky:

Pr: Spočítajte obsah pod krivkou funkcie y (x) = x na intervale <1; 4> pomocou zložené obdĺžnikové metódy.

Zadaná funkcia je y (x) = x, to znamená, že keď posadím za x = 1, potom y = 1 viď tabuľka:

iterácie 0 1 2 3
x 1 2 3 4
y 1 2 3 4
Ďalej si funkciu rozdelím na 3 podintervaly, teda n = 3. (<1; 2>, <2; 3>. <3; 4>)

h = (ba) / n = (4-1) / 3 = 1

S = h [f (x 0 + 0,5H) + f (x 1 + 0,5H) + f (x 2 + 0,5H)]

Podľa rovnice musíme vypočítať hodnotu y (x) v polovici každého intervalu.

výpočet y (x 0 + 0,5H) y (x 1 + 0,5H) y (x 2 + 0,5H)
y (x) 1,5 2,5 3,5
S = 1 * [1,5 + 2,5 + 3,5] = 7,5

Výsledok príkladu podľa obdĺžnikových metódy je teda 7,5. V tomto prípade to vyjde presne. Ak by sme mali zložitejšie krivku a potrebovali by sme presnejší výsledok, riešením by bolo zväčšiť počet intervalov.

Metóda 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áver

Na záver k tejto metóde len poviem, že jej použitie neodporúčam. Jej presnosť nie je ideálne, uvádzam ju len preto, že sa nachádza vo všetkých študijných materiáloch. A myslím, že pomôže v pochopení numerického výpočtu obsahu pod krivkou.

V ďalšom diele sa pozrieme na lichobežníkovou metódu, ktorá je oveľa presnejší.

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

V ďalšej lekcii, Determinant matíc a inverzné matice , sa pozrieme na ďalšie pokročilejšie pojmy ako napríklad determinant a inverzné matice vrátane prevedenie do kódu.


 

Predchádzajúci článok
Matice a základné operácie s nimi, nielen v kóde
Všetky články v sekcii
Matematické algoritmy
Preskočiť článok
(neodporúčame)
Determinant matíc a inverzné matice
Článok pre vás napísal Gramli
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje hlavně jazyku C#
Aktivity