0

私のコードでいくつかのガイダンスを得ることを望んでいます。私はPythonにまったく慣れていないので、コード内の変更されたベッセル関数k0に問題があります。実際のコードは 2 つの部分に分かれています

1) 最初のセクションでは、sympy を使用して t を解き、t=0 での x0 の値を返します。

2) 2 番目の部分では、この値 x0 を使用して、さまざまな x の値について t を解きます。

私が困難を抱えているのは2番目のステップです.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''

どんな助けでも大歓迎です、そして前もって感謝します。

4

1 に答える 1