sympy.subs - неправильная замена - PullRequest
1 голос
/ 27 апреля 2020

У меня есть это уравнение:

(1 - tau2)**3 + (tau2-tau1)**5

И я хочу заменить (1-tau2) на (1-tau3). Однако я получаю неправильный результат.

Это мой код:

tau1,tau2,tau3= symbols('tau1,tau2,tau3')

exp= (1-tau2)**3+(tau2-tau1)**5
res=exp.subs((1-tau2),(1-tau3))

print('exp:',exp)
print('res:',res)

И результат:

exp= (1 - tau2)**3 + (-tau1 + tau2)**5
res= (1 - tau3)**3 + (-tau1 + tau3)**5

Но это должно быть:

res= (1 - tau3)**3 + (-tau1 + tau2)**5

Как можно Я это решаю?

1 Ответ

1 голос
/ 27 апреля 2020

Иногда вам нужна умная замена - в этом случае признание того, что ваша замена эквивалентна замене tau2 на tau3 - и иногда вам нужна точная замена. В последнем случае используйте xreplace:

>>> from sympy.abc import x, y
>>> (1-x)**3+(x-y)**5
(1 - x)**3 + (x - y)**5
>>> _.xreplace({1-x: z})
z**3 + (x - y)**5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...