#python #types #numerical-integration
#python #типы #числовое интегрирование
Вопрос:
У меня есть приведенный ниже код 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)
Комментарии:
1. вероятно, это автоматическая настройка
k_f
иn_f
какint
… попробуйтеn_f = float(4)
иk_f = float(50)