我正在写一些矢量方程,用于求解平面矢量环闭合方程(四个矢量在机构中形成一个环)。
R1=np.array([L1smp.cos(θ 1),L1smp.sin(θ 1)])R2=np.array([L2smp.cos(θ 2),L2smp.sin(θ 2)])R3=np.array([L3smp.cos(θ 3),L3smp.sin(θ 3)])R4=np.array([L4smp.cos(θ 4),L4smp.sin(θ 4)])
i_comps=Eq(R1[0]+R4[0]-R2[0]-R3[0],0)
j_comps=Eq(R1[1]+R4[1]-R2[1]-R3[1],0)
pos_sol=smp.solve([i_comps,j_comps],[theta3,theta4],dict=True)
位置分析很简单。然后我使用Sympy对上述方程进行微分,使用链式法则。这将使我能够求解每个链接的角速度和加速度。这是可行的,但现在我已经耦合了具有导数项的符号方程。下面显示了其中一个方程的示例:
第一个月
我想做的是在符号方程中指定已知值,然后求解$\frac{d\theta}{dt}$
。例如,我想插入$\theta1、L1和\frac{d\L1}{dt}$的数值来求解角速度项。我考虑使用Lambdify,但不清楚如何指定导数项,例如$\frac{dL 1}{dT}=0$。
1条答案
按热度按时间6yjfywim1#
SymPy将处理“插入”,如果你只是给予它一个具有已知信息的方程列表,例如,如果你想用
a=2
求解a + b*x
,并且a
和b
的总和等于x
的负值:字符串
在你的例子中,你可以只使用
subs
来替换已知值,然后也求解未知值。型
替换符号或导数是相同的:
型