Uppgift 7.5: 33 (Heavisidefunktionen) 

restart 

`:=`(ode, `+`(`*`(m, `*`(((`@@`(D, 2))(x))(t))), `*`(c, `*`((D(x))(t))), `*`(k, `*`(x(t)))) = f) 

`+`(`*`(m, `*`(((`@@`(D, 2))(x))(t))), `*`(c, `*`((D(x))(t))), `*`(k, `*`(x(t)))) = f (3.1)
 

`:=`(ic, x(0) = 0, (D(x))(0) = 0) 

x(0) = 0, (D(x))(0) = 0 (3.2)
 

`:=`(values, {c = 0, k = 9, m = 1}) 

{m = 1, k = 9, c = 0} (3.3)
 

Funktioner som är definierade av olika uttryck kan man hantera med hjälp av heavisidefunktionen. 

`:=`(f, `*`(`+`(Heaviside(t), `-`(Heaviside(`+`(t, `-`(`*`(2, `*`(Pi))))))), `*`(sin(t)))) 

`*`(`+`(Heaviside(t), `-`(Heaviside(`+`(t, `-`(`*`(2, `*`(Pi))))))), `*`(sin(t))) (3.4)
 

plot(f, t = `+`(`-`(Pi)) .. `+`(`*`(3, `*`(Pi))), discont = true) 

Plot_2d
 

`:=`(ode1, eval(ode, values)) 

`+`(((`@@`(D, 2))(x))(t), `*`(9, `*`(x(t)))) = `*`(`+`(Heaviside(t), `-`(Heaviside(`+`(t, `-`(`*`(2, `*`(Pi))))))), `*`(sin(t))) (3.5)
 

`:=`(sol1, dsolve({ic, ode1}, x(t), method = laplace)) 

x(t) = `+`(`*`(`/`(1, 6), `*`(`+`(1, `-`(Heaviside(`+`(t, `-`(`*`(2, `*`(Pi))))))), `*`(`^`(sin(t), 3))))) (3.6)
 

`:=`(x, unapply(rhs(sol1), t)) 

proc (t) options operator, arrow; `+`(`*`(`/`(1, 6), `*`(`+`(1, `-`(Heaviside(`+`(t, `-`(`*`(2, `*`(Pi))))))), `*`(`^`(sin(t), 3))))) end proc (3.7)
 

plot([x(t), f], t = `+`(`-`(Pi)) .. `+`(`*`(3, `*`(Pi))), thickness = 2) 

Plot_2d