用matlab求矢量运算

img


请问求这图上这三种梯度,散度和旋度,用matlab的程序应该怎么编啊?

[X,Y]=meshgrid(-2:0.5:2);
Z=2.*X.*exp(-X.^2-Y.^2);
[U,V]=gradient(Z);
contour(X,Y,Z,7);
hold on                                 
quiver(X,Y,U,V);  
hold off

img

[X,Y]=meshgrid(-2:0.5:2);
quiver(X,Y,-Y,X); 
axis([-2,2,-2,2])

img

[X,Y]=meshgrid(-2:0.5:2);
div=divergence(X,Y,-Y,X);
mesh(X,Y,div)

img

[X,Y,Z]=meshgrid(-2:1:2);
[curlX,curlY,curlZ,~]=curl(X,Y,Z,-Y,X,zeros(size(X)));
quiver3(X,Y,Z,curlX,curlY,curlZ);
axis([-4,4,-4,4,-2,3])

img


[X,Y] = meshgrid(-2:0.5:2,-2:0.5:2);    %设置绘制区域的网格
u=2.*X.*exp(-X.^2-Y.^2);
[EX,EY] = gradient(double(u));         %利用数值方法求电势的负梯度,得到电场强度
contour(X,Y,u);             %绘制等势线
hold on;                                 
quiver(X,Y,EX,EY);                   
axis image;

img