7.96 bug in Laplace, Maple V.5 (18.2.00)

7.96.1 Ray Vickson
7.96.2 SCHADE, GEORGE (21.2.00)
7.96.3 Harald Pleym (21.2.00)
7.96.4 jmw (21.2.00)
7.96.5 Willard, Daniel Dr (21.2.00)
7.96.6 Wilhelm Werner (24.2.00)

7.96.1 Ray Vickson

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)

7.96.2 SCHADE, GEORGE (21.2.00)

I tried this on windows 95, release 4, and it worked fine.

7.96.3 Harald Pleym (21.2.00)

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)
 

7.96.4 jmw (21.2.00)

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)
 

7.96.5 Willard, Daniel Dr (21.2.00)

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.

7.96.6 Wilhelm Werner (24.2.00)

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).