QUADPACK
Originalförfattare |
Robert Piessens Elise deDoncker-Kapenga Christoph W. Überhuber David Kahaner |
---|---|
Initial release | maj 1981 |
Slutlig utgåva | maj 1987 |
Skrivet i | FORTRAN 77 |
Typ | Bibliotek |
Licens | Allmängods |
Hemsida |
QUADPACK är ett FORTRAN 77- bibliotek för numerisk integration av endimensionella funktioner. Det inkluderades i SLATEC Common Mathematical Library och är därför allmän egendom . De enskilda underprogrammen finns också tillgängliga på netlib .
GNU Scientific Library återimplementerade QUADPACK-rutinerna i C . SciPy tillhandahåller ett Python- gränssnitt till en del av QUADPACK.
Rutiner
Huvudfokus för QUADPACK är på automatiska integrationsrutiner där användaren matar in problemet och en absolut eller relativ feltolerans och rutinen försöker utföra integrationen med ett fel som inte är större än det begärda. Det finns nio sådana automatiska rutiner i QUADPACK, förutom ett antal icke-automatiska rutiner. Alla utom en av de automatiska rutinerna använder adaptiv kvadratur .
1:a bokstaven | 2:a bokstaven | 3:e bokstaven | 4:e bokstaven | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
Var och en av de adaptiva rutinerna har även versioner med suffixet E som har en utökad parameterlista som ger mer information och tillåter mer kontroll. Dubbla precisionsversioner av alla rutiner släpptes med prefix D.
Allmänna rutiner
De två generella rutinerna som är mest lämpade för användning utan ytterligare analys av integranden är QAGS för integration över ett ändligt intervall och QAGI för integration över ett oändligt intervall . Dessa två rutiner används i GNU Octave ( quad-
kommandot) och R (integreringsfunktionen )
.
- QAGS
- använder global adaptiv kvadratur baserad på 21-punkts Gauss–Kronrod-kvadratur inom varje delintervall, med acceleration av Peter Wynns epsilonalgoritm.
- QAGI
- är den enda generella rutinen för oändliga intervall, och mappar det oändliga intervallet på det halvöppna intervallet (0,1] med hjälp av en transformation och använder sedan samma tillvägagångssätt som QAGS, förutom med 15-punkts snarare än 21-punkts Gauss– Kronrodskvadratur. För en integral över hela den reella linjen är den använda transformationen :
Kort översikt över övriga automatiska rutiner
- QNG
- enkel icke-adaptiv integrator
- QAG
- enkel adaptiv integrator
- QAGP
- som liknar QAGS men tillåter användaren att specificera placeringar av interna singulariteter, diskontinuiteter etc.
- QAWO-
- integral av cos( ωx ) f ( x ) eller sin( ωx ) f ( x ) över en finit intervall
- QAWF
- Fouriertransform
- QAWS
- integral av w ( x ) f ( x ) från a till b , där f är jämn och w ( x ) = ( x – a ) α ( b – x ) β log k ( x – a ) log l ( b – x ) , med k , l = 0 eller 1 och α , β > –1
- QAWC
- Cauchy huvudvärde för integralen av f ( x )/( x – c ) för användarspecificerade c och f
Se även
Vidare läsning
- Favati, P.; Lotti, G.; Romani, F. (1991). "Algorithm 691; Förbättring av QUADPACKs automatiska integrationsrutiner". ACM-transaktioner på matematisk programvara . 17 (2): 218–232. doi : 10.1145/108556.108580 . S2CID 19675880 .
- Cools, R.; Haegemans, A. (2003). "Algorithm 824: CUBPACK : ett paket för automatisk kubering; rambeskrivning". ACM-transaktioner på matematisk programvara . 29 (3): 287–296. doi : 10.1145/838250.838253 . S2CID 6855610 .