How can I plot the gradient vector of y=f(X) which is perpendicular to the graph?

To plot the gradient vectors of f(x)=y=sin(x), I plotted z=y-sin(x) contours and plotted the gradient vectors for each contour but I just want one curve which is equal y=sin(x) and its gradient vector. The codes I used are as follows:
x=-pi:0.2:pi;
y=-1:0.2:1;
[X,Y]=meshgrid(x,y);
Z=Y-sin(X);
contour(X,Y,Z)
xlabel({'$x$'},'interpreter','latex')
ylabel({'$y$'},'interpreter','latex')
[DX,DY] = gradient(Z,.2,.2);
hold on
quiver(X,Y,DX,DY,0.5)

 Réponse acceptée

Axis equal cannot solve the problem. I solved it on my own. Here is the codes:
x=-pi:0.2:pi;
figure
y1=sin(x);
plot(x,y1,'linewidth',2)
xlim([-pi pi])
xlabel({'$x$'},'interpreter','latex')
ylabel({'$y$'},'interpreter','latex')
v1=-cos(x);
v2=ones(1,length(x));
hold on
quiver(x,y1,v1,v2,0.2)

Catégories

En savoir plus sur Contour Plots dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by