integral2 error, bu the function works

1 view (last 30 days)
Xiangyu Meng
Xiangyu Meng on 10 Feb 2017
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]

Answers (2)

Steven Lord
Steven Lord on 10 Feb 2017
What does the integral2 function require of the integrand function you specify as its first input?
"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
Xiangyu Meng
Xiangyu Meng on 10 Feb 2017
I want to calculate the integral of the function fun in the planar [0,1]*[0,1].
Torsten
Torsten on 13 Feb 2017
As Steven suggested, replace "norm" with "abs" in your function definition.
Best wishes
Torsten.

Sign in to comment.


Carlos Guerrero García
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)
ans = 

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!