File r35/xlog/laplace.log artifact 4d71ea7f64 part of check-in 9992369dd3



Codemist Standard Lisp 3.54 for DEC Alpha: May 23 1994
Dump file created: Mon May 23 10:39:11 1994
REDUCE 3.5, 15-Oct-93 ...
Memory allocation: 6023424 bytes

+++ About to read file tstlib.red


% Title:  Examples of Laplace Transforms.

% Author: L. Kazasov.

% Date: 24 October 1988.

order p;



% Elementary functions with argument k*x, where x is object var.

laplace(1,x,p);


 1
---
 p

laplace(c,x,p);


 c
---
 p

laplace(sin(k*x),x,p);


    k
---------
  2    2
 p  + k
 laplace(sin(x/a),x,p);


        1
-----------------
  -1   2  2
 a  *(p *a  + 1)

laplace(sin(17*x),x,p);


    17
----------
  2
 p  + 289

laplace(sinh x,x,p);


   1
--------
  2
 p  - 1

laplace(cosh(k*x),x,p);


     - p
------------
     2    2
  - p  + k

laplace(x,x,p);


 1
----
  2
 p
 laplace(x**3,x,p);


 6
----
  4
 p

off mcd;

 laplace(e**(c*x) + a**x, x, s);


                -1          -1
 - ((log(a) - s)   + (c - s)  )

laplace(e**x - e**(a*x) + x**2, x, p);


   -3          -1          -1
2*p   + (a - p)   + (p - 1)

laplace(one(k*t) + sin(a*t) - cos(b*t) - e**t, t, p);


       2    2 -1    -1     2    2 -1            -1
 - p*(b  + p )   + p   + (a  + p )  *a - (p - 1)

laplace(sqrt(x),x,p);


               - 3/2
1/2*sqrt(pi)*p
 laplace(x**(1/2),x,p);


               - 3/2
1/2*sqrt(pi)*p
 on mcd;


laplace(x**(-1/2),x,p);


 sqrt(pi)
----------
 sqrt(p)
 laplace(x**(5/2),x,p);


 15*sqrt(pi)
--------------
            3
 8*sqrt(p)*p

laplace(-1/4*x**2*c*sqrt(x), x, p);


  - 15*sqrt(pi)*c
------------------
              3
  32*sqrt(p)*p


% Elementary functions with argument k*x - tau,
%   where k>0, tau>=0, x is object var.

laplace(cos(x-a),x,p);


       p
---------------
  p*a   2
 e   *(p  + 1)

laplace(one(k*x-tau),x,p);


      1
--------------
  (p*tau)/k
 e         *p

laplace(sinh(k*x-tau),x,p);


           - k
-------------------------
  (p*tau)/k      2    2
 e         *( - p  + k )
 laplace(sinh(k*x),x,p);


     - k
------------
     2    2
  - p  + k

laplace((a*x-b)**c,x,p);


  c
 a *gamma(c + 1)
-----------------
   c  (p*b)/a
  p *e       *p

% But ...
off mcd;

 laplace((a*x-b)**2,x,p);


 -3   2  2                2
p  *(p *b  - 2*p*a*b + 2*a )
 on mcd;


laplace(sin(2*x-3),x,p);


         2
-------------------
  (3*p)/2   2
 e       *(p  + 4)

on lmon;

 laplace(sin(2*x-3),x,p);


         2
-------------------
  (3*p)/2   2
 e       *(p  + 4)
 off lmon;


off mcd;

 laplace(cosh(t-a) - sin(3*t-5), t, p);


  - p*a     2     -1       - 5/3*p   2     -1
e      *p*(p  - 1)   - 3*e        *(p  + 9)
 on mcd;



% More complicated examples - multiplication of functions.
% We use here on lmon - a new switch that forces all
% trigonometrical functions which depend on object var
% to be represented as exponents.

laplace(x*e**(a*x)*cos(k*x), x, p);


  2            2    2    4      3        2  2      2  2        3
(p  - 2*p*a + a  - k )/(p  - 4*p *a + 6*p *a  + 2*p *k  - 4*p*a

             2    4      2  2    4
    - 4*p*a*k  + a  + 2*a *k  + k )

laplace(x**(1/2)*e**(a*x), x, p);


          - sqrt(pi)
-----------------------------
 2*sqrt( - a + p)*( - p + a)

laplace(-1/4*e**(a*x)*(x-k)**(-1/2), x, p);


                a*k
    - sqrt(pi)*e
-----------------------
    p*k
 4*e   *sqrt( - a + p)

laplace(x**(5/2)*e**(a*x), x, p);


                  - 15*sqrt(pi)
-------------------------------------------------
                       3      2          2    3
 8*sqrt( - a + p)*( - p  + 3*p *a - 3*p*a  + a )

laplace((a*x-b)**c*e**(k*x)*const/2, x, p);


     1   (b*k)/a  c
  - ---*e       *a *gamma(c + 1)*const
     2
---------------------------------------
     (p*b)/a           c
    e       *( - k + p) *( - p + k)

off mcd;

 laplace(x*e**(a*x)*sin(7*x)/c*3, x, p);


     2            2      -2  -1
