我正在使用二阶拉格朗日方程解决多自由度动力学问题。我使用 sympy 来获取运动方程。现在计算导数后这些方程变得相当长,尽管 sympy 简化似乎无法进一步简化它。我的问题实际上是如何从这里解决这个由三个二阶颂歌组成的系统。我不知道如何转换这些方程,以便它们可以与 scipy.odeint() 一起使用。我想到了替换,但有很多符号。所以我正在寻找 phi0、phi1 和 phi2 以及它们的一阶和二阶导数。初始条件为所有 phi[0]=0 且所有 dphi[0]=0。
我希望有一种方法可以解决这个问题,而不必从头开始。提前致谢。
def derivativeLagranga(Lagrange,n):
"""left side of lagrange"""
f0 = sym.Function('f0')(t)
f1 = sym.Function('f1')(t)
f2 = sym.Function('f2')(t)
f3 = sym.Function('f3')(t)
L_i = []
L_it = []
L_j =[]
L_leva = []
x=0
y=0
for i in range(0,n-1):
x = Lagrange.diff(kot[i].diff(t))
L_i.append(x)
for i in range(0,n-1):
x = L_i[i].diff(t)
x = x.replace(sym.sin(kot[i]),kot[i])
L_it.append(x)
for i in range(0,n-1):
x = L.diff(kot[i])
L_j.append(x)
for i in range(0,n-1):
x = L_it[i]+L_j[i]
L_leva.append(x)
return L_left
left_side_L = derivativeLagranga(Lagrange, n)
f0 = sym.simplify(left_side_L[0].subs(values))
f1 = leva_stran_L[1].subs(values)
f2 = leva_stran_L[2].subs(values)
f0
所以我的 f0 是方程之一,我无法复制输出,所以我将发布一张图片。
54.51345(−(
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)