| Bill Allombert on Mon, 08 Nov 2010 11:00:37 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Integration |
On Mon, Oct 11, 2010 at 02:54:48PM +0200, Sumaia Saad-Eddin wrote:
> Dear all,
>
> here is a simple script I use:
> ----------------------------------------------------
{calF3b(n, y, borne=0)=
local(res);
if(borne == 0,
res = intnum(u = y, [[1], I],
(n*(n-1)*log(u/y)^(n-2)
-n*log(u/y)^(n-1)
+2*(-n*log(u/y)^(n-1)+log(u/y)^n))*(-cos(u))/u^3
)*2/factorial(n),
res = intnum(u = y, borne,
(n*(n-1)*log(u/y)^(n-2)
-n*log(u/y)^(n-1)
+2*(-n*log(u/y)^(n-1)+log(u/y)^n))*(-cos(u))/u^3
)*2/factorial(n));
return(res);
}
> Can anyone explain me why these results are so
> different, or give me a pointer to some litterature?
intnum uses the double-exponential integration method that has strong regularity requirement,
but is often much faster than intnumromb.
The correct integration formula to use is:
intnum(u = y,borne, expr ) = intnum(u = y,[[1],I], expr ) - intnum(borne, [[1],I], expr )
This avoid the exponential growth of the cosinus when the imaginary part get large
(after the change of variable).
I suggest reading Pascal Molin Ph.D. thesis (Bordeaux, 2010) for more detail.
Cheers,
Bill