Can't integrate exponential function

2 visualizzazioni (ultimi 30 giorni)
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 Commento
Gabriel Sharp
Gabriel Sharp il 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.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 11 Feb 2022
Modificato: Matt J il 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 Commento
Gabriel Sharp
Gabriel Sharp il 11 Feb 2022
What does the period do? It now works, by the way, thanks for the help.

Accedi per commentare.

Più risposte (2)

Voss
Voss il 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 Commenti
Matt J
Matt J il 11 Feb 2022
Modificato: Matt J il 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 il 11 Feb 2022
I still do my integrals by hand, but @Gabriel Sharp may be interested in your comment.

Accedi per commentare.


Walter Roberson
Walter Roberson il 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.

Prodotti


Release

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by