有没有办法在 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 中自动执行此操作?我知道我可以使用 subs
或 solve
手动将变量 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}
我来自 Mathematica,您可以在其中执行以下操作以完全替代:
In[1]:=
x=y
y=z
Simplify[x]
Out[1]=
z
有没有办法在 SymPy 中自动执行此操作?我知道我可以使用 subs
或 solve
手动将变量 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}