Uppgift 7.3: 40 

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 (2.1)
 

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

x(0) = 0, (D(x))(0) = 0 (2.2)
 

Förutom begynnelsedata är det ibland lämpligt att samla numeriska värden pÃ¥ ekvationens parametrar i en särskild mängd. 

`:=`(values, {c = .4, f = `+`(`*`(6, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))), `*`(cos(`+`(`*`(3, `*`(t)))))))), k = 9.04, m = 1.0}) 

{m = 1.0, k = 9.04, c = .4, f = `+`(`*`(6, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))), `*`(cos(`+`(`*`(3, `*`(t))))))))} (2.3)
 

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

`+`(`*`(1.0, `*`(((`@@`(D, 2))(x))(t))), `*`(.4, `*`((D(x))(t))), `*`(9.04, `*`(x(t)))) = `+`(`*`(6, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))), `*`(cos(`+`(`*`(3, `*`(t)))))))) (2.4)
 

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

x(t) = `*`(t, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))), `*`(sin(`+`(`*`(3, `*`(t))))))) (2.5)
 

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

proc (t) options operator, arrow; `*`(t, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))), `*`(sin(`+`(`*`(3, `*`(t))))))) end proc (2.6)
 

"Amplitudfunktionen" A(t) fÃ¥r man enklast genom klippa och klistra ur uttrycket för x(t) 

`:=`(A, proc (t) options operator, arrow; `*`(t, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))))) end proc) 

proc (t) options operator, arrow; `*`(t, `*`(exp(`+`(`-`(`*`(`/`(1, 5), `*`(t))))))) end proc (2.7)
 

plot([x(t), A(t), `+`(`-`(A(t)))], t = 0 .. `+`(`*`(10, `*`(Pi))), color = [RED, BLUE, BLUE]) 

Plot_2d
 

 

Maximum av A kan antingen bestämmas pÃ¥ vanligt sätt 

`:=`(tmax, solve((D(A))(t) = 0)) 

5 (2.8)
 

A(tmax) 

`+`(`*`(5, `*`(exp(-1)))) (2.9)
 

Eller enklare sÃ¥ här 

maximize(A(t), t, location) 

`+`(`*`(5, `*`(exp(-1)))), {[{t = 5}, `+`(`*`(5, `*`(exp(-1))))]} (2.10)