42*(a  - 2*a*p + p  + 49)  *c  *(p - a)
 on mcd;


laplace(x*e**(a*x)*sin(k*x-tau), x, p);


  (a*tau)/k   2                            2                2
(e         *(p *tau - 2*p*a*tau + 2*p*k + a *tau - 2*a*k + k *tau))/(

    (p*tau)/k   4      3        2  2      2  2        3          2
   e         *(p  - 4*p *a + 6*p *a  + 2*p *k  - 4*p*a  - 4*p*a*k

                   4      2  2    4
                + a  + 2*a *k  + k ))

% The next is unknown if lmon is off.
laplace(sin(k*x)*cosh(k*x), x, p);


*** Laplace for cosh(x*k)*sin(x*k) not known - try ON LMON 

laplace(cosh(x*k)*sin(x*k),x,p)

laplace(x**(1/2)*sin(k*x), x, p);


*** Laplace for sqrt(x)*sin(x*k) not known - try ON LMON 

laplace(sqrt(x)*sin(x*k),x,p)

on lmon;

  % But now is OK.
laplace(x**(1/2)*sin(a*x)*cos(a*b), x, p);


(sqrt(pi)*cos(a*b)*( - sqrt( - a*i + p)*p + sqrt(a*i + p)*p

     + sqrt( - a*i + p)*a*i + sqrt(a*i + p)*a*i))/(4*sqrt(a*i + p)

                         2    2
   *sqrt( - a*i + p)*i*(p  + a ))

laplace(sin(x)*cosh(x), x, p);


  2
 p  + 2
--------
  4
 p  + 4

laplace(sin(k*x)*cosh(k*x), x, p);


     2      2
 k*(p  + 2*k )
---------------
    4      4
   p  + 4*k

off exp;

 laplace(sin(k*x-t)*cosh(k*x-t), x, p);


      2*i*t   ((p + i*k + k)*t)/k
( - (e     *(e                   *(i*k + k + p)

                 ((p + i*k - k)*t + 2*k*t)/k
              + e                           *(i*k - k + p))

     *(i*k + k - p)*(i*k - k - p) + 

      ((p + i*k + k)*t + (p + i*k - k)*t)/k
     e                                     *(

         ( - (p - i*k + k)*t + 2*k*t)/k
        e                              *(i*k + k - p)

             - ((p - i*k - k)*t)/k
         + e                      *(i*k - k - p))*(i*k + k + p)

     *(i*k - k + p)))/(4

     ((i + 1)*k*t + (p + i*k + k)*t + (p + i*k - k)*t)/k
   *e

   *(i*k + k + p)*(i*k + k - p)*(i*k - k + p)*(i*k - k - p)*i)
 on exp;


laplace(cos(x)**2,x,p);


    2
   p  + 2
------------
     2
 p*(p  + 4)
laplace(c*cos(k*x)**2,x,p);


     2      2
 c*(p  + 2*k )
---------------
     2      2
 p*(p  + 4*k )

laplace(c*cos(2/3*x)**2, x, p);


     2    8
 c*(p  + ---)
          9
---------------
     2    16
 p*(p  + ----)
          9

laplace(5*sinh(x)*e**(a*x)*x**3, x, p);


       3      2          2        3         8      7         6  2
(120*(p  - 3*p *a + 3*p*a  + p - a  - a))/(p  - 8*p *a + 28*p *a

         6       5  3       5         4  4       4  2      4
    - 4*p  - 56*p *a  + 24*p *a + 70*p *a  - 60*p *a  + 6*p

          3  5       3  3       3         2  6       2  4       2  2
    - 56*p *a  + 80*p *a  - 24*p *a + 28*p *a  - 60*p *a  + 36*p *a

         2        7         5         3            8      6      4
    - 4*p  - 8*p*a  + 24*p*a  - 24*p*a  + 8*p*a + a  - 4*a  + 6*a

         2
    - 4*a  + 1)

off exp;

 laplace(sin(2*x-3)*cosh(7*x-5), x, p);


  2  11    2         11              11         (3*p + 1)/2
(p *e   + p  + 14*p*e   - 14*p + 53*e   + 53)/(e

                                                             5
   *(2*i + p + 7)*(2*i + p - 7)*(2*i - p + 7)*(2*i - p - 7)*e )
 on exp;


laplace(sin(a*x-b)*cosh(c*x-d), x, p);


*** Laplace for  - 1/4*one(x - a**(-1)*b)*one(x - c**(-1)*d)*i**(-1) not known 

*** Laplace for 1/4*one(x - a**(-1)*b)*one(x - c**(-1)*d)*i**(-1) not known 

             1   b*i + 2*c*x         -1                -1         -1
laplace(( - ---*e           *one( - a  *b + x)*one( - c  *d + x)*i
             4

             1   b*i + 2*d         -1                -1         -1
          - ---*e         *one( - a  *b + x)*one( - c  *d + x)*i  )/
             4

         a*i*x + c*x + d
        e               ,x,p) + laplace((

       a*i*x + 2*c*x      a*x - b        c*x - d
      e             *one(---------)*one(---------)
                             a              c

          a*i*x + 2*d      a*x - b        c*x - d
       + e           *one(---------)*one(---------))/(4
                              a              c

        b*i + c*x + d
      *e             *i),x,p)

