Error with ’quad‘!!!Doubleintegral?
3 次查看(过去 30 天)
显示 更早的评论
L = 3.128438e+003;
B= 16685;
X = 2.085625e+003;
Y = 0;
Z = 0;
Quad_1 = @(Zeta,Xi) exp(-sqrt(Xi.^2 + Zeta.^2 + Z^2))./(-sqrt(Xi.^2 + Zeta.^2 + Z^2));
T_1 = quad(@(Zeta) Quad_1,Y-B,Y+B);
T_2 = @(Xi) exp(-Xi)*T_1;
T = quad(@(Xi) T_2(Xi), X-L, X+L);
disp(T);
Error using ==> quad at 80
The integrand function must return an output vector of the same length as the input vector
Error in ==> stationaer at 75
T_1 = quad(@(Zeta) Quad_1,Y-B,Y+B);
Can anyone help me to correct the errors? Thanks.
Jack
0 个评论
回答(2 个)
bym
2013-2-1
how about this
L = 3.128438e+003;
B= 16685;
X = 2.085625e+003;
Y = 0;
Z = 0;
Quad_1 = @(Zeta,Xi) exp(-sqrt(Xi.^2 + Zeta.^2 + Z^2))./(-sqrt(Xi.^2 + Zeta.^2 + Z^2));
%T_1 = quad(@(Zeta) Quad_1,Y-B,Y+B);
%T_2 = @(Xi) exp(-Xi)*T_1;
%T = quad(@(Xi) T_2(Xi), X-L, X+L);
T = dblquad(Quad_1,Y-B,Y+B,X-L,X+L);
disp(T);
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!