编辑:我不是在问如何解出给定变量的方程(如此所谓的重复问题),而是如何表示一个表达式以另一个表达式为基础,就像问题中指定的那样。 我认为这个“重复”的问题有一个误导性的标题。
我对SymPy非常陌生。我有一个表达式,一旦用另一个表达式表示出来,就会变得非常好看。 问题是我不知道如何“强制”使用另一个表达式表达原始表达式。
这是一个基本的例子:
import sympy as sp
sp.init_printing(use_unicode=True)
a,b,c = sp.symbols('a b c')
A = a+b+c
B = a+c
C = A.subs(a+c,B) # Expected/wanted: C = B+b
C
A.rewrite(B)
A和B可能是相当复杂的表达式。作为参考,这是我的真实情况场景:
import sympy as sp
sp.init_printing(use_unicode=True)
t, w, r = sp.symbols('t w r')
S = sp.Function('S')(t)
V = (S-w*(1+r)**t)/(((1+r)**t)-1)
V
St = -(r + 1)**t*(w - S)*sp.log(r + 1)/((r + 1)**t - 1)
St
如果我用V来表示St,我应该能够简化为
St = rS(t)+rV
但我无法在SymPy中完成。