Numerikus integráció

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2020. március 10-én felülvizsgált verziótól ; az ellenőrzésekhez 10 szerkesztés szükséges .

A numerikus integráció (történelmi neve: (numerikus) kvadratúra ) egy határozott integrál értékének kiszámítása (általában közelítő). A numerikus integráció alatt egy bizonyos integrál értékének meghatározására szolgáló numerikus módszerek összességét értjük .

A numerikus integrációt akkor alkalmazzák, ha:

  1. Maga az integrandus nincs analitikusan definiálva. Például értékek táblázataként (tömbjeként) jelenik meg néhány számítási rács csomópontjain.
  2. Az integrandus analitikus reprezentációja ismert, de antideriváltja nem fejeződik ki analitikus függvényekkel. Például, .

Ebben a két esetben lehetetlen kiszámítani az integrált a Newton-Leibniz képlet segítségével . Az is előfordulhat, hogy az antiderivált alakja annyira összetett, hogy gyorsabban numerikusan ki lehet számítani az integrál értékét.

Egydimenziós tok

A legtöbb numerikus integrációs módszer fő gondolata, hogy az integrandust egy egyszerűbbre cseréljük, amelynek integrálja analitikusan könnyen kiszámítható. Ebben az esetben az integrál értékének becsléséhez az űrlap képletei

ahol  azoknak a pontoknak a száma, amelyeknél az integrandus értéke kiszámításra kerül. A pontokat a módszer csomópontjainak nevezzük, a számok  a csomópontok súlyai. Ha az integrandust nulla, első és másodfokú polinomra cseréljük, a téglalapok , a trapézok és a parabolák (Simpson) módszerét kapjuk. Az integrál értékének becslésére szolgáló képleteket gyakran kvadratúra képleteknek nevezik.

Speciális eset a Cotes-képletek néven ismert, egységes rácsokhoz tartozó integrál kvadratúra képletek megalkotásának módszere . A módszert Roger Coatesről nevezték el . A módszer lényege, hogy az integrandust valamilyen interpolációs polinomra cseréljük . Az integrál felvétele után írhatunk

ahol a számokat Cotes-együtthatónak nevezik , és az integrandus eredeti interpolációs polinomjának megfelelő polinomjainak integráljaként számítják ki a függvény értékénél a csomóponton (  a rács lépése;  a rács csomópontjainak száma és a csomópont indexe van ). A kifejezés  a módszer hibája, amely többféleképpen is megtalálható. Páratlan esetén a hiba az integrandus interpolációs polinomjának hibájának integrálásával kereshető.

A Cotes-képletek speciális esetei: téglalap-formulák ( ), trapézformulák ( ), Simpson-formula ( ), Newton-formula ( ) stb.

A téglalap módszer

Legyen szükséges meghatározni a függvény integráljának értékét az intervallumon . Ezt a szegmenst pontok egyenlő hosszúságú szegmensekre osztják . Jelölje a függvény értékével a pontokban. Ezután összeállítjuk az összegeket . Mindegyik összeg a on integrál összege, ezért közelítőleg kifejezi az integrált

Ha az adott függvény pozitív és növekvő, akkor ez a képlet egy "bejövő" téglalapokból álló lépcsőzetes alakzat területét fejezi ki, amelyet bal téglalapok képletének is neveznek, és a képlet

egy "kimenő" téglalapokból álló lépcsőzetes alakzat területét fejezi ki, amelyet derékszögű téglalapok képletének is neveznek. Minél rövidebbek azok a szegmensek, amelyekre a szegmens fel van osztva , annál pontosabb a kívánt integrál e képlettel számított értéke.

Nyilvánvalóan nagyobb pontossággal kell számolnia, ha az intervallum közepén lévő pontot veszi referenciapontnak a magasság meghatározásához. Ennek eredményeként megkapjuk a képletet a középső téglalapokhoz:

ahol

Tekintettel az utolsó képlet eleve nagyobb pontosságára, ugyanolyan térfogatú és számítási jelleggel, ezt téglalapok képletének nevezik.

Trapéz módszer

Ha az egyes részszakaszokon a függvényt a végső értékeken átmenő egyenessel közelítjük , akkor a trapéz módszert kapjuk.

A trapéz területe minden szakaszon:

Közelítő hiba minden szegmensben:

ahol

A trapézok teljes képlete abban az esetben, ha a teljes integrációs intervallumot azonos hosszúságú szegmensekre osztjuk :

ahol

Trapézforma hiba:

ahol

Parabola-módszer (Simpson-módszer)

Az integrációs szegmens három pontját felhasználva az integrandust helyettesíthetjük parabolával. Általában a szakasz végeit és felezőpontját használják ilyen pontként. Ebben az esetben a képlet nagyon egyszerű

.

Ha az integrációs intervallumot egyenlő részekre osztjuk, akkor megvan

ahol .

Növekvő pontosság

Egy függvénynek egy polinommal való közelítése az integrálás teljes intervallumában általában nagy hibához vezet az integrál értékének becslésében.

A hiba csökkentése érdekében az integrációs szegmenst részekre osztjuk, és egy numerikus módszerrel értékeljük ki az integrált mindegyiken.

