The following behavior is almost unbelievable:
> restart: > with(inttrans): > f1:=(s+1)/(s*(s^2+6*s+9)); s + 1 f1 := ---------------- 2 s (s + 6 s + 9) > f2:=1/(s*(s^2+6*s+9)); 1 f2 := ---------------- 2 s (s + 6 s + 9) > invlaplace(f1,s,t); 1/9 + 2/3 t exp(-3 t) - 1/9 exp(-3 t) > invlaplace(f2,s,t); Error, (in tablelook) division by zero
Try as I might, I cannot trace the source of the problem. How can something so simple fail so badly?
It is corrected with Maple 6. (U. Klein)
I tried this on windows 95, release 4, and it worked fine.
I don’t know why, but I know that Maple6 (version 16401) produce the same unbelievable error.
A work around is
> invlaplace(convert(f2,parfrac,s),s,t); 1/9-1/3*t*exp(-3*t)-1/9*exp(-3*t)
Yet when f2 is expressed differently, things seem to work:
with(inttrans): f2:=1/(s*(s+3)^2); 1 f2 := ---------- 2 s (s + 3) > invlaplace(f2,s,t); 1/9 - 1/9 (1 + 3 t) exp(-3 t)
Just for kicks, I tried f3:=1/((s+a)*(s^2+6*s+9))
and took (limit(invlaplace(f3,s,t),a=0))
.
That works.
Maybe the following gives a hint to what is happening:
>with(inttrans): f2:=1/(s*(s^2+a*s+b));invlaplace(f2,s,t); exp((- 1/2 a + 1/2 %1) t) exp((- 1/2 a - 1/2 %1) t) ------------------------- - ------------------------- - 1/2 a + 1/2 %1 - 1/2 a - 1/2 %1 1/b + ----------------------------------------------------- 2 sqrt(a - 4 b) 2 %1 := sqrt(a - 4 b)
It seems to me that Maple looks into a table containing the above formula and then
substitutes a=6 and b=9
(instead of using something like l'Hospitals
rule in this
case).