QUADPACK

QUADPACK
Originalförfattare


Robert Piessens Elise deDoncker-Kapenga Christoph W. Überhuber David Kahaner
Initial release maj 1981 ( 1981-05 )
Slutlig utgåva
maj 1987
Skrivet i FORTRAN 77
Typ Bibliotek
Licens Allmängods
Hemsida nines .cs .kuleuven .be /software /QUADPACK /

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 .

Sammanfattning av namnschema för automatiska rutiner
1:a bokstaven 2:a bokstaven 3:e bokstaven 4:e bokstaven
F Kvadratur
N Ej adaptiv
A Adaptiv
G Allmän integrand
W Viktfunktion av angiven form
Enkel integrator
S Singulariteter hanteras
P Angivna punkter med lokala svårigheter (singulariteter, diskontinuiteter ...)
jag Oändligt intervall
O Oscillerande viktfunktion (cos eller sin) över ett begränsat intervall
F Fouriertransform (cos eller sin)
C Cauchy huvudvärde

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 :
Detta är inte det bästa tillvägagångssättet för alla integrander: en annan transformation kan vara lämplig, eller så kanske man föredrar att bryta upp det ursprungliga intervallet och använda QAGI endast på den oändliga delen.

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