help-octave
[Top][All Lists]

## Using quad() for multidimensional integration

 From: Francesco Potorti Subject: Using quad() for multidimensional integration Date: Thu, 17 Aug 1995 18:47 +0100 (MET)

   There do seem to be problems here. I tried a simpler task:

\int_0^1 \int_0^x y dy dx   [Ans = 1/6].

First the function definitions (note the trace prints):--
-----------------------------------------------------------------
#script file
1;

function v=V(y)
fprintf(stdout,"V(%4.2f)\n",y);               ## printout on entry
v=y;
endfunction

function u = U(x)
fprintf(stdout,"U(%4.2f)\n",x);               ## printout on entry
fprintf(stdout,"U(0,%4.2f) = %4.2f\n",x,u);   ## printout on exit
endfunction
-----------------------------------------------------------------
U(0.50)          <-----  "U" is entered here for first time
V(0.25)          <-----  "V" here for first time
V(0.01)
V(0.49)
....      [all "V"] 21 V's in all
V(0.39)
V(0.18)
V(0.32)
U(0,0.50) = 0.12  <----- first "U" completes here
V(0.01)
V(0.49)
V(0.03)
....      [all "V"] 86 V's in all
V(0.00)
V(0.00)
V(0.00)
V(0.00)
ans = 0           <----- end of computation

The same on alpha gives 0.5, with approximately the same outputs.  The
problem here is that clearly quad forgets about 'U' once it calls 'V',
that is supposedly the effect of quad using some global variable as
Dutt said (I have not the sources here).  It also seems strange, as
Ted pointed out, that the first pass to get the 0.12 needs so many
iterations.
--
Francesco Potorti     | address@hidden (Internet)
researcher at          | 39369::pot (DECnet)
CNUCE-CNR, Pisa, Italy | +39-50-593203 (voice) 904052 (fax)