# Matlab integral funtion error

1 view (last 30 days)
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);

[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 75)

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!

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

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

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