Matlab积分返回无限非数字

Matlab integral returning infinite not-a-number

我正在尝试集成功能并不断收到警告:

Warning: Infinite or Not-a-Number value encountered. 

我一直无法确定为什么会这样,希望有人能提供一些线索。我相信其中一个参数会发出 Inf 值,但我无法确定是哪一个。任何帮助将不胜感激。

lm = 1.75; 
Cm = 3.2E6;
fe = 1380;
H = 13.5;
q = 1E-5;
Cw = 4.2E6;
y = 0.0;
x = 0.1;
ts = [0.1 97/24];           
Mt = 100; 
t = linspace(ts(1)*86400, ts(2)*86400, Mt); % [s]
QL = fe/H;                   
z = H/2;
Dt = lm/Cm;             
r = x.^2+y.^2;  
vT = q*Cw*Cm;
T = zeros(size(t));

for i = 1:length(t)
    tt = t(i);

    fun = @(ze) T_GIGF(z,ze,Dt,tt,vT,r)/sqrt(pi)./sqrt(r+(z-ze).^2);

    T(i) = QL/(4*pi*lm)*exp(vT*x/2*Dt).*...
    (integral(fun,0,H)-...
     integral(fun,-H,0));

end

function func = T_GIGF(z,ze,a,tt,VT,r)
u1 = (r+(z-ze).^2)/(4*a*tt);
u2 = VT^2*(r+(z-ze).^2)/(16*a^2);
func = 0.5*sqrt(pi)*(exp(-2*sqrt(u2)).*erfc(sqrt(u1)-sqrt(u2./u1))+...
                    exp(+2*sqrt(u2)).*erfc(sqrt(u1)+sqrt(u2./u1)));

end

你得到这个是因为你的 u1 和 u2 是大约 1e29 的巨大数字!!!因此 exp(1e29) 超出了双数可以支持的范围:

exp(1e29) > realmax 结果为 1