Is this code good enough for illustrate gradient descent
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
This is my code for 15 iterative steps
clf
X = -3:0.1:3;
[X,Y] = meshgrid(X);
Z = 4*X.^2-4*X.*Y+2*Y.^2;
surf(X,Y,Z,'FaceColor','c','FaceAlpha',0.3,'EdgeColor','none');
hold on
x(1) = 2; % initial value of x
y(1) = 3; % initial value of y
z(1) = 4*(x(1)).^2-4*(x(1)).*(y(1))+2*(y(1)).^2;
stepsize = 0.1;
for i = 1:15
zx = 8*x(i)-4*y(i);
zy =-4*x(i)+4*y(i);
x(i+1) = x(i) - stepsize*zx; %gradient descent
y(i+1) = y(i) - stepsize*zy;
z(i+1) = 4*(x(i+1)).^2-4*(x(i+1)).*(y(i+1))+2*(y(i+1)).^2;
end
plot3(x,y,z,'o','Markersize',3,'Color','red')
hold off
axis([min(x),max(x), min(y),max(y), min(z), max(z)]);
rotate3d on;
xlabel x; ylabel y; zlabel z;
I get this figure
I dont know if this illustration good enough
2 comentarios
John D'Errico
el 6 de Ag. de 2022
Is it good enough? Why not? Does it show the indicated behavior? It seems to do so. Did you write an explanation? (I don't see one, but I don't case as that is not a MATLAB question.) Is there any discussion of the behavior at the end? I don't see any, but in either case, such a discussion would be off-topic for Answers, as having nothing to do with MATLAB.
Surely the only one who can make an assessment of perfection is your teacher, who will grade your work? After all, suppose we said it was incredibly good, but your teacher disagrees? Who is right? (The one who will assign a grade.)
Adam Danz
el 6 de Ag. de 2022
Editada: Adam Danz
el 7 de Ag. de 2022
In my opinion, instead of setting EdgeColor to None, it would look better if you set EdgeAlpha to something like 0.4. It will help to show the 2D structure of the surface. You may want to set the viewing angle (view) if you need a specific vantage point.
Respuestas (0)
Ver también
Categorías
Más información sobre Surface and Mesh Plots 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!