How can I use feval, linespace and int()?

3 visualizaciones (últimos 30 días)
Vsevolod Kolobov
Vsevolod Kolobov el 2 de Abr. de 2022
Comentada: Vsevolod Kolobov el 2 de Abr. de 2022
I want to calculate an indefinite integral and then draw it. A prerequisite is that the interval and the number of points are specified.
It works great:
function test
s = @(x) sin(1./x);
numPoints = 20;
xvec = linspace(0.01,0.1,numPoints);
yvec = feval(s,xvec);
plot(xvec,yvec)
end
How to do the same with the int() ?
I have tried different examples here is one of them:
function test
syms x;
ex = int(x.^2);
s = @(ex) ex;
numPoints = 20;
xvec = linspace(1,10,numPoints);
yvec = feval(s,xvec);
plot(xvec,yvec)
end
How can I use feval, linespace and int()?
  1 comentario
Riccardo Scorretti
Riccardo Scorretti el 2 de Abr. de 2022
The line s = @(ex) ex; is wrong, because you are "shading" the function ex. Basically it is the same as:
s = @(x) x;

Iniciar sesión para comentar.

Respuesta aceptada

Riccardo Scorretti
Riccardo Scorretti el 2 de Abr. de 2022
Editada: Riccardo Scorretti el 2 de Abr. de 2022
You can do like that:
syms x;
ex = int(x^2);
s = @(x) subs(ex, 'x', x);
numPoints = 200;
xvec = linspace(1,10,numPoints);
yvec = feval(s,xvec);
plot(xvec,yvec)
That's being said, in my opinion this is better:
syms x;
ex = int(x^2);
fplot(ex, [1 10]);

Más respuestas (0)

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Productos


Versión

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by