После подстановки функций в sympy, оценка не может сделать прямые производные - PullRequest
1 голос
/ 16 марта 2020

В последний день я беспокоился об этой проблеме. Сначала я задал вопрос, но после комментария о необходимости упрощенного примера я удалил вопрос и, наконец, нашел «источник» проблемы.

Я не могу оценить выражения ПОСЛЕ замены функций на выражения: Следующий пример покажет вам, что я имею в виду:

xx     = sy.Symbol('x',real=True)
yy     = sy.Symbol('y',real=True)
FuncT  = sy.Function('F')
TestExp= sy.cos(sy.diff(FuncT(xx,yy),xx)+xx+yy*xx+yy)
print(TestExp.subs({FuncT(xx,yy):xx})).subs({xx:1,yy:0.1})

что приводит

enter image description here

Как это может заменить dx / dx = 1?

1 Ответ

4 голосов
/ 17 марта 2020

Просто doit:

>>> TestExp.subs({FuncT(xx,yy):xx}).subs({xx:1,yy:0.1}).doit()
-0.588501117255346

Как узнать, как использовать doit?

Когда я печатаю (не pprint) выражения, которые вижу

cos(Subs(Derivative(x, x), x, 1) + 1.2)

Я не хочу Subs там, но я не знаю много о Subs, поэтому я прошу помощи и читаю следующее:

>>> help(Subs)
...
There's no automatic expansion - use the method .doit() to effect all
possible substitutions of the object and also of objects inside the
expression.
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...