Find the value of x when the first derivative is equal to 0
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
Torsten
le 10 Jan 2022
Modifié(e) : Torsten
le 10 Jan 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 commentaires
Torsten
le 10 Jan 2022
Modifié(e) : Torsten
le 10 Jan 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 ?
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!