Ошибка типа: Ошибка при умножении термина вне интеграции на интегрированную функцию - PullRequest
1 голос
/ 10 марта 2019

У меня есть этот код 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) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...