2014-03-04 61 views
0

我想在數值上求解一個積分,而不是依賴於之前的路徑。積分7.14從這裏http://www.mathworks.com/matlabcentral/answers/uploaded_files/8998/1.pdf當積分依賴於自身時的數值積分

隨着下面的代碼,我得到一個錯誤。哪裏不對?我用這個代碼解決這個積分問題嗎?

「使用integralCalc/finalInputChecks時出錯(第516行)該函數的輸出必須與輸入大小相同,如果FUN是一個數組值,則將ArrayValued選項設置爲true。

謝謝。

z = 0:1/1000:10^-2 
dz = z(2)-z(1); %integration step 
sigma = 1; 
q=0; %Integral value at z=0 
for rr = 1:length(z) 
fun = @(z) sigma*((10^4-exp(q))/((10^4+exp(q)))); 
q = integral(fun,0,z(rr))*dz; 
end 
q 
+0

錯誤信息似乎很清楚。你讀過它並嘗試了它的建議嗎?該文檔將向您展示如何使用該選項。 – horchler

回答

0

將行:

q = integral(fun,0,z(rr))*dz; 

有了:

q = integral(fun,0,z(rr),'ArrayValued',true)*dz;