% To solve this problem we must tell the program which one-function
% is rightmost shifted.  However, in REDUCE 3.4, this rule is still
% not sufficient.
for all x let one(x-b/a)*one(x-d/c) = one(x-b/a);


laplace(sin(a*x-b)*cosh(c*x-d), x, p);


     (2*b*c)/a  2    2*d  2      (2*b*c)/a          2*d
(a*(e         *p  + e   *p  + 2*e         *p*c - 2*e   *p*c

        (2*b*c)/a  2    (2*b*c)/a  2    2*d  2    2*d  2
     + e         *a  + e         *c  + e   *a  + e   *c ))/(2

     (p*b + a*d + b*c)/a   4      2  2      2  2    4      2  2    4
   *e                   *(p  + 2*p *a  - 2*p *c  + a  + 2*a *c  + c )

   )

for all x clear one(x-b/a)*one(x-d/c) ;


off lmon;



% Floating point arithmetic.
% laplace(3.5/c*sin(2.3*x-4.11)*e**(1.5*x), x, p);
on rounded;


laplace(3.5/c*sin(2.3*x-4.11)*e**(1.5*x), x, p);


             117.461059957
----------------------------------------
  1.78695652174*p     2
 e               *c*(p  - 3.0*p + 7.54)

laplace(x**2.156,x,p);


 gamma(3.156)
--------------
     3.156
    p

laplace(x**(-0.5),x,p);


 gamma(0.5)
------------
     0.5
    p

off rounded;

 laplace(x**(-0.5),x,p);


 sqrt(pi)
----------
 sqrt(p)
 on rounded;


laplace(x*e**(2.35*x)*cos(7.42*x), x, p);


                   2
                  p  - 4.7*p - 49.5339
---------------------------------------------------------
  4        3             2
 p  - 9.4*p  + 143.2478*p  - 569.44166*p + 3669.80312521

laplace(x*e**(2.35*x)*cos(7.42*x-74.2), x, p);


                 3                      2
(160664647206.0*p  - 1.11661929808e+12*p  + 1.14319162408e+13*p

                         10.0*p
  - 2.36681205089e+13)/(e

      4        3             2
   *(p  - 9.4*p  + 143.2478*p  - 569.44166*p + 3669.80312521))

% Higher precision works, but uses more memory.
% precision 20; laplace(x**2.156,x,p);
% laplace(x*e**(2.35*x)*cos(7.42*x-74.2), x, p);
off rounded;



% Integral from 0 to x, where x is object var.
% Syntax is intl(<expr>,<var>,0,<obj.var>).

laplace(c1/c2*intl(2*y**2,y,0,x), x,p);


 4*c1
-------
  4
 p *c2

off mcd;

 laplace(intl(e**(2*y)*y**2+sqrt(y),y,0,x),x,p);


 -1           -3                  - 3/2
p  *(2*(p - 2)   + 1/2*sqrt(pi)*p      )
 on mcd;


laplace(-2/3*intl(1/2*y*e**(a*y)*sin(k*y),y,0,x), x, p);


        2       2           4      3        2  2      2  2        3
(k*( - ---*p + ---*a))/(p*(p  - 4*p *a + 6*p *a  + 2*p *k  - 4*p*a
        3       3

                2    4      2  2    4
       - 4*p*a*k  + a  + 2*a *k  + k ))


% Use of delta function and derivatives.

laplace(-1/2*delta(x), x, p);


    1
 - ---
    2
 laplace(delta(x-tau), x, p);


   1
--------
  p*tau
 e

laplace(c*cos(k*x)*delta(x),x,p);


c

laplace(e**(a*x)*delta(x), x, p);


1

laplace(c*x**2*delta(x), x, p);


0

laplace(-1/4*x**2*delta(x-pi), x, p);


     1    2
  - ---*pi
     4
------------
    p*pi
   e

laplace(cos(2*x-3)*delta(x-pi),x,p);


 cos(3)
--------
  p*pi
 e

laplace(e**(-b*x)*delta(x-tau), x, p);


       1
----------------
  p*tau + b*tau
 e

on lmon;


laplace(cos(2*x)*delta(x),x,p);


1

laplace(c*x**2*delta(x), x, p);


0

laplace(c*x**2*delta(x-pi), x, p);


     2
 c*pi
-------
  p*pi
 e

laplace(cos(a*x-b)*delta(x-pi),x,p);


 cos(a*pi - b)
---------------
      p*pi
     e

laplace(e**(-b*x)*delta(x-tau), x, p);


       1
----------------
  p*tau + b*tau
 e

off lmon;



laplace(2/3*df(delta x,x),x,p);


 2
---*p
 3

off exp;

 laplace(e**(a*x)*df(delta x,x,5), x, p);


          5
 - (a - p)
 on exp;


laplace(df(delta(x-a),x), x, p);


  p
