C++ Bc. 30: Porovnání verzí

Z GeoWikiCZ
m (simpson v. 0)
 
mBez shrnutí editace
 
(Není zobrazeno 14 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
'''Přibližný výpočet určitého integrálu'''
;[http://en.wikipedia.org/wiki/Simpsons_rule Přibližný výpočet určitého integrálu (Simpsonovo pravidlo)]


[ [[C plus plus Bc.|Zpět]] | [[C plus plus Bc. 30 cpp | C++ ]] | [[C plus plus Bc. 31|Další]] ]
U tohoto kvadratického vzorce se rozdělí daný interval na sudý počet ekvidistantních intervalů. Trojici sousedních bodů (pro dva integrační kroky) nahrazuje ''Simpsonovo pravidlo'' kvadratickym polynomem
 
<math>
\int_{x_0}^{x_0 + 2h} f(x){\mathrm d}x \approx {1 \over 3}h \left[ f(x_0) + 4f(x_0+h) + f(x_0 + 2h)
\right]
</math>.
 
 
Součet pro celý interval <math><a, b></math> je
 
<math>
\int_a^b f(x){\mathrm d}x \approx {1 \over 3}h \left[
f(a) + 4f(a+h) + 2f(a+2h) + 4f(a+3h) + \ldots
+ 4f(a+(m-1)h) + f(b)
\right]
</math>
 
kde integrační krok <math>h = {b-a\over m} </math> a <math>m</math> je sudé.
 
 
Napište funkci
 
double simpson(double (*f)(double), double a, double b, int m);
 
pro numerický výpočet určitého integrálu Simpsonovou metodou.
 
Příklad výpočtu určitého integrálu funkce <math>sin(x), \quad x \in <a, b></math>.
 
    a        b    simpson  chyba    m = 2
--------------------------------------------
0.000000 1.000000 0.459862 -1.644957e-04
0.100000 1.200000 0.632980 -3.335789e-04
0.200000 1.400000 0.810709 -6.092499e-04
0.300000 1.600000 0.985564 -1.027751e-03
0.400000 1.800000 1.149889 -1.625841e-03
    a        b    simpson  chyba    m = 4
--------------------------------------------
0.000000 1.000000 0.459708 -1.005080e-05
0.100000 1.200000 0.632667 -2.028349e-05
0.200000 1.400000 0.810136 -3.684878e-05
0.300000 1.600000 0.984598 -6.179879e-05
0.400000 1.800000 1.148360 -9.714269e-05
 
[ [[C++ Bc.|Zpět]] | [[C++ Bc. 30 cpp | C++ ]] | [[C++ Bc. 31|Další]] ]
 
[[Kategorie:Programování]]

Aktuální verze z 15. 1. 2009, 15:58

Přibližný výpočet určitého integrálu (Simpsonovo pravidlo)

U tohoto kvadratického vzorce se rozdělí daný interval na sudý počet ekvidistantních intervalů. Trojici sousedních bodů (pro dva integrační kroky) nahrazuje Simpsonovo pravidlo kvadratickym polynomem

.


Součet pro celý interval je

kde integrační krok a je sudé.


Napište funkci

double simpson(double (*f)(double), double a, double b, int m);

pro numerický výpočet určitého integrálu Simpsonovou metodou.

Příklad výpočtu určitého integrálu funkce .

    a        b     simpson   chyba     m = 2
--------------------------------------------
0.000000 1.000000 0.459862 -1.644957e-04
0.100000 1.200000 0.632980 -3.335789e-04
0.200000 1.400000 0.810709 -6.092499e-04
0.300000 1.600000 0.985564 -1.027751e-03
0.400000 1.800000 1.149889 -1.625841e-03

    a        b     simpson   chyba     m = 4
--------------------------------------------
0.000000 1.000000 0.459708 -1.005080e-05
0.100000 1.200000 0.632667 -2.028349e-05
0.200000 1.400000 0.810136 -3.684878e-05
0.300000 1.600000 0.984598 -6.179879e-05
0.400000 1.800000 1.148360 -9.714269e-05

[ Zpět | C++ | Další ]