[問題] quad積分指令問題
本人第一次使用Matlab寫解析解,然後碰到了一點問題。
這串解析解中有兩個變數,tDh和s,除了這兩個變數外其他參數都會給固定值。
因為這個程式碼後面會進行拉氏反轉換,所以有s這個變數。
而這段程式碼主要是針對tDh積分。
程式碼如下:
%%Horizontal Well Parameters
syms xD yD ywD zD zwD hD;
xD=0.68;
yD=0.001;
ywD=10;
zD=0.5;
zwD=0.5;
hD=0.2;
%%Naturally Fractured Reservoirs parameters
syms omega lambda fs s;
omega=0.001;
lambda=5.0E-3;
fs=(omega.*(1-omega).*s+lambda)./((1-omega).*s+lambda);
%%積分上下限
syms tDS tDL;
tDS=hD.^2.*(zD+zwD-2).^2./20;
tDL=100.*(1-xD).^2./omega;
%%Integration A
syms tDh int_A1 int_A2 funA integA;
int_A1=@(tDh,s) exp(-s.*fs.*tDh);
int_A2=@(tDh,s) exp(-((zD-zwD).^2.*hD.^2+yD.^2)./(4.*tDh));
funA=@(tDh,s) int_A1.*int_A2;
integA=quad(@(tDh) funA,0,tDS);
上段程式碼執行之後,跑出下列訊息:
Error using quad (line 75)
The integrand function must return an output vector of the same length as the
input vector.
Error in dualporohw (line 42)
integA=quad(@(tDh) funA,0,tDS);
問題應該是出在積分的部分,但本人是初學者,因此不確定這是什麼原因造成的。
煩請各位版友幫忙解決,感激不盡。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.34.151