0
讓我們用sympy
找到線性系統的外力不能代替積分常數到響應的積分
from sympy import *
t, w, beta = symbols('t omega beta', positive=1)
x0, v0 = symbols('x0 v0')
x = symbols('x', cls=Function)
homogeneous = diff(x(t), t, 2)/w**2+x(t)
force = sin(beta*w*t)
disp = dsolve(homogeneous-force, x(t)).rhs
display(disp)
constants = solve((disp.subs(t,0)-x0, disp.diff(t).subs(t,0)-v0))
display(constants)
獲得
sin(beta*omega*t)
C1*sin(omega*t) + C2*cos(omega*t) - -----------------
2
beta - 1
2
beta *v0 + beta*omega - v0
[{C1: --------------------------, C2: x0}]
/ 2 \
omega*\beta - 1/
現在,來完成我的解決方案的響應,我試圖用這些常數的積分代入一般積分+積分
display(disp.subs(constants))
,給我
sin(beta*omega*t)
C2*sin(omega*t) + C2*cos(omega*t) - -----------------
2
beta - 1
我在哪裏犯過錯誤?
什麼是你期望的輸出? – jmoon
@jmoon - 在第二塊代碼中,我希望看到代替「C1」和「C2」的符號值,這些值是我在第一塊代碼塊的末尾計算和顯示的,因爲我已經讓sympy去操作這樣的替換。 – gboffi