Hi~ I'm studying about structural dynamics. I want to make a code about Duhamel Integration which is kind of Convoution Integration.
If the initial conditions are y(0)=0 and y'(0)=0, Duhamel Integration is like this. enter image description here
Using Ti Nspire I solved this problem with my Ti Npire softwere. The result is like that. enter image description here
Its response(y) of t=1 is -0.006238
Using python(sympy) I tried to solve this problem using by Python(Jupyter Notebook). But I couldn't solve the problem.
I wrote the code like this.
from sympy import *
t, tau=symbols('t, tau')
m=6938.78
k=379259
wn=sqrt(k/m)
wd=wn*sqrt(1-0.05**2)
eq1=(900*sin(5.3*tau))
eq2=exp(-0.05*wn*(t-tau))
eq3=sin(wd*(t-tau))
y0=1/(m*wd)*integrate(eq1*eq2*eq3,(tau,0,t))
y0
But I couldn't get the result. enter image description here
Is there other way to solve this problem?
Use the unevaluated Integral and then substitute in a value for t
and use the doit
method:
...
>>> y0=1/(m*wd)*Integral(eq1*eq2*eq3,(tau,0,t))
>>> y0.subs(t,1).doit()
-0.00623772329557205
To see the symbolic result before substituting t=1
you need to help SymPy a little by expanding your integrand; I also evaluate floats to show only 3 digits from sake of simplicity:
>>> integrate((eq1*eq2*eq3).expand(),(tau,0,t)).simplify().replace(
... lambda x:x.is_Float, lambda x: x.n(3))
245.0*sin(5.3*t) - 36.1*cos(5.3*t) - 174.0*exp(-0.37*t)*sin(7.38*t) + 36.1*exp(-0.37*t)*cos(7.38*t)