Find the value of x when the first derivative is equal to 0
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Angelavtc
el 10 de En. de 2022
Comentada: Angelavtc
el 10 de En. de 2022
Hello community,
I have the data x, y (.mat version) from which I compute its first derivative as follows :
dy = diff(y)./diff(x);
I need to find the points (x, y) such that the first derivative is 0. (In this case, there should be 2 points)
I have tried with this code, but it doesn't work, it tells me "Second argument must be a vector of symbolic variables"
solve(dy==0,x)
Any idea how to fix the problem?
Thanks in advance!
0 comentarios
Respuesta aceptada
Torsten
el 10 de En. de 2022
Editada: Torsten
el 10 de En. de 2022
x = -pi/2:0.01:pi/2;
y = cos(x);
dydx = diff(y)./diff(x);
[~,idx] = min(dydx.^2);
xmin = (x(idx+1)+x(idx))/2
xmin is the point with slope closest to 0.
3 comentarios
Torsten
el 10 de En. de 2022
Editada: Torsten
el 10 de En. de 2022
function main
x = -3*pi/2:0.01:3*pi/2;
y = cos(x);
dydx = diff(y)./diff(x);
[B,I] = sort(dydx.^2);
for i=1:3
solx(i) = (x(I(i)) + x(I(i)+1))/2;
soly(i) = (y(I(i)) + y(I(i)+1))/2;
end
solx(1),soly(1)
solx(2),soly(2)
solx(3),soly(3)
end
gives you the three points in [-3/2*pi:3/2*pi] where cos(x) has least, second least and third least slope.
Instead of squaring dydx, you could also have used abs(dydx). Can you imagine why this is necessary ?
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!