有没有办法在 sympy 中递归自动替换?

Is there a way to substitute recursively and automatically in sympy?

我来自 Mathematica,您可以在其中执行以下操作以完全替代:

In[1]:=

x=y
y=z
Simplify[x]

Out[1]=

z

有没有办法在 SymPy 中自动执行此操作?我知道我可以使用 subssolve 手动将变量 1 个替换为 1 个,或者像这样做一些简陋的事情:

In[1]:

y=z
x=y
x

Out[1]:

z

但是有没有办法让它自动获得对 1 个变量求解的最大扩展和替换表达式?

有一个概念验证代码 here 可以处理多个方程。

from sympy.abc import x, y, z
eqs = [Eq(x,y),Eq(y,z)]
focus(eqs, z)  # function defined in link
{z: x}