[Up]
http://www.math.hut.fi/teaching/v/3/L/lapdy.html

Diff. yhtälö Maplen Laplace-muunnoksella

Tässä on tehty ilman alias-määrittelyjä, oikeilla Laplace-nimillä. HAM-kirjassa on alias-suositukset, mutta hyvä ehkä nähdä alkuperäisillä nimillä tehtynä kerran myös.

2. kl. vakiokertoiminen (EHY)


> with(inttrans):
>
> dy:=diff(y(t),t,t)+a*diff(y(t),t)+b*y(t)=r(t);

                     /   2      \
                     |  d       |     /  d      \
               dy := |----- y(t)| + a |---- y(t)| + b y(t) = r(t)
                     |   2      |     \ dt      /
                     \ dt       /

> ldy:=laplace(dy,t,s);

       ldy := (laplace(y(t), t, s) s - y(0)) s - D(y)(0)

            + a (laplace(y(t), t, s) s - y(0)) + b laplace(y(t), t, s) =

           laplace(r(t), t, s)

> Y:=solve(ldy,laplace(y(t),t,s));

                   - s y(0) - D(y)(0) - a y(0) - laplace(r(t), t, s)
            Y := - -------------------------------------------------
                                       2
                                      s  + a s + b

> Y:=subs(laplace(r(t),t,s)=R,Y);

                            - s y(0) - D(y)(0) - a y(0) - R
                     Y := - -------------------------------
                                       2
                                      s  + a s + b

Tässä täytyy tuntea r ja siten R=Lr ja sitten kertoimet a ja b, jotta osataan muodostaa käänteismuunnos y(t), joka siis on dy:n (AA-tehtävän) ratkaisu.

Konkreettinen esimerkki, jossa kaikki on annettu:

Esim5
   y''(t)-y(t)=t, y(0)=1, y'(0)=1
Maple-istunto:
>  with(inttrans): 
> dy:=diff(y(t),t,t)-y(t)=t;

                                /   2      \
                                |  d       |
                          dy := |----- y(t)| - y(t) = t
                                |   2      |
                                \ dt       /

> Ldy:=laplace(dy,t,s);

                                                                             1
 Ldy := (laplace(y(t), t, s) s - y(0)) s - D(y)(0) - laplace(y(t), t, s) = ----
                                                                             2
                                                                            s

> Y:=solve(Ldy,laplace(y(t),t,s));

                                                      1
                               - s y(0) - D(y)(0) - ----
                                                      2
                                                     s
                        Y := - -------------------------
                                          2
                                         s  - 1

> Y:=simplify(subs({y(0)=1,D(y)(0)=1},Y));

                                      3    2
                                     s  + s  + 1
                                Y := -----------
                                      2   2
                                     s  (s  - 1)

> yy:=invlaplace(Y,s,t);  ### Vrt (*)  alempana

                      yy := - t + 3/2 exp(t) - 1/2 exp(- t)
--------------------------------------------------------------------------------
# Tarkistus:
# 
> subs(y(t)=yy,dy);

  /   2                                   \
  |  d                                    |
  |----- (- t + 3/2 exp(t) - 1/2 exp(- t))| + t - 3/2 exp(t) + 1/2 exp(- t) = t
  |   2                                   |
  \ dt                                    /
--------------------------------------------------------------------------------
> value(%);

                                      t = t
--------------------------------------------------------------------------------
> eval(%%);

                                      t = t
--------------------------------------------------------------------------------
# Eli kumpi tahansa, value tai eval toimii.
# 
> y0:=eval(subs(t=0,yy));yp0:=eval(subs(t=0,diff(yy,t)));

                                     y0 := 1

                                    yp0 := 1
--------------------------------------------------------------------------------
# Myös alkuehdot toteutuvat
# 
----------------------------------------------------
(*)
Jos edettäisiin käsinlaskutyyliin, tehtäisiin:

> convert(Y,parfrac,s);


                     1        3           1
                 - ---- + --------- - ---------
                     2    2 (s - 1)   2 (s + 1)
                    s

Tästä jo käänteismuunnos onkin heti luettavissa.