Matlab integral funtion error

2 views (last 30 days)
Leon Ellis
Leon Ellis on 4 Aug 2021
Hi, I can't seem to get the integral function to work correctly.
syms x
z=1/(3-1)
z = 0.5000
f=@(x)(x.*exp((x.^2)-1))/sin(x)
f = function_handle with value:
@(x)(x.*exp((x.^2)-1))/sin(x)
fi=integral(f,1,3)
Error using integralCalc/finalInputChecks (line 526)
Output of the function must be the same size as the input. If FUN is an array-valued integrand, set the 'ArrayValued' option to true.

Error in integralCalc/iterateScalarValued (line 315)
finalInputChecks(x,fx);

Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);

Error in integral (line 87)
Q = integralCalc(fun,a,b,opstruct);
This is my code, however the integral function keeps giving errors and I am unable to fix the problem. Could someone please help? Thanks in advance!

Accepted Answer

Rik
Rik on 4 Aug 2021
The error tells you that you need to make sure f outputs the same size as the input.
f=@(x)(x.*exp((x.^2)-1))./sin(x);
% ^
% you forgot this one
fi=integral(f,1,3)
fi = 5.9621e+03

More Answers (2)

Walter Roberson
Walter Roberson on 4 Aug 2021
f=@(x)(x.*exp((x.^2)-1))./sin(x)

Pere Garau Burguera
Pere Garau Burguera on 4 Aug 2021
The solution is given in the error message, you should use
fi=integral(f,1,3,'ArrayValued',true);
Cheers,
Pere

Categories

Find more on MATLAB 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!