Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: MapleV: using evalhf with infinite integral.
Replies: 2   Last Post: Dec 6, 1996 1:53 AM

 Messages: [ Previous | Next ]
 Robert Israel Posts: 11,902 Registered: 12/6/04
Re: MapleV: using evalhf with infinite integral.
Posted: Dec 6, 1996 1:53 AM

In article <m0viahuy1k.fsf@flash.bfr.co.il>,
David Klein <dklein@math.huji.ac.il> wrote:
>I would like to integrate a function like

>f:=exp(-x^2);

>evalhf(f,x=-infinity..infinity));

>but with a more time consuming integrand, f.

>evalf instead of evalhf works, but I am trying to be faster.

>I have tried also sorts of methods such as using "Int" instead of
>"int", using g:=unapply(f,x) or g:=unapply(evalhf(f,x)) or
>g:=evalhf(unapply(f,x)) or g:=x -> evalhf(f). I also tried the above
>with combinations of quoting the integrand 'g(x)' or even ''g(x)'' etc...

>Can anyone tell me how to use evalhf as efficiently as possible in
>these cases?

As far as I know, this is impossible. In fact, on p. 245 of the Maple
V Programming Guide (Release 4) it says "you cannot evaluate an integral
using hardware floating-point arithmetic". The problem is that "evalhf"
is for arithmetic calculations only, without anything symbolic (including
intermediate results). And integration, even numerical integration, does a
lot of symbolic processing. Especially in a case like yours involving an
improper integral, which Maple tries to transform to a proper integral,
e.g. by change of variable. For some insight into what it does, try
> infolevel[evalf]:= 5;
> evalf(Int(...));

In order to use "evalhf", you'll have to come up with a purely numerical
procedure for evaluating your integral, one where all intermediate steps
evaluate to floats, and there are no symbolic structures except arrays.

Robert Israel israel@math.ubc.ca
Department of Mathematics (604) 822-3629
University of British Columbia fax 822-6074