【发布时间】:2017-05-31 10:09:35
【问题描述】:
编辑:我不是在问如何根据给定变量求解方程(如supposed duplicated question),而是如何根据问题中指定的另一个表达式来表示表达式。 我认为标题具有误导性是“重复”问题。
我对 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 中做到这一点。
【问题讨论】:
标签: sympy polynomials