Maple code for a rectangular pulse 

m: mass, r: damping constant, k: spring constant
a: constant in the impulse function 

eps: width of a rectangular pulse , n: number of frames 

> impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...
impulse_func := proc (m, r, k, a, eps, n) local h, dlign1, dlign2, sol1, sol2, plt1, plt2, pltd, plt, txt, txtd, kloss, e; with(plots); h := proc (eps) options operator, arrow; `/`(`*`(`+`(H(`+`(t, `-...