У меня есть этот код Python ниже, и он дает мне ошибку,
Q, err =((4*n_f*k_avg*l_f)/(visc_f*mat.tan(alpha)))*quad(integrand, r_w, h_f)
can't multiply sequence by non-int of type 'float'.
Я пробовал разные способы обхода, но я просто не могу понять, в чем проблема.
import math as mat
import scipy.special as sp
from scipy.integrate import quad
Данные
k_h = 0.001
k_v = 0.0002
visc_f = 0.5
B_o = 1.25
r_w = 9.997
n_f = 4
l_f = 3048
h_f = 914.4
w = 0.635
k_f = 50
p_e = 340.23
p_w = 272.18
вычислительные константы
k_avg = mat.sqrt(k_h*k_v)
alpha = mat.pi/n_f
pd = p_e - p_w
c = (4*k_avg*l_f)/(w*k_f*mat.tan(alpha))
T_01 = mat.sqrt(r_w)*sp.i1(2*mat.sqrt(c)*mat.sqrt(r_w))
T_02 = mat.sqrt(r_w)*sp.k1(2*mat.sqrt(c)*mat.sqrt(r_w))
T_11 = mat.sqrt(h_f)*sp.i1(2*mat.sqrt(c)*mat.sqrt(h_f))
T_12 = mat.sqrt(h_f)*sp.k1(2*mat.sqrt(c)*mat.sqrt(h_f))
C_1 = (pd*T_12)/(T_02*T_11-T_12*T_01)
C_2 = (pd*T_11)/(T_02*T_11-T_12*T_01)
при выполнении интеграции
def integrand(x):
return C_1*mat.sqrt(x)*sp.i1(2*mat.sqrt(c)*mat.sqrt(x))\
+C_2*mat.sqrt(x)*sp.k1(2*mat.sqrt(c)*mat.sqrt(x))/x
Q, err =((4*n_f*k_avg*l_f)/(visc_f*mat.tan(alpha)))*quad(integrand, r_w, h_f)
print(Q)