annotate scripts/general/quadv.m @ 11233:1dfbcc9eee92

eliminate special cases for __DECCXX
author John W. Eaton <jwe@octave.org>
date Wed, 10 Nov 2010 21:11:43 -0500
parents 2aec7e3b8553
children fd0a3ac60b0e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8920
eb63fbe60fab update copyright notices
John W. Eaton <jwe@octave.org>
parents: 8507
diff changeset
1 ## Copyright (C) 2008, 2009 David Bateman
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
2 ##
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
3 ## This file is part of Octave.
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
4 ##
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
8 ## your option) any later version.
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
9 ##
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
13 ## General Public License for more details.
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
14 ##
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
18
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
19 ## -*- texinfo -*-
10793
be55736a0783 Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents: 10549
diff changeset
20 ## @deftypefn {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b})
10430
f1567b3e1108 scripts/general/quadv.m: Replace 'quadl' with 'quadv' in help text
Soren Hauberg <hauberg@gmail.com>
parents: 9209
diff changeset
21 ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol})
f1567b3e1108 scripts/general/quadv.m: Replace 'quadl' with 'quadv' in help text
Soren Hauberg <hauberg@gmail.com>
parents: 9209
diff changeset
22 ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace})
f1567b3e1108 scripts/general/quadv.m: Replace 'quadl' with 'quadv' in help text
Soren Hauberg <hauberg@gmail.com>
parents: 9209
diff changeset
23 ## @deftypefnx {Function File} {@var{q} =} quadv (@var{f}, @var{a}, @var{b}, @var{tol}, @var{trace}, @var{p1}, @var{p2}, @dots{})
f1567b3e1108 scripts/general/quadv.m: Replace 'quadl' with 'quadv' in help text
Soren Hauberg <hauberg@gmail.com>
parents: 9209
diff changeset
24 ## @deftypefnx {Function File} {[@var{q}, @var{fcnt}] =} quadv (@dots{})
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
25 ##
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
26 ## Numerically evaluate the integral of @var{f} from @var{a} to @var{b}
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
27 ## using adaptive Simpson's rule.
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
28 ## @var{f} is either a function handle, inline function or string
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
29 ## containing the name of the function to evaluate.
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
30 ## The function defined by @var{f} may be a scalar, vector or array-valued.
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
31 ##
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
32 ## If a value for @var{tol} is given, it defines the tolerance used to stop
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
33 ## the adaptation procedure, otherwise the default value of 1e-6 is used.
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
34 ##
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
35 ## The algorithm used by @code{quadv}, involves recursively subdividing the
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
36 ## integration interval and applying Simpson's rule on each sub-interval.
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
37 ## If @var{trace} is @var{true}, after computing each of these partial integrals,
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
38 ## display the total number of function evaluations, the left end of the sub-interval,
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
39 ## the length of the sub-interval and the approximation of the integral over the sub-interval.
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
40 ##
9209
923c7cb7f13f Simplify TeXinfo files by eliminating redundant @iftex followed by @tex construction.
Rik <rdrider0-list@yahoo.com>
parents: 9051
diff changeset
41 ## Additional arguments @var{p1}, etc., are passed directly to @var{f}.
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
42 ## To use default values for @var{tol} and @var{trace}, one may pass
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
43 ## empty matrices.
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
44 ##
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
45 ## @seealso{triplequad, dblquad, quad, quadl, quadgk, trapz}
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
46 ## @end deftypefn
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
47
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
48 function [q, fcnt] = quadv (f, a, b, tol, trace, varargin)
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
49 if (nargin < 3)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
50 print_usage ();
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
51 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
52 if (nargin < 4)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
53 tol = [];
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
54 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
55 if (nargin < 5)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
56 trace = [];
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
57 endif
7795
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
58 if (isa (a, "single") || isa (b, "single"))
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
59 myeps = eps ("single");
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
60 else
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
61 myeps = eps;
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
62 endif
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
63 if (isempty (tol))
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
64 tol = 1e-6;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
65 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
66 if (isempty (trace))
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
67 trace = 0;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
68 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
69
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
70 ## Split the interval into 3 abscissa, and apply a 3 point Simpson's rule
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
71 c = (a + b) / 2;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
72 fa = feval (f, a, varargin{:});
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
73 fc = feval (f, c, varargin{:});
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
74 fb = feval (f, b, varargin{:});
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
75 fcnt = 3;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
76
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
77 ## If have edge singularities, move edge point by eps*(b-a) as
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
78 ## discussed in Shampine paper used to implement quadgk
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
79 if (isinf (fa))
7795
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
80 fa = feval (f, a + myeps * (b-a), varargin{:});
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
81 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
82 if (isinf (fb))
7795
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
83 fb = feval (f, b - myeps * (b-a), varargin{:});
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
84 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
85
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
86 h = (b - a);
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
87 q = (b - a) / 6 * (fa + 4 * fc + fb);
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
88
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
89 [q, fcnt, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q, fcnt, abs (h),
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10430
diff changeset
90 tol, trace, varargin{:});
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
91
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
92 if (fcnt > 10000)
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
93 warning ("maximum iteration count reached");
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
94 elseif (isnan (q) || isinf (q))
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
95 warning ("infinite or NaN function evaluations were returned");
7795
df9519e9990c Handle single precision eps values
David Bateman <dbateman@free.fr>
parents: 7771
diff changeset
96 elseif (hmin < (b - a) * myeps)
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
97 warning ("minimum step size reached -- possibly singular integral");
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
98 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
99 endfunction
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
100
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
101 function [q, fcnt, hmin] = simpsonstp (f, a, b, c, fa, fb, fc, q0,
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10430
diff changeset
102 fcnt, hmin, tol, trace, varargin)
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
103 if (fcnt > 10000)
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
104 q = q0;
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
105 else
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
106 d = (a + c) / 2;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
107 e = (c + b) / 2;
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
108 fd = feval (f, d, varargin{:});
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
109 fe = feval (f, e, varargin{:});
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
110 fcnt += 2;
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
111 q1 = (c - a) / 6 * (fa + 4 * fd + fc);
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
112 q2 = (b - c) / 6 * (fc + 4 * fe + fb);
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
113 q = q1 + q2;
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
114
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
115 if (abs(a - c) < hmin)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
116 hmin = abs (a - c);
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
117 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
118
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
119 if (trace)
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
120 disp ([fcnt, a, b-a, q]);
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
121 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
122
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
123 ## Force at least one adpative step.
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
124 if (fcnt == 5 || abs (q - q0) > tol)
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
125 [q1, fcnt, hmin] = simpsonstp (f, a, c, d, fa, fc, fd, q1, fcnt, hmin,
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10430
diff changeset
126 tol, trace, varargin{:});
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
127 [q2, fcnt, hmin] = simpsonstp (f, c, b, e, fc, fb, fe, q2, fcnt, hmin,
10549
95c3e38098bf Untabify .m scripts
Rik <code@nomad.inbox5.com>
parents: 10430
diff changeset
128 tol, trace, varargin{:});
8507
cadc73247d65 style fixes
John W. Eaton <jwe@octave.org>
parents: 7795
diff changeset
129 q = q1 + q2;
7771
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
130 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
131 endif
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
132 endfunction
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
133
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
134 %!assert (quadv (@sin, 0, 2 * pi), 0, 1e-5)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
135 %!assert (quadv (@sin, 0, pi), 2, 1e-5)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
136
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
137 %% Handles weak singularities at the edge
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
138 %!assert (quadv (@(x) 1 ./ sqrt(x), 0, 1), 2, 1e-5)
680631e787aa Add quadv, quadgk, dblquad and triplequad functions
David Bateman <dbateman@free.fr>
parents:
diff changeset
139
11078
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
140 %% Handles vector-valued functions
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
141 %!assert (quadv (@(x) [(sin (x)), (sin (2 * x))], 0, pi), [2, 0], 1e-5)
2aec7e3b8553 Fix help string in general/quadv.m
Carlo de Falco <kingcrimson@tiscali.it>
parents: 10793
diff changeset
142