TypeError:无法将表达式转换为使用Sympy浮动

时间:2019-07-26 15:19:11

标签: python floating-point typeerror sympy

我正在尝试使用sympy,但其Symbol Objects遇到了麻烦。

import sympy as sy
from scipy import special as sp

def derivativeBMax2(s):    
x = sy.symbols('x', real=True)
B0 = 1 
H = 1
alpha = 2.4048 
B_azimuthal = B0 * H * sp.jv(1, alpha * sy.sqrt((float(x) ** 2) + (s ** 2)))

sp.jv来自其文档:https://docs.scipy.org/doc/scipy/reference/generated/scipy.special.jv.html

第二个参数需要一个浮点数,当我将x转换为浮点数时,它会引发

TypeError: can't convert expression to float 

我想最终用sympy的diff()区分B_azimuthal

我怎样才能使x既是符号又是scipy的jv函数的浮点数?

1 个答案:

答案 0 :(得分:0)

如果scipy需要浮点数,则您无能为力(用浮点数代替Symbol x除外)。如果要象征性地使用它,为什么不直接在besselj中使用SymPy的sympy/functions/special/bessel.py函数。该函数的文档字符串提供了使用符号参数的示例,并且也进行了区分。