def A1_A2slvr():
if(ωSquared > αSquared):
print("Underdamped")
ωD = math.sqrt(ωSquared - αSquared)
α = math.sqrt(αSquared)
e = math.e
t = sp.symbols('t')
A1 = sp.symbols('A1')
A2 = sp.symbols('A2')
#solving for constants A1 and A2
VofT = (e**(-α*t)*(A1*sp.cos(ωD*t) + A2*sp.sin(ωD*t)) + vFinal)
simpVofT = VofT.subs(t, 0).simplify()
print(simpVofT)
DVofT = sp.diff(VofT, t)
simpDVofT = DVofT.subs(t, 0).simplify()
print(simpDVofT)
A1 = sp.solve(simpVofT, A1)
A2 = sp.solve(simpDVofT, A2)
print(A1[0])
print(A2[0])
字符串
这是我的函数。A1[0]返回-0.1,但A2[0]返回1.33*A1。我如何让python识别A1已经求解,以便A2[0]返回数字/浮点数。
我试过使用Aidify来使它成为一个numpy表达式,它会因为A1不是一个符号表达式而生气。我试过使用subs,但它会因为我试图替换一个float而生气。任何帮助都会非常感激。
1条答案
按热度按时间1szpjjfi1#
我无法执行您的代码,但我怀疑您需要将
A1
解决方案插入simpDVofT
,然后求解A2
,如下所示:字符串