计算 Python 中符号数组的指数

Evaluation of the exponential of a symbolic array in Python

我正在尝试计算符号数组的指数。基本上我定义了一个数值数组 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() 计算数值数组的指数。如果是符号数组,我应该怎么做?

如前所述,您不应混合使用 numpysympy。您可以使用 sympy 中的 Matrix 而不是 array,然后将 applyfunc 用于 component-wise 指数:

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]])