File: QAG-adaptive-integration.html

package info (click to toggle)
gsl-ref-html 2.3-1
  • links: PTS
  • area: non-free
  • in suites: bullseye, buster, sid
  • size: 6,876 kB
  • ctags: 4,574
  • sloc: makefile: 35
file content (139 lines) | stat: -rw-r--r-- 7,742 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".

(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library &ndash; Reference Manual: QAG adaptive integration</title>

<meta name="description" content="GNU Scientific Library &ndash; Reference Manual: QAG adaptive integration">
<meta name="keywords" content="GNU Scientific Library &ndash; Reference Manual: QAG adaptive integration">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Numerical-Integration.html#Numerical-Integration" rel="up" title="Numerical Integration">
<link href="QAGS-adaptive-integration-with-singularities.html#QAGS-adaptive-integration-with-singularities" rel="next" title="QAGS adaptive integration with singularities">
<link href="QNG-non_002dadaptive-Gauss_002dKronrod-integration.html#QNG-non_002dadaptive-Gauss_002dKronrod-integration" rel="previous" title="QNG non-adaptive Gauss-Kronrod integration">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="QAG-adaptive-integration"></a>
<div class="header">
<p>
Next: <a href="QAGS-adaptive-integration-with-singularities.html#QAGS-adaptive-integration-with-singularities" accesskey="n" rel="next">QAGS adaptive integration with singularities</a>, Previous: <a href="QNG-non_002dadaptive-Gauss_002dKronrod-integration.html#QNG-non_002dadaptive-Gauss_002dKronrod-integration" accesskey="p" rel="previous">QNG non-adaptive Gauss-Kronrod integration</a>, Up: <a href="Numerical-Integration.html#Numerical-Integration" accesskey="u" rel="up">Numerical Integration</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="QAG-adaptive-integration-1"></a>
<h3 class="section">17.3 QAG adaptive integration</h3>
<a name="index-QAG-quadrature-algorithm"></a>

<p>The QAG algorithm is a simple adaptive integration procedure.  The
integration region is divided into subintervals, and on each iteration
the subinterval with the largest estimated error is bisected.  This
reduces the overall error rapidly, as the subintervals become
concentrated around local difficulties in the integrand.  These
subintervals are managed by a <code>gsl_integration_workspace</code> struct,
which handles the memory for the subinterval ranges, results and error
estimates.
</p>
<dl>
<dt><a name="index-gsl_005fintegration_005fworkspace_005falloc"></a>Function: <em>gsl_integration_workspace *</em> <strong>gsl_integration_workspace_alloc</strong> <em>(size_t <var>n</var>) </em></dt>
<dd><a name="index-gsl_005fintegration_005fworkspace"></a>
<p>This function allocates a workspace sufficient to hold <var>n</var> double
precision intervals, their integration results and error estimates.
One workspace may be used multiple times as all necessary reinitialization
is performed automatically by the integration routines.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fintegration_005fworkspace_005ffree"></a>Function: <em>void</em> <strong>gsl_integration_workspace_free</strong> <em>(gsl_integration_workspace * <var>w</var>)</em></dt>
<dd><p>This function frees the memory associated with the workspace <var>w</var>.
</p></dd></dl>

<dl>
<dt><a name="index-gsl_005fintegration_005fqag"></a>Function: <em>int</em> <strong>gsl_integration_qag</strong> <em>(const gsl_function * <var>f</var>, double <var>a</var>, double <var>b</var>, double <var>epsabs</var>, double <var>epsrel</var>, size_t <var>limit</var>, int <var>key</var>, gsl_integration_workspace * <var>workspace</var>,  double * <var>result</var>, double * <var>abserr</var>)</em></dt>
<dd>
<p>This function applies an integration rule adaptively until an estimate
of the integral of <em>f</em> over <em>(a,b)</em> is achieved within the
desired absolute and relative error limits, <var>epsabs</var> and
<var>epsrel</var>.  The function returns the final approximation,
<var>result</var>, and an estimate of the absolute error, <var>abserr</var>.  The
integration rule is determined by the value of <var>key</var>, which should
be chosen from the following symbolic names,
</p>
<div class="example">
<pre class="example">GSL_INTEG_GAUSS15  (key = 1)
GSL_INTEG_GAUSS21  (key = 2)
GSL_INTEG_GAUSS31  (key = 3)
GSL_INTEG_GAUSS41  (key = 4)
GSL_INTEG_GAUSS51  (key = 5)
GSL_INTEG_GAUSS61  (key = 6)
</pre></div>

<p>corresponding to the 15, 21, 31, 41, 51 and 61 point Gauss-Kronrod
rules.  The higher-order rules give better accuracy for smooth functions,
while lower-order rules save time when the function contains local
difficulties, such as discontinuities.
</p>
<p>On each iteration the adaptive integration strategy bisects the interval
with the largest error estimate.  The subintervals and their results are
stored in the memory provided by <var>workspace</var>.  The maximum number of
subintervals is given by <var>limit</var>, which may not exceed the allocated
size of the workspace.
</p></dd></dl>


<hr>
<div class="header">
<p>
Next: <a href="QAGS-adaptive-integration-with-singularities.html#QAGS-adaptive-integration-with-singularities" accesskey="n" rel="next">QAGS adaptive integration with singularities</a>, Previous: <a href="QNG-non_002dadaptive-Gauss_002dKronrod-integration.html#QNG-non_002dadaptive-Gauss_002dKronrod-integration" accesskey="p" rel="previous">QNG non-adaptive Gauss-Kronrod integration</a>, Up: <a href="Numerical-Integration.html#Numerical-Integration" accesskey="u" rel="up">Numerical Integration</a> &nbsp; [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>