我正在尝试使用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函数的浮点数?
答案 0 :(得分:0)
如果scipy需要浮点数,则您无能为力(用浮点数代替Symbol x除外)。如果要象征性地使用它,为什么不直接在besselj
中使用SymPy的sympy/functions/special/bessel.py
函数。该函数的文档字符串提供了使用符号参数的示例,并且也进行了区分。