Mivel a partíciók száma a végtelenbe hajlik, az integrál becslése a valós értékéhez igazodik bármely numerikus módszer esetén.

A fenti módszerek lehetővé teszik a lépés felezésének egyszerű eljárását, míg minden lépésnél csak az újonnan hozzáadott csomópontoknál kell a függvényértékeket kiszámítani. A számítási hiba becsléséhez a Runge szabályt használjuk .

Gauss-módszer

A fent leírt módszerek a szegmens rögzített pontjait (végek és középső) használják, és a pontosságuk alacsony (0 - jobb és bal téglalapok módszerei, 1 - középső téglalapok és trapézok módszerei, 3 - parabolák (Simpson-módszer). Ha ki tudjuk választani azokat a pontokat, ahol a függvény értékeit számítjuk , akkor nagyobb pontosságú módszereket kaphatunk az integrandus azonos számú számításával. Tehát az integrandus értékeinek két (mint a trapéz módszernél) kiszámításához nem a második, hanem a harmadik pontossági sorrendet kaphatja meg:

.

Általános esetben a pontok felhasználásával a képlet segítségével olyan módszert kaphatunk, amelynek a pontossága , azaz pontos értékeket kapunk a legfeljebb fokú polinomokra .

A Gauss-módszer pontonkénti csomópontértékei a Legendre fokpolinom gyökerei . A súlyértékeket a képlet számítja ki , ahol a Legendre-polinom első deriváltja .

A csomópontok és a súlyok jelentése a következő: súlyok:

(a polinom a szegmensen van definiálva ).

A legismertebb a Gauss-féle ötpontos módszer.

Gauss-Kronrod módszer

A Gauss-módszer hátránya, hogy nincs egyszerű (számítási szempontból) módja az integrál kapott értékének hibájának becslésére. A Runge-szabály használata megköveteli az integrandus kiszámítását megközelítőleg ugyanannyi ponton, miközben gyakorlatilag nem ad pontosságnövekedést, ellentétben az egyszerű módszerekkel, ahol a pontosság minden új partícióval többszörösére nő. Kronrod a következő módszert javasolta az integrál értékének becslésére

,

ahol  a Gauss-módszer csomópontjai pontonként vannak, és a , , paramétereket úgy választjuk meg, hogy a módszer pontossági sorrendje egyenlő legyen .

Ezután a hiba becsléséhez használhatja az empirikus képletet :

,

ahol  a Gauss-módszerrel kapott integrál közelítő értéke a pontokon. A gsl és SLATEC függvénytárak a határozott integrálok számítására a Gauss-Kronrod módszerrel 15, 21, 31, 41, 51 és 61 ponthoz tartozó rutinokat tartalmaznak. Az ALGLIB könyvtár a Gauss-Kronrod módszert használja 15 ponthoz.

Csebisev módszere

A Csebisev-módszer (vagy ahogyan néha Gauss-Csebisev-nek nevezik) a Gauss-féle legnagyobb algebrai pontosságú módszer egyik képviselője. Megkülönböztető tulajdonsága, hogy az integrandusnak van szorzója , i.e. a lényeg ez:

,

ahol , , a metóduscsomópontok száma.

Gauss-Lager módszer

Gauss-Hermite módszer

Integráció végtelen határokon túl

A végtelen határok feletti integráláshoz be kell vezetni egy nem egységes rácsot, amelynek lépései a végtelenbe haladva nőnek, vagy végrehajthatunk ilyen változóváltást az integrálban, ami után a határértékek végesek lesznek. Hasonló módon járhatunk el, ha a függvény szinguláris az integrációs intervallum végén.

Lásd még a Samokish módszert .

Monte Carlo Methods

A függvénygráf alatti terület meghatározásához a következő sztochasztikus algoritmust használhatja:

Ez az algoritmus megköveteli a függvény extrémjének meghatározását az intervallumon, és nem használja a függvény számított pontos értékét, kivéve az összehasonlítást, ezért nem alkalmas a gyakorlásra. A Monte Carlo módszer fő cikkben közölt változatai mentesek ezektől a hiányosságoktól.

Az integrálható függvény kis számú dimenziója esetén a Monte Carlo-integráció teljesítménye jóval alacsonyabb, mint a determinisztikus módszerek teljesítménye. Bizonyos esetekben azonban, amikor a függvényt implicit módon adjuk meg, de szükséges a komplex egyenlőtlenségek formájában megadott terület meghatározása, a sztochasztikus módszer előnyösebb lehet.

Runge-Kutta metódusok

Runge-Kutta módszerek - a numerikus algoritmusok fontos családja a közönséges differenciálegyenletek és rendszereik megoldására - az explicit és implicit közelítő számítás iteratív módszerei, amelyeket K. Runge és M. V. Kutta német matematikusok fejlesztettek ki 1900 körül .

Spline módszer

Többdimenziós eset

Kis méretekben interpolációs polinomokon alapuló kvadratúra képletek is alkalmazhatók . Az integráció az egydimenziós integrációhoz hasonlóan történik. Nagy méretek esetén ezek a módszerek elfogadhatatlanokká válnak a rácspontok számának gyors növekedése és/vagy a régió összetett határa miatt. Ebben az esetben a Monte Carlo módszert alkalmazzuk . A területünkön véletlenszerű pontokat generálunk, és a bennük lévő függvényértékeket átlagoljuk. Használhat vegyes megközelítést is - ossza fel a területet több részre, amelyek mindegyikében (vagy csak azokban, ahol az integrál nem számítható a komplex határ miatt) alkalmazza a Monte Carlo módszert .

Megvalósítási példák

Az alábbiakban az átlagos téglalap módszer, az átlagos trapéz módszer, a Simpson módszer és a Monte Carlo módszer Python 3 megvalósítása látható.

import math , véletlenszerű a numpy import sorból def get_i (): return math . e ** 1 - matek . e ** 0 def method_of_rectangles ( func , min_lim , max_lim , delta ): def integrate ( func , min_lim , max_lim , n ): integral = 0.0 step = ( max_lim - min_lim ) / n for x in arange ( min_lim , max_lim - step , step ): integrál += lépés * func ( x + lépés / 2 ) visszatér integrál d , n = 1 , 1 while abs ( d ) > delta : d = ( integrál ( func , min_lim , max_lim , n * 2 ) - integrál ( func , min_lim , max_lim , n )) / 3 n *= 2 a = abs ( integrate ( func , min_lim , max_lim , n )) b = abs ( integrál ( func , min_lim , max_lim , n )) + d if a > b : a , b = b , a print ( 'Téglalapok:' ) print ( ' \t %s \t %s \t %s ' % ( n , a , b )) def trapezium_method ( func , min_lim , max_lim , delta ): def integrate ( func , min_lim , max_lim , n ): integrál = 0.0 step = ( max_lim - min_lim ) / n for x in arange ( min_lim , max_lim - step , step ): integrál += lépés * ( func ( x ) + func ( x + lépés )) / 2 visszatérő integrál d , n = 1 , 1 while abs ( d ) > delta : d = ( integrál ( func , min_lim , max_lim , n * 2 ) - integrál ( func , min_lim , max_lim , n )) / 3 n *= 2 a = abs ( integrate ( func , min_lim , max_lim , n )) b = abs ( integrate ( func , min_lim , max_lim , n )) + d if a > b : a , b = b , a print ( 'Trapéz:' ) print ( ' \t %s \t %s \t %s ' % ( n , a , b )) def simpson_method ( func , min_lim , max_lim , delta ): def integrál ( func , min_lim , max_lim , n ): integrál = 0.0 step = ( max_lim - min_lim ) / n x esetén a tartományban ( min_lim + step / 2 , max_lim - step / 2 , lépés ): integrál += lépés / 6 * ( func ( x - step / 2 ) + 4 * func ( x ) + func ( x + lépés / 2 )) visszatér integrál d , n = 1 , 1 while abs ( d ) > delta : d = ( integrál ( func , min_lim , max_lim , n * 2 ) - integrál ( func , min_lim , max_lim , n )) / 15 n *= 2 a = abs ( integrate ( func , min_lim , max_lim , n )) b = abs ( integrál ( func , min_lim , max_lim , n )) + d if a > b : a , b = b , a print ( 'Simpson:' ) print ( ' \t %s \t %s \t %s ' % ( n , a , b )) def monte_karlo_method ( func , n ): in_d , out_d = 0. , 0. for i in arange ( n ): x , y = véletlenszerű . egységes ( 0 , 1 ), véletlenszerű . egységes ( 0 , 3 ) , ha y < func ( x ): in_d += 1 print ( 'MK:' ) print ( ' \ t %s \ t %s ' % ( n , abs ( in_d / n * 3 ) téglalapok_módszere ( lambda x : matematikai . e ** x , 0,0 , 1,0 , 0,001 ) trapéz_módszer ( lambda x : math . e ** x , 0,0 , 1,0 , 0,001 ) simpson_módszer : ( x lambda .0 ** math .0 _ _ _ _ 1.0 , 0.001 ) monte_karlo_method ( lambda x : math . e ** x , 100 ) print ( 'Valódi érték: \n\t %s ' % get_i ())

Irodalom

  • Kahaner D., Mowler K., Nash S. Numerikus módszerek és szoftver (angolból fordítva) .. - Szerk. második, sztereotípia .. - M . : Mir, 2001. - 575 p. — ISBN 5-03-003392-0 .
  • Samarsky A. A. , Gulin A. V. Numerikus módszerek: Proc. juttatás az egyetemek számára. - M . : Tudomány. Ch. szerk. fizika és matematika lit., 1989. - 432 p. — ISBN 5-02-013996-3 .
  • Piskunov N. S. Differenciál- és integrálszámítás: Proc. egyetemi pótlék: 2 kötetben - 13. kiadás - M . : Nauka. Ch. szerk. fizika és matematika lit., 1985. - 432 p.
  • Boltachev G.Sh. Numerikus módszerek a hőfizikában. Előadás 3. előadás: Numerikus integráció

Lásd még