-1
我需要在matlab中使用integral2
函數執行四元積分。代碼如下:使用嵌套積分的四元積分輸入數組尺寸誤差
Rb = @(rho_1,phi_1) rho_1.*cos(phi_1);
Sb = @(rho_2,phi_2) rho_2.*cos(phi_2);
Tb = @(rho_1,phi_1,rho_2,phi_2) rho_1.*cos(phi_1)-rho_2.*cos(phi_2);
InnerIntegrand = @(rho_1,phi_1,rho_2,phi_2) Rb(rho_1,phi_1).*Sb(rho_2,phi_2).*Tb(rho_1,phi_1,rho_2,phi_2);
InnerIntegral = @(rho_1,phi_1) integral2(@(rho_2,phi_2) InnerIntegrand(rho_1,phi_1,rho_2,phi_2),0,3,0,2*pi);
II = integral2(InnerIntegral,0,3,0,2*pi);
其中InnerIntegrand (rho_1,phi_1,rho_2,phi_2)
是被積函數。 InnerIntegral
通過rho_2
和phi_2
進行評估,其從外部integral2
(整合在rho_1
和phi_1
之上)調用。
我得到一個錯誤:
Error using .* Matrix dimensions must agree. Error in @(rho_1,phi_1,rho_2,phi_2)Rb(rho_1,phi_1).*Sb(rho_2,phi_2).*Tb(rho_1,phi_1,rho_2,phi_2) Error in @(rho_2,phi_2)InnerIntegrand(rho_1,phi_1,rho_2,phi_2) Error in integral2Calc>integral2t/tensor (line 238) Z1 = FUN(X(VTSTIDX),Y(VTSTIDX)); NFE = NFE + 1;
是誤差來由於兩個integral2
調用不同的數組的大小?什麼是問題?