如何在 sympy 中取矩阵的元素对数?

Bit*_*ise 7 python symbolic-math sympy

使用 sympy 矩阵或 sympy 符号的 numpy 数组,如何取元素对数?

例如,如果我有:

m=sympy.Matrix(sympy.symbols('a b c d'))
Run Code Online (Sandbox Code Playgroud)

然后np.abs(m)工作正常,但np.log(m)不起作用(“AttributeError:log”)。

有什么解决办法吗?

asm*_*rer 8

使用Matrix.applyfunc

\n\n
In [6]: M = sympy.Matrix(sympy.symbols('a b c d'))\n\nIn [7]: M.applyfunc(sympy.log)\nOut[7]:\n\xe2\x8e\xa1log(a)\xe2\x8e\xa4\n\xe2\x8e\xa2      \xe2\x8e\xa5\n\xe2\x8e\xa2log(b)\xe2\x8e\xa5\n\xe2\x8e\xa2      \xe2\x8e\xa5\n\xe2\x8e\xa2log(c)\xe2\x8e\xa5\n\xe2\x8e\xa2      \xe2\x8e\xa5\n\xe2\x8e\xa3log(d)\xe2\x8e\xa6\n
Run Code Online (Sandbox Code Playgroud)\n\n

您不能使用,np.log因为它会执行数字日志,但您需要符号版本,即sympy.log.

\n