clear
clc
x = -2.5 + 5*rand([20]);
y = -2.5 + 5*rand([20]);
v = x.*exp(-x.^2-y.^2);

[Xq, Yq]=meshgrid(-2.5:0.15:2.5, -2.5:0.15:2.5);
[X, Y, V]=griddata(x, y, v, Xq, Yq, 'cubic');

figure
hold on
plot3(x, y, v, 'ok', 'MarkerFaceColor', 'k');
mesh(Xq, Yq, V, 'EdgeColor', 'interp', 'FaceColor', 'none');
xlim([-2.5 2.5]);
ylim([-2.5 2.5]);
xlabel('$x$', 'Interpreter', 'Latex', 'FontSize', 15);
ylabel('$y$', 'Interpreter', 'Latex', 'FontSize', 15);
zlabel('$V(x, y)$', 'Interpreter', 'Latex', 'FontSize', 15);
set(gca, 'Box', 'on', 'FontSize', 15);
view(2);
colormap winter

[Fx, Fy]=gradient(-V);
figure
hold on
contour(Xq, Yq, V, 50);
colormap hot
quiver(X, Y, Fx, Fy, 2, 'Color', 'b');
xlabel('$x$', 'Interpreter', 'Latex', 'FontSize', 15);
ylabel('$y$', 'Interpreter', 'Latex', 'FontSize', 15);
set(gca, 'Box', 'on', 'FontSize', 15);

