error using quad2d
Show older comments
My code is as follows
if true
Rf=5.4E-3;
Rm=7.1E-3;
g=1;
nf=3;
nm=2;
for a=1:1:nf
rk(1,a)=sqrt(((pi*(Rf^2)*a)/nf)/pi);
end
c=1;
for b=nf+1:1:nm+nf
rk(1,b)=sqrt((c*pi*(Rm^2-Rf^2)/nm+pi*(Rf^2))/pi);
c=c+1;
end
sigma=0.1592;
FS11_l= @(theta,y)(cos(theta).^2).*exp(-(sigma.*2.*((rk(1,1).^2-y.^2).^(1/2)))/cos(theta));
FS11_r= @(theta,y) cos(theta).^2;
S_11l = quad2d (FS11_l, 0,pi/2,0,rk(1,1)); % the first term of S_11
S_11r= quad2d (FS11_r, 0,pi/2,0,rk(1,1)); % the second term of S_11
end
when running it this is shown: Warning: Matrix is singular to working precision. > In @(theta,y)(cos(theta).^2).*exp(-(sigma.*2.*sqrt((rk(1,1).^2-y.^2)))/cos(theta)) In quad2d>tensor at 343 In quad2d at 167 In Hometask2 at 21 Error using .* Matrix dimensions must agree.
Error in @(theta,y)(cos(theta).^2).*exp(-(sigma.*2.*sqrt((rk(1,1).^2-y.^2)))/cos(theta))
Error in quad2d/tensor (line 349) Z1 = FUN(X(VTSTIDX),Y(VTSTIDX)); NFE = NFE + 1;
Error in quad2d (line 167) [Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);
Error in Hometask2 (line 21) S_11l = quad2d (FS11_l, 0,pi/2,0,rk(1,1)); % the first term of S_11
Where in the equation is the dimension of the matrix messed up, how to solve this problem?
Answers (1)
Star Strider
on 29 Apr 2016
You forgot to vectorise the last division here:
FS11_l= @(theta,y)(cos(theta).^2).*exp(-(sigma.*2.*((rk(1,1).^2-y.^2).^(1/2)))./cos(theta));
ADDED ‘.’ —> ^
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!