# Diff. yhtälö Laplace-muunnoksen avulla: # 2. kl. vakiokertoiminen (EHY) # > 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 / -------------------------------------------------------------------------------- > readlib(laplace): # V.3 (Tarvitaan vasta invlaplace-vaiheessa, V.4-versiossa luultavasti with(inttrans): -------------------------------------------------------------------------------- > 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 : Kre s. 271 # ============= # # y''(t)-y(t)=t, y(0)=1, y'(0)=1 # # > readlib(laplace): # V.3 with(inttrans): # V.4 -------------------------------------------------------------------------------- > 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.