Can't integrate exponential function

4 views (last 30 days)
I am trying to figure out how to write integral functions that have exponential numbers in the functions.
Matlab gives me an error for the following function:
%Practice integral with exponent
clc
clear
syms x
myFunc = @(x) (exp(x)/x);
y = integral(myFunc,3.5,4.5);
  1 Comment
Gabriel Sharp
Gabriel Sharp on 11 Feb 2022
I get an error message:
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.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 11 Feb 2022
Edited: Matt J on 11 Feb 2022
%syms x - doesn't belong here
myFunc = @(x) (exp(x)./x); %use ./
y = integral(myFunc,3.5,4.5)
y = 14.0083
  1 Comment
Gabriel Sharp
Gabriel Sharp on 11 Feb 2022
What does the period do? It now works, by the way, thanks for the help.

Sign in to comment.

More Answers (2)

Voss
Voss on 11 Feb 2022
Telling integral() that the function is array-valued seems to work ok:
myFunc = @(x) (exp(x)/x);
y = integral(myFunc,3.5,4.5,'ArrayValued',true)
y = 14.0083
  2 Comments
Matt J
Matt J on 11 Feb 2022
Edited: Matt J on 11 Feb 2022
Yes, but less efficiently. The integral computation will not be vectorized.
wp=linspace(3.5,4.5,1e5);
myFunc = @(x) (exp(x)/x);
tic;
y = integral(myFunc,3.5,4.5,'ArrayValued',true,'WayPoints',wp);
toc
Elapsed time is 2.280323 seconds.
myFunc = @(x) (exp(x)./x);
tic;
y = integral(myFunc,3.5,4.5,'WayPoints',wp);
toc
Elapsed time is 0.070478 seconds.
Voss
Voss on 11 Feb 2022
I still do my integrals by hand, but @Gabriel Sharp may be interested in your comment.

Sign in to comment.


Walter Roberson
Walter Roberson on 11 Feb 2022
syms x
myFunc = (exp(x)/x);
tic; y1 = int(myFunc,3.5,4.5), double(y1), toc
y1 = 
ans = 14.0083
Elapsed time is 0.560509 seconds.
tic; y2 = vpaintegral(myFunc,3.5,4.5), double(y2), toc
y2 = 
14.0083
ans = 14.0083
Elapsed time is 0.159376 seconds.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!