Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python类型错误:ufunc';k0&x27;使用Scipy.special.k0_Python_Scipy_Typeerror_Bessel Functions - Fatal编程技术网

Python类型错误:ufunc';k0&x27;使用Scipy.special.k0

Python类型错误:ufunc';k0&x27;使用Scipy.special.k0,python,scipy,typeerror,bessel-functions,Python,Scipy,Typeerror,Bessel Functions,希望能从我的代码中得到一些指导,我是python新手,在代码中修改贝塞尔函数k0时遇到了困难。实际代码分为两部分 1) 第一部分使用sympy求解t,并返回t=0时x0的值 2) 第二部分使用该值x0来求解不同x值的t 正是在第二步,我遇到了一些困难,scipy.special.k0函数似乎不适用于所述的已解x0值,我不知道为什么 from __future__ import division import sympy as sy from sympy import b

希望能从我的代码中得到一些指导,我是python新手,在代码中修改贝塞尔函数k0时遇到了困难。实际代码分为两部分

1) 第一部分使用sympy求解t,并返回t=0时x0的值

2) 第二部分使用该值x0来求解不同x值的t

正是在第二步,我遇到了一些困难,scipy.special.k0函数似乎不适用于所述的已解x0值,我不知道为什么

    from __future__ import division 
    import sympy as sy
    from sympy import besselk, log, nsolve
    import math
    import numpy as np
    import scipy.special as sp
    Tc = 9.2
    Tb = 5.2
    tb = Tb / Tc
    print 'Value of tb is:'+' '+ str(tb)
    L = 100*10**-9
    W = 100*10**-9
    n = 3*10**-6
    r1 = W / 2
    print 'value of r1 is:'+' '+ str(r1)
    x1 = r1 /n
    print 'value of x1 is'+ ' '+ str(x1)
    S = math.sqrt(3 / (1+ tb + tb**2))
    print 'value of S is:'+' ' + str(S)
    B = (math.pi / 2)*(1+(L/W))
    print 'value of B is:'+' ' + str(B)
    E = [x /10 for x in range (1, 2, 1)]
    x0 = sy.symbols('x0')
    i = (S*x0)*(1-tb**3)*besselk(0, x0) /  3*(log(x0/x1)+B) * besselk(0, S*x0)
    t = - i*( (log(x0/x1)*B)**2 - (log(x0/x1)+B)**2 )
    X0 = nsolve(t, E)
    G = sp.k0(X0)
    print 'value of x0 is:' +' '+ str(X0)
当我运行代码时,它会导致以下错误

TypeError: ufunc 'k0' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

非常感谢您的帮助。

X0
不是常规的浮点值;它是来自于mpmath(作为sympy的一部分提供)的一种mpf类型
scipy.special.k0
不知道那是什么。更改此项:

G = sp.k0(X0)
为此:

G = sp.k0(float(X0))