前提・実現したいこと
Pythonで積分、重積分をおこないたい
発生している問題・エラーメッセージ
正確な計算結果が出力されない
所望の結果:C_tt = 1.124E-12
実際の結果:C_tt = 4.928925767386346e-13
integrate.quad、およびintegrate.dblquadの使い方が正しいかからない
該当のソースコード
Python
1import numpy as np 2from scipy import integrate 3 4# 変数を定義 5delta_in = 0.15E-3 6delta_out = 1.00E-3*3 7delta_tc = 0.6E-3 8Do = 1.03E-3 9Di = 1.00E-3 10eps_0 = 8.854187E-12 11eps_r = 4.0 12h_core = 12.3E-3 13dia_in_core = 17.6E-3 14dia_out_core = 32.8E-3 15 16r_in = (dia_in_core/2) - delta_tc - Do/2 17r_out = (dia_out_core/2) + delta_tc + Do/2 18 19# 関数を定義 20y_in = lambda phi: np.sin(phi)/(phi*(delta_in+Do*(1-np.cos(phi)))) 21y_out = lambda phi: np.sin(phi)/(phi*(delta_out+Do*(1-np.cos(phi)))) 22# 数値積分 23integ_in = integrate.quad(y_in, 0, np.pi) 24integ_out = integrate.quad(y_out, 0, np.pi) 25 26L_T_in = h_core + delta_tc + Do 27L_T_out = L_T_in 28L_T = h_core*2+ (dia_out_core-dia_in_core) 29 30C_tt_air_in = (Do/2.0)*eps_0*L_T_in * integ_in[0] 31C_tt_air_out = (Do/2.0)*eps_0*L_T_out * integ_out[0] 32 33# 関数を定義 34f = lambda phi, r: np.sin(phi)/(phi*( ((delta_out-delta_in)/(r_out-r_in))*(r-r_in + delta_in + Do*(1-np.cos(phi))))) 35# 数値積分 36val, err = integrate.dblquad(f, r_in, r_out, lambda phi: 0, lambda phi: np.pi) 37 38C_tt_air_l = (Do/2.0)*eps_0 * val 39 40C_tt_ins = (np.pi*eps_0*eps_r*L_T)/(2*np.log(Do/Di)) 41 42C_tt_in = (C_tt_ins*C_tt_air_in)/(C_tt_ins+C_tt_air_in) 43C_tt_out = (C_tt_ins*C_tt_air_out)/(C_tt_ins + C_tt_air_out) 44C_tt_l = (C_tt_ins*C_tt_air_l)/(C_tt_ins + C_tt_air_l) 45C_tt = C_tt_in + C_tt_out + 2*C_tt_l 46
試したこと
ここにより詳細な情報を記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー