integral2 error, bu the function works
1 view (last 30 days)
Show older comments
fun = @(x,y) 1-exp(-0.01*norm(x-y));
q = integral2(fun,0,1,0,1);
It gives me the following error:
Error using integral2Calc>integral2t/tensor (line 241)
Integrand output size does not match the input size.
Error in integral2Calc>integral2t (line 55)
[Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);
Error in integral2Calc (line 9)
[q,errbnd] = integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);
Error in integral2 (line 106)
Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
Error in IntegrateTriangularRegionwithSingularityattheBoundaryExample (line 19)
q = integral2(fun,0,1,0,ymax)
The function fun is well defined and tested. Work for both scalar and vector.
How to make the integral work?
[SL: edited to format code]
0 Comments
Answers (2)
Steven Lord
on 10 Feb 2017
"The function fun must accept two arrays of the same size and return an array of corresponding values. It must perform element-wise operations."
What does your function do?
fun = @(x,y) 1-exp(-0.01*norm(x-y));
x = 1:10;
y = x+1;
z = fun(x, y)
Is z the same size as x and y? I think something closer to what you want is:
fun = @(x,y) 1-exp(-0.01*abs(x-y));
x = 1:10;
y = x+1;
z = fun(x, y)
2 Comments
Torsten
on 13 Feb 2017
As Steven suggested, replace "norm" with "abs" in your function definition.
Best wishes
Torsten.
Carlos Guerrero García
on 26 Nov 2022
A sketch of the function:
[x,y]=meshgrid(0:0.01:1); % The region in the statement
surf(x,y,1-exp(-0.01*abs(x-y))); % Plotting the surface
shading interp % For a nice view
and the integral can be calculated as follows:
syms x y; int(int(1-exp(-0.01*abs(x-y)),0,1),0,1)
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!