------
  p*a
 e

laplace(e**(k*x)*df(delta(x),x), x, p);


p - k

laplace(e**(k*x)*c*df(delta(x-tau),x,2), x, p);


  k*tau     2            2
 e     *c*(p  - 2*p*k + k )
----------------------------
            p*tau
           e

on lmon;

laplace(e**(k*x)*sin(a*x)*df(delta(x-t),x,2),x,p);


  k*t   1   2*a*i*t  2    1   2    2*a*i*t          2*a*i*t
(e   *(---*e       *p  - ---*p  - e       *p*a*i - e       *p*k
        2                 2

                         1   2*a*i*t  2    2*a*i*t
        - p*a*i + p*k - ---*e       *a  + e       *a*i*k
                         2

           1   2*a*i*t  2    1   2            1   2     p*t + a*i*t
        + ---*e       *k  + ---*a  + a*i*k - ---*k ))/(e           *i
           2                 2                2

   )
off lmon;



% But if tau is positive, Laplace transform is not defined.

laplace(e**(a*x)*delta(x+tau), x, p);


*** Laplace for delta(x + tau) not known - try ON LMON 

         a*x
laplace(e   *delta(x + tau),x,p)

laplace(2*c*df(delta(x+tau),x), x, p);


*** Laplace for df(delta(x + tau),x) not known - try ON LMON 

laplace(2*df(delta(x + tau),x)*c,x,p)

laplace(e**(k*x)*df(delta(x+tau),x,3), x, p);


*** Laplace for df(delta(x + tau),x,3) not known - try ON LMON 

         k*x
laplace(e   *df(delta(x + tau),x,3),x,p)


% Adding new let rules for Laplace operator. Note the syntax.

for all x let laplace(log(x),x) = -log(gam*il!&)/il!&;


laplace(-log(x)*a/4, x, p);


  1
 ---*log(gam*p)*a
  4
------------------
        p
 laplace(-log(x),x,p);


 log(gam*p)
------------
     p

laplace(a*log(x)*e**(k*x), x, p);


 log( - gam*k + gam*p)*a
-------------------------
         - p + k

for all x clear laplace(log(x),x);



operator f;

 for all x let
    laplace(df(f(x),x),x) = il!&*laplace(f(x),x) - sub(x=0,f(x));


for all x,n such that numberp n and fixp n let
    laplace(df(f(x),x,n),x) = il!&**n*laplace(f(x),x) -
      for i:=n-1 step -1 until 0 sum
        sub(x=0, df(f(x),x,n-1-i)) * il!&**i ;


for all x let laplace(f(x),x) = f(il!&);



laplace(1/2*a*df(-2/3*f(x)*c,x), x,p);


         1            1
a*c*( - ---*p*f(p) + ---*f(0))
         3            3

laplace(1/2*a*df(-2/3*f(x)*c,x,4), x,p);


         1   4         1   3         1   2
a*c*( - ---*p *f(p) + ---*p *f(0) + ---*p *sub(x=0,df(f(x),x))
         3             3             3

         1                             1
      + ---*p*sub(x=0,df(f(x),x,2)) + ---*sub(x=0,df(f(x),x,3)))
         3                             3

laplace(1/2*a*e**(k*x)*df(-2/3*f(x)*c,x,2), x,p);


          2                                                         2
(a*c*( - p *f( - k + p) + 2*p*f( - k + p)*k + p*f(0) - f( - k + p)*k

       - f(0)*k + sub(x=0,df(f(x),x))))/3

clear f;



% Or if the boundary conditions are known and assume that
% f(i,0)=sub(x=0,df(f(x),x,i)) the above may be overwritten as:
operator f;

 for all x let
    laplace(df(f(x),x),x) = il!&*laplace(f(x),x) - f(0,0);


for all x,n such that numberp n and fixp n let
    laplace(df(f(x),x,n),x) = il!&**n*laplace(f(x),x) -
      for i:=n-1 step -1 until 0 sum il!&**i * f(n-1-i,0);


for all x let laplace(f(x),x) = f(il!&);


let f(0,0)=0, f(1,0)=1, f(2,0)=2, f(3,0)=3;


laplace(1/2*a*df(-2/3*f(x)*c,x), x,p);


    1
 - ---*p*f(p)*a*c
    3

laplace(1/2*a*df(-2/3*f(x)*c,x,4), x,p);


         1   4         1   2    2
a*c*( - ---*p *f(p) + ---*p  + ---*p + 1)
         3             3        3

clear f(0,0), f(1,0), f(2,0), f(3,0);

 clear f;



% Very complicated examples.

on lmon;


laplace(sin(a*x-b)**2, x, p);


     (p*b)/a  2    (p*b)/a  2      (p*b)/a  2
  - e       *p  + e       *p  + 4*e       *a
----------------------------------------------
             (2*p*b)/a     2      2
          2*e         *p*(p  + 4*a )

off mcd;

 laplace(x**3*(sin x)**4*e**(5*k*x)*c/2, x,p);


                       -4                       -4
