Как использовать expand_log на матричных элементах? - PullRequest
1 голос
/ 13 марта 2019

Я хочу упростить выражение sympy, где аргументы являются матричными элементами, используя функцию expand_log.В качестве простого примера давайте рассмотрим выражение log (exp (x)), которое должно быть упрощено до x.

Как и , как объясняется в учебнике , упрощения будут применяться только в том случае, если требуются предположениядержать, т.е. в этом случае х должен быть действительным.

Если у меня есть скалярное количество, я могу указать это предположение при создании переменной, как показано здесь .

Однако я использую символ матрицы, который не позволяет указыватьпредположения при создании.Вместо этого я попытался использовать новый модуль предположений:

import sympy as sym
from sympy.assumptions import assuming, Q

x = sym.MatrixSymbol('x',1,2)
expr = sym.log(sym.exp(x[0,0]))
with assuming(Q.real(x[0,0])):
    display(sym.expand_log(expr))

Вывод по-прежнему log(exp(x[0, 0])).Поэтому мне кажется, что функция expand_log не знает о предположении, которое я указываю в предполагаемом диспетчере контекста.

Установка force=True дает желаемый результат, но я хочу вообще не проверять предположения.

У кого-нибудь есть идеи, как обойти эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...