[問題] quad積分指令問題

看板MATLAB作者 (Lycoris)時間11年前 (2012/12/11 09:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
本人第一次使用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
文章代碼(AID): #1Gnf3GoS (MATLAB)