c*(3/16*(4*i + 5*k - p)   + 3/16*(4*i - 5*k + p)

                         -4                      -4                -4
    - 3/4*(2*i + 5*k - p)   - 3/4*(2*i - 5*k + p)   + 9/8*(5*k - p)

   )

a:=(sin x)**4*e**(5*k*x)*c/2;


          5*k*x       4
a := 1/2*e     *sin(x) *c
 laplace(x**3*a,x,p);


                       -4                       -4
c*(3/16*(4*i + 5*k - p)   + 3/16*(4*i - 5*k + p)

                         -4                      -4                -4
    - 3/4*(2*i + 5*k - p)   - 3/4*(2*i - 5*k + p)   + 9/8*(5*k - p)

   )
 clear a;

 on mcd;


% And so on, but is very time consuming.
% laplace(e**(k*x)*x**2*sin(a*x-b)**2, x, p);
% for all x let one(a*x-b)*one(c*x-d) = one(c*x-d);
% laplace(x*e**(-2*x)*cos(a*x-b)*sinh(c*x-d), x, p);
% for all x clear one(a*x-b)*one(c*x-d) ;
% laplace(x*e**(c*x)*sin(k*x)**3*cosh(x)**2*cos(a*x), x, p);
off lmon;



% Error messages.

laplace(sin(-x),x,p);


***** Laplace induces one( - x)  which is not allowed 

laplace(0,x,p)

on lmon;

 laplace(sin(-a*x), x, p);


***** Laplace induces one( - x*a)  which is not allowed 

laplace(0,x,p)
 off lmon;


laplace(e**(k*x**2), x, p);


*** Laplace for e**(x**2*k) not known - try ON LMON 

            2
         k*x
laplace(e    ,x,p)

laplace(sin(-a*x+b)*cos(c*x+d), x, p);


*** Laplace for  - cos(x*c + d)*sin(x*a - b) not known - try ON LMON 

laplace( - cos(x*c + d)*sin(x*a - b),x,p)

laplace(x**(-5/2),x,p);


*** Laplace for x**( - 1/2)*x**(-2) not known - try ON LMON 

          - 1/2  -2
laplace(x      *x  ,x,p)

% With int arg, can't be shifted.
laplace(intl(y*e**(a*y)*sin(k*y-tau),y,0,x), x, p);


*** Laplace for sin(x*k - tau) not allowed 

          a*x
 laplace(e   *sin(k*x - tau)*x,x,p)
------------------------------------
                 p

laplace(cosh(x**2), x, p);


*** Laplace for cosh(x**2) not known - try ON LMON 

              2
laplace(cosh(x ),x,p)

laplace(3*x/(x**2-5*x+6),x,p);


*** Laplace for (x**2 - 5*x + 6)**(-1) not known - try ON LMON 

            2           -1
laplace(3*(x  - 5*x + 6)  *x,x,p)

laplace(1/sin(x),x,p);


*** Laplace for sin(x)**(-1) not known - try ON LMON 

              -1
laplace(sin(x)  ,x,p)
   % But ...
laplace(x/sin(-3*a**2),x,p);


      - 1
--------------
  2        2
 p *sin(3*a )

% Severe errors.
% laplace(sin x,x,cos y);
% laplace(sin x,x,y+1);
% laplace(sin(x+1),x+1,p);


Comment  Examples of Inverse Laplace transformations;


symbolic(ordl!* := nil);

   % To nullify previous order declarations.

order t;



% Elementary ratio of polynomials.

invlap(1/p, p, t);


1

invlap(1/p**3, p, t);


 1   2
---*t
 2

invlap(1/(p-a), p, t);


 t*a
e
 invlap(1/(2*p-a),p,t);


 1   (t*a)/2
---*e
 2
 invlap(1/(p/2-a),p,t);


   2*t*a
2*e

invlap(e**(-k*p)/(p-a), p, t);


       1
---------------
   - t*a + a*k
 e
 invlap(b**(-k*p)/(p-a), p, t);


          1
----------------------
   - t*a + log(b)*a*k
 e

invlap(1/(p-a)**3, p, t);


 1   t*a  2
---*e   *t
 2

invlap(1/(c*p-a)**3, p, t);


  1   (t*a)/c  2
 ---*e       *t
  2
-----------------
        3
       c
 invlap(1/(p/c-a)**3, p, t);


 1   t*a*c  2  3
---*e     *t *c
 2

invlap((c*p-a)**(-1)/(c*p-a)**2, p, t);


  1   (t*a)/c  2
 ---*e       *t
  2
-----------------
        3
       c

invlap(c/((p/c-a)**2*(p-a*c)), p, t);


 1   t*a*c  2  3
---*e     *t *c
 2

invlap(1/(p*(p-a)), p, t);


  t*a
 e    - 1
----------
    a

invlap(c/((p-a)*(p-b)), p, t);


     t*a    t*b
 c*(e    - e   )
-----------------
      a - b

invlap(p/((p-a)*(p-b)), p, t);


  t*a      t*b
 e   *a - e   *b
-----------------
      a - b

off mcd;

 invlap((p+d)/(p*(p-a)), p, t);


 t*a  -1      t*a    -1
e   *a  *d + e    - a  *d

invlap((p+d)/((p-a)*(p-b)), p, t);


       -1   t*a      t*a      t*b      t*b
(a - b)  *(e   *a + e   *d - e   *b - e   *d)

invlap(1/(e**(k*p)*p*(p+1)), p, t);


     - t + k
 - e         + one(t - k)
 on mcd;


off exp;

 invlap(c/(p*(p+a)**2), p, t);


                  t*a
  - ((a*t + 1) - e   )*c
-------------------------
          t*a  2
         e   *a
 on exp;


invlap(1, p, t);


delta(t)
 invlap(c1*p/c2, p, t);


 df(delta(t),t)*c1
-------------------
        c2

invlap(p/(p-a), p, t);


            t*a
delta(t) + e   *a
 invlap(c*p**2, p, t);


df(delta(t),t,2)*c

invlap(p**2*e**(-a*p)*c, p, t);


sub(t= - (a - t),df(delta(t),t,2))*c

off mcd;

invlap(e**(-a*p)*(1/p**2-p/(p-1))+c/p, p, t);


                         t - a
t - delta( - (a - t)) - e      - a + c
on mcd;


invlap(a*p**2-2*p+1, p, x);


delta(x) + df(delta(x),x,2)*a - 2*df(delta(x),x)


% P to non-integer power in denominator - i.e. gamma-function case.

invlap(1/sqrt(p), p, t);


        1
------------------
 sqrt(t)*sqrt(pi)
 invlap(1/sqrt(p-a), p, t);


        t*a
       e
------------------
 sqrt(t)*sqrt(pi)

invlap(c/(p*sqrt(p)), p, t);


 2*sqrt(t)*c
-------------
  sqrt(pi)
 invlap(c*sqrt(p)/p**2, p, t);


 2*sqrt(t)*c
-------------
  sqrt(pi)

invlap((p-a)**(-3/2), p, t);


            t*a
 2*sqrt(t)*e
----------------
    sqrt(pi)

invlap(sqrt(p-a)*c/(p-a)**2, p, t);


            t*a
 2*sqrt(t)*e   *c
------------------
     sqrt(pi)

invlap(1/((p-a)*b*sqrt(p-a)), p, t);


            t*a
 2*sqrt(t)*e
----------------
   sqrt(pi)*b

invlap((p/(c1-3)-a)**(-3/2), p, t);


            t*a*c1
 2*sqrt(t)*e      *sqrt(c1 - 3)*(c1 - 3)
-----------------------------------------
                       3*t*a
             sqrt(pi)*e

invlap(1/((p/(c1-3)-a)*b*sqrt(p/(c1-3)-a)), p, t);


            t*a*c1
 2*sqrt(t)*e      *sqrt(c1 - 3)*(c1 - 3)
-----------------------------------------
                      3*t*a
            sqrt(pi)*e     *b

invlap((p*2-a)**(-3/2), p, t);


          (t*a)/2
 sqrt(t)*e
------------------
 sqrt(pi)*sqrt(2)

invlap(sqrt(2*p-a)*c/(p*2-a)**2, p, t);


          (t*a)/2
 sqrt(t)*e       *sqrt(2)*c
----------------------------
         2*sqrt(pi)

invlap(c/p**(7/2), p, t);


            2
 8*sqrt(t)*t *c
----------------
  15*sqrt(pi)
 invlap(p**(-7/3), p, t);


    1/3
   t   *t
------------
        7
 gamma(---)
        3

invlap(gamma(b)/p**b,p,t);


  b
 t
----
 t
 invlap(c*gamma(b)*(p-a)**(-b),p,t);


  b  t*a
 t *e   *c
-----------
     t

invlap(e**(-k*p)/sqrt(p-a), p, t);


              t*a
             e
------------------------------
           a*k
 sqrt(pi)*e   *sqrt( - k + t)


% Images that give elementary object functions.
% Use of new switches lmon, lhyp.

invlap(k/(p**2+k**2), p, t);


  1   2*t*i*k    1
 ---*e        - ---
  2              2
--------------------
       t*i*k
      e     *i

% This is made more readable by :
on ltrig;

 invlap(k/(p**2+k**2), p, t);


sin(k*t)

invlap(p/(p**2+1), p, t);


cos(t)

invlap((p**2-a**2)/(p**2+a**2)**2, p, t);


t*cos(a*t)

invlap(p/(p**2+a**2)**2, p, t);


 t*sin(a*t)
------------
    2*a

invlap((p-a)/((p-a)**2+b**2), p, t);


 t*a
e   *cos(b*t)
 off ltrig;


on lhyp;

 invlap(s/(s**2-k**2), s, t);


cosh(k*t)

invlap(e**(-tau/k*p)*p/(p**2-k**2), p, t);


cosh(k*t - tau)
 off lhyp;


% But it is not always possible to convert expt. functions, e.g.:
on lhyp;

 invlap(k/((p-a)**2-k**2), p, t);


sinh(k*t)*(cosh(a*t) + sinh(a*t))
 off lhyp;


on ltrig;

 invlap(e**(-tau/k*p)*k/(p**2+k**2), p, t);


  1   2*t*i*k    1   2*i*tau
 ---*e        - ---*e
  2              2
-----------------------------
       t*i*k + i*tau
      e             *i
 off ltrig;


% In such situations use the default switches:
invlap(k/((p-a)**2-k**2), p, t);


  t*a   1   2*t*k    1
 e   *(---*e      - ---)
        2            2
-------------------------
           t*k
          e
 % i.e. e**(a*t)*cosh(k*t).
invlap(e**(-tau/k*p)*k/(p**2+k**2), p, t);


  1   2*t*i*k    1   2*i*tau
 ---*e        - ---*e
  2              2
-----------------------------
       t*i*k + i*tau
      e             *i
 % i.e. sin(k*t-tau).

% More complicated examples.

off exp,mcd;

 invlap((p+d)/(p**2*(p-a)), p, t);


  t*a                             -2
(e   *(a + d) - (d*t + 1)*a - d)*a

invlap(e**(-tau/k*p)*c/(p*(p-a)**2), p, t);


           -1
     (t - k  *tau)*a    -1                            -1        -2
 - (e               *((k  *tau - t)*a + 1) - one(t - k  *tau))*a  *c

invlap(1/((p-a)*(p-b)*(p-c)), p, t);


 t*a   2                   -1    t*b               2       -1
e   *(a  - a*b - a*c + b*c)   - e   *(a*b - a*c - b  + b*c)

    t*c                     2 -1
 + e   *(a*b - a*c - b*c + c )

invlap((p**2+g*p+d)/(p*(p-a)**2), p, t);


 t*a       -1             t*a   -2           -2
e   *(a + a  *d + g)*t - e   *(a  *d - 1) + a  *d
 on exp,mcd;


invlap(k*c**(-b*p)/((p-a)**2+k**2), p, t);


  t*a      2*b*i*k    2*t*i*k
 e   *( - c        + e       )
-------------------------------
       t*i*k  a*b + b*i*k
    2*e     *c           *i

on ltrig;

 invlap(c/(p**2*(p**2+a**2)), p, t);


 c*(t*a - sin(a*t))
--------------------
          3
         a

invlap(1/(p**2-p+1), p, t);


    t/2      sqrt(3)*t
 2*e   *sin(-----------)
                 2
-------------------------
         sqrt(3)
 invlap(1/(p**2-p+1)**2, p, t);


    t/2              1                              sqrt(3)*t
 2*e   *( - 3*t*cos(---*sqrt(3)*t) + 2*sqrt(3)*sin(-----------))
                     2                                  2
-----------------------------------------------------------------
                                9

invlap(2*a**2/(p*(p**2+4*a**2)), p, t);


    1                1
 - ---*cos(2*a*t) + ---
    2                2

% This is (sin(a*t))**2 and you can get this by using the let rules :
for all x let sin(2*x)=2*sin x*cos x, cos(2*x)=(cos x)**2-(sin x)**2,
(cos x)**2 =1-(sin x)**2;


invlap(2*a**2/(p*(p**2+4*a**2)), p, t);


        2
sin(a*t)

for all x clear sin(2*x),cos(2*x),cos(x)**2;

  off ltrig;


on lhyp;

invlap((p**2-2*a**2)/(p*(p**2-4*a**2)),p,t);


 1
---*(cosh(2*a*t) + 1)
 2

off lhyp;

 % Analogously, the above is (cosh(a*t))**2.

% Floating arithmetic.

invlap(2.55/((0.5*p-2.0)*(p-3.3333)), p, t);


    51000   (33333*t)/10000    51000   4*t
 - -------*e                + -------*e
    6667                       6667

on rounded;


invlap(2.55/((0.5*p-2.0)*(p-3.3333)), p, t);


               4.0*t                  3.3333*t
7.64961751912*e      - 7.64961751912*e

invlap(1.5/sqrt(p-0.5), p, t);


        0.5*t
   1.5*e
-----------------
  0.5
 t   *gamma(0.5)

invlap(2.75*p**2-0.5*p+e**(-0.9*p)/p, p, t);


2.75*df(delta(t),t,2) - 0.5*df(delta(t),t) + one(t - 0.9)

invlap(1/(2.0*p-3.0)**3, p, t);


        1.5*t  2
0.0625*e     *t
 invlap(1/(2.0*p-3.0)**(3/2), p, t);


                 0.5  1.5*t
 0.353553390593*t   *e
----------------------------
         gamma(1.5)

invlap(1/(p**2-5.0*p+6), p, t);


 3.0*t    2.0*t
e      - e

off rounded;



% Adding new let rules for the invlap operator. note the syntax:

for all x let invlap(log(gam*x)/x,x) = -log(lp!&);


invlap(-1/2*log(gam*p)/p, p, t);


 log(t)
--------
   2

invlap(-e**(-a*p)*log(gam*p)/(c*p), p, t);


 log( - (a - t))
-----------------
        c

for all x clear invlap(1/x*log(gam*x),x);



% Very complicated examples and use of factorizer.

off exp,mcd;

 invlap(c**(-k*p)*(p**2+g*p+d)/(p**2*(p-a)**3), p, t);


  (t - log(c)*k)*a                                  -3
(e                *(a*g + 2*d) + d)*(log(c)*k - t)*a

        (t - log(c)*k)*a               2   -1      -2
 + 1/2*e                *(log(c)*k - t) *(a  *g + a  *d + 1)

    (t - log(c)*k)*a              -4    -3        -4
 + e                *(a*g + 3*d)*a   - a  *g - 3*a  *d

on exp,mcd;


invlap(1/(2*p**3-5*p**2+4*p-1), p, t);


 t        t/2      t
e *t + 2*e    - 2*e

on ltrig,lhyp;

 invlap(1/(p**4-a**4), p, t);


  - sin(a*t) + sinh(a*t)
-------------------------
             3
          2*a

invlap(1/((b-3)*p**4-a**4*(2+b-5)), p, t);


  - sin(a*t) + sinh(a*t)
-------------------------
         3
      2*a *(b - 3)
 off ltrig,lhyp;


% The next three examples are the same:
invlap(c/(p**3/8-9*p**2/4+27/2*p-27)**2,p,t);


 243   6*t  5
-----*e   *t *c
 40
invlap(c/(p/2-3)**6,p,t);


 8    6*t  5
----*e   *t *c
 15

off exp;

 a:=(p/2-3)**6;


             6
      (p - 6)
a := ----------
         64
 on exp;

 invlap(c/a, p, t);


 8    6*t  5
----*e   *t *c
 15
 clear a;


% The following two examples are the same :
invlap(c/(p**4+2*p**2+1)**2, p, t);


     1    2*t*i  3      1    3      1    2*t*i  2    1    2
(c*(----*e     *t *i + ----*t *i - ----*e     *t  + ----*t
     96                 96          16               16

        5    2*t*i        5          5    2*t*i    5       t*i
     - ----*e     *t*i - ----*t*i + ----*e      - ----))/(e   *i)
        32                32         32            32
 invlap(c/((p-i)**4*(p+i)**4),p,t);


     1    2*t*i  3      1    3      1    2*t*i  2    1    2
(c*(----*e     *t *i + ----*t *i - ----*e     *t  + ----*t
     96                 96          16               16

        5    2*t*i        5          5    2*t*i    5       t*i
     - ----*e     *t*i - ----*t*i + ----*e      - ----))/(e   *i)
        32                32         32            32

% The following three examples are the same :
invlap(e**(-k*p)/(2*p-3)**6, p, t);


  (3*t)/2   1   5    4        3  2      2  3      4    1   5
 e       *(---*t  - t *k + 2*t *k  - 2*t *k  + t*k  - ---*k )
            5                                          5
--------------------------------------------------------------
                              (3*k)/2
                        1536*e

invlap(e**(-k*p)/(4*p**2-12*p+9)**3, p, t);


  (3*t)/2   1   5    4        3  2      2  3      4    1   5
 e       *(---*t  - t *k + 2*t *k  - 2*t *k  + t*k  - ---*k )
            5                                          5
--------------------------------------------------------------
                              (3*k)/2
                        1536*e

invlap(e**(-k*p)/(8*p**3-36*p**2+54*p-27)**2, p, t);


  (3*t)/2   1   5    4        3  2      2  3      4    1   5
 e       *(---*t  - t *k + 2*t *k  - 2*t *k  + t*k  - ---*k )
            5                                          5
--------------------------------------------------------------
                              (3*k)/2
                        1536*e


% Error messages.

invlap(e**(a*p)/p, p, t);


*** Invlap for e**(p*a)/p not known 

        a*p  -1
invlap(e   *p  ,p,t)

invlap(c*p*sqrt(p), p, t);


*** Invlap for sqrt(p)*p not known 

invlap(sqrt(p)*c*p,p,t)

invlap(sin(p), p, t);


*** Invlap for sin(p) not known 

invlap(sin(p),p,t)

invlap(1/(a*p**3+b*p**2+c*p+d),p,t);


*** Invlap for (p**3*a + p**2*b + p*c + d)**(-1) not known 

           3      2           -1
invlap((a*p  + b*p  + c*p + d)  ,p,t)

invlap(1/(p**2-p*sin(p)+a**2),p,t);


*** Invlap for (p**2 - p*sin(p) + a**2)**(-1) not known 

         2    2            -1
invlap((a  + p  - p*sin(p))  ,p,t)

on rounded;

 invlap(1/(p**3-1), p, t);


*** Invlap for (p**3 - 1)**(-1) not known 

         3     -1
invlap((p  - 1)  ,p,t)
 off rounded;


% Severe errors:
%invlap(1/(p**2+1), p+1, sin(t) );
%invlap(p/(p+1)**2, sin(p), t);

end;
(laplace 28216 1066)


End of Lisp run after 28.23+1.74 seconds


REDUCE Historical
REDUCE Sourceforge Project | Historical SVN Repository | GitHub Mirror | SourceHut Mirror | NotABug Mirror | Chisel Mirror | Chisel RSS ]