0

我正在尝试求解方程组,然后将结果存储在变量变量中以进行绘图或进一步计算。

%pylab inline
from sympy import init_printing;init_printing()
from sympy import *
d,vf,a,vi,t,x,h,g,theta,ans=symbols('d vf a vi t x h g theta ans')
equations=[Eq(sin(theta),(0.5*g*t**2+h)/(vi*t)),Eq(cos(theta),x/(vi*t))]
ans=solve(equations,[h,t],dict=True)

但是 ans 只是一个条目,我不知道如何单独获得 h 的方程和 t 的方程。然而结果是正确的

感谢所有帮助(我正在使用 Ipython)

4

1 回答 1

0
In [14]: ans
Out[14]:
⎡⎧              2                          ⎫⎤
⎢⎪       0.5⋅g⋅x                      x    ⎪⎥
⎢⎨h: - ─────────── + x⋅tan(θ), t: ─────────⎬⎥
⎢⎪       2    2                   vi⋅cos(θ)⎪⎥
⎣⎩     vi ⋅cos (θ)                         ⎭⎦

所以你可以在这里看到,答案是一个包含字典的列表。要获取列表的第一个(也是唯一一个)项目,请使用ans[0]. 要获取字典的元素,请[key]与字典键一起使用,在本例中是您求解的符号。所以要得到答案,你会做

In [16]: ans[0][h]
Out[16]:
           2
    0.5⋅g⋅x
- ─────────── + x⋅tan(θ)
    2    2
  vi ⋅cos (θ)

In [17]: ans[0][t]
Out[17]:
    x
─────────
vi⋅cos(θ)
于 2013-07-23T18:19:07.003 回答