【MATLAB】绘制矢量场图

Step 1 

在MATLAB中绘制矢量场图的函数是quiver,利用help命令查看该函数的解释。 

一般来说,输入参数可以是四个(x,y,u,v),也可以是两个参数(u,v),要求是这些参数都大小相同的矩阵

注意:在输入参数只有两个(u,v),实际上是默认[x,y]=meshgrid(0:length(u),0:length(u))

Step 2 

参数:(x,y)表示矢量的起点,\vec{a}=u\vec{i}+v\vec{j},(u,v)表示矢量的大小和方向。

描述:1、数学上可以描述二元函数的梯度,梯度是一个矢量哦。

                               (u,v)=({\frac{\partial f }{\partial x}},{\frac{\partial f }{\partial y}})

           2、物理学上可以描述电场线、磁场线。

               点电荷的电势:U=q/4\pi \varepsilon \sqrt{x^2+y^2},电势的梯度实际上就是电场强度\vec{E}

Step 3

例子1:描述圆锥的二元函数f(x,y)=\sqrt{x^2+y^2},矢量图表示梯度。

[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);
z=sqrt(x.^2+y.^2);
mesh(x,y,z);
u=x./sqrt(x.^2+y.^2);
v=y./sqrt(x.^2+y.^2);
figure;
quiver(x,y,u,v,1);

     三维图

【MATLAB】绘制矢量场图_第1张图片

 矢量场图

【MATLAB】绘制矢量场图_第2张图片

例子2:Plot the gradient (梯度) of the function .。

[X,Y] = meshgrid(-2:.2:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,.2,.2);
//求梯度
figure
contour(X,Y,Z)//求等势线
hold on
quiver(X,Y,DX,DY)//求矢量图
hold off

 三维图

【MATLAB】绘制矢量场图_第3张图片

矢量场图

【MATLAB】绘制矢量场图_第4张图片

如果把这个函数看做电势的函数,矢量图实际上就是电场线。 

例子三:点电荷的电势:U=q/4\pi \varepsilon \sqrt{x^2+y^2},简单化,假如U=1/\sqrt{x^2+y^2},求电场线分布。

[X,Y] = meshgrid(-2:.2:2);
Z = 1./sqrt(X.^2 + Y.^2);
DX=-X./(X.^2+Y.^2).^(3/2);
DY=-Y./(X.^2+Y.^2).^(3/2);
figure;
quiver(X,Y,DX,DY);

【MATLAB】绘制矢量场图_第5张图片

Step 4:

LineStyle连接https://ww2.mathworks.cn/help/matlab/ref/linespec.html

你可能感兴趣的:(matlab)