РЕДАКТИРОВАТЬ: я не спрашиваю, как решить уравнение с точки зрения данной переменной (как в этом предполагаемый дублированный вопрос), но как представить выражение в терминах другого, как указано в вопросе. Я считаю, что это «дублированный» вопрос с вводящим в заблуждение заголовком.
Я новичок в 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
Как только я напишу St в терминах V, я смогу упростить, чтобы получить просто
St = rS(t)+rV
Но я не могу сделать это в SymPy.