# [Maxima] The new limit code and integrate()

Rupert Swarbrick rswarbrick at gmail.com
Thu Sep 17 04:12:48 CDT 2009

```Dieter Kaiser <drdieterkaiser at web.de> writes:
> Hello Rupert,
>
> do you have a more complete example what you would like to do?
>
> Dieter Kaiser

Hi,

Sorry for being vague. I'm attaching the code I was using at the bottom
of the email (yes, I know it's ugly).

The idea is that you're trying to evaluate a ratio of the form

integrate( topnop * p0 * s^(%i*x), s, 0, 1/ae )
/
integrate( bottom * s^(%i*x), s, 0, 1/ae )

You can do some asymptotic stuff (I hope) to realise that you can get
the answer in a power series of 1/x^n using just the values of the
integrands near 1/ae (since the oscillations cancel faster everywhere
else).

To evaluate this, you can't just do a Taylor series around 1/ae, since
Re*τ and Ri*τ aren't integers. So the idea was to expand both integrals
up to 1/ae - eps and then take the limit of the quotient as eps -> 0.

The zeroth order and the (disappearing) first order terms agree with
simulation. I haven't worked out how to get the next order - the limit's
too complicated for maxima to do without help I think. But anyway,
that's kind of irrelevant: what I would like to be able to do is say "p0
is a continuous function of s, guys, so please don't put noun forms in
your values for p00 etc."

Does that make sense? Sorry for not having a more minimal example to
hand.

Rupert

p0: τ*r0/( (1-ae*s)^(Re*τ)*(1-ai*s)^(Ri*τ) ) *
'integrate(
(1-ae*x)^(Re*τ)*(1-ai*x)^(Ri*τ)*(exp(x*vth)/(1-ae*x)-exp(x*vre)),
x, s, 1/ae )\$

assume( Re*τ > 0 )\$
declare( [Re, τ, Ri, τ], noninteger )\$

p00: limit(p0,s,1/ae)\$
p01: limit(diff(p0,s),s,1/ae,minus)\$
p02: limit(diff(p0,s,2),s,1/ae,minus)\$

topnop: Re1*ae*(1-ae*s)^(Re*τ-1)*(1-ai*s)^(Ri*τ)\$
bottom: (1-ae*s)^(Re*τ)*(1-ai*s)^(Ri*τ)*1/s*
( exp(s*vth)/(1-ae*s)-exp(s*vre) )\$

nearb(expr) := at(expr, s=exp(-ε)/ae)\$

top0: nearb(topnop)*p00\$
bot0: nearb(bottom)\$

r10 = limit(top0/bot0, ε, 0, plus);

top1: nearb(diff(topnop,s))*p00 + p01*nearb(topnop)\$
bot1: nearb(diff(bottom,s))\$

ixr: 1/(%i*x)\$

r11: limit( (ixr*top0 + ixr^2*top1)/(ixr*bot0 + ixr^2*bot1), ε, 0, plus );
'r11 = ratsimp(r11);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 315 bytes
Desc: not available
Url : http://www.math.utexas.edu/pipermail/maxima/attachments/20090917/a3fe96d5/attachment.pgp
```