如何在矩阵元素上使用expand_log?

时间:2019-03-13 15:40:49

标签: python sympy

我想使用函数expand_log简化参数为矩阵元素的sympy表达式。 作为一个简单的示例,让我们看一下表达式log(exp(x)),该表达式应简化为x。

正如the tutorial所解释的那样,只有在满足必要的假设的情况下,才会应用简化,即在这种情况下,x必须是实数。

如果我有一个标量,则可以在创建变量时指定此假设,如here所示。

但是,我使用的矩阵符号不允许在创建时指定假设。相反,我尝试使用新的假设模块:

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会产生理想的结果,但我想避免完全不检查假设。

有人知道如何解决这个问题吗?

0 个答案:

没有答案