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.
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
a - začiatok intervalu (v obrázku dole je a = 1)
b - koniec intervalu (v obrázku dole je b = 4)
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)
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 |
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 |
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.