我正在尝试评估符号数组的指数。基本上我有一个数值数组 a
和一个符号变量 x
定义。然后我定义了一个函数 f
它等于两者相乘的指数,并尝试评估给定值 x
的结果:
import numpy as np
from sympy import *
#Declaration of variables
a=np.array([1, 2])
x = Symbol('x')
f=exp(a*x)
#Function evaluation
f=f.subs(x, 1)
print(f.evalf())
但是会发生以下错误:
AttributeError: 'ImmutableDenseNDimArray' object has no attribute '_eval_evalf'
看来
exp()
函数未为此类操作做好准备。我知道,至少,可以使用
np.exp()
来计算数值数组的指数。 .对于符号数组,我应该如何做?
最佳答案
如前所述,您不应该混合使用 NumPy 和 同情 .而不是 array
您可以使用 Matrix
从 sympy 然后使用 applyfunc
对于分量指数:
import sympy as sp
# Declaration of variables
x = sp.Symbol('x')
a = sp.Matrix([1, 2])
f = (a * x).applyfunc(sp.exp)
# Function evaluation
f = f.subs(x, 1)
print(f.evalf())
运行此代码我没有收到任何错误。这是我的输出:Matrix([[2.71828182845905], [7.38905609893065]])
关于python - Python中符号数组的指数评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675468/