MATLAB 中⽮量场图的绘制 (quiver/quiver3/dfield/pplane) Plot the vector field with MATLAB
MATLAB 中⽮量场图的绘制(q...
1.quiver 函数
⼀般⽤于绘制⼆维⽮量场图,函数调⽤⽅法如下:
该函数展⽰了点(x,y)对应的的⽮量(u,v)。其中,x 的长度要求等于u 、v 的列数,y 的长度要求等于u 、v 的⾏数。在绘制图像的过程中,通常⽤ meshgrid 来⽣成所需的⽹格采样点。下⾯举⼏个例⼦:
例1:⼀个最简单的例⼦,该⼆维⽮量场图中的⽮量皆从(0,0)出发,分别指向(1,0) 、(-1,0) 、(0,1) 、(0,-1)。
画出下图
但我们发现箭头并没有完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1) 。如果需要箭头完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1),我们需要改变scale 参数,将其设为1。参考⽅法如下:
画出图像如下 :
当然,也可以改变颜⾊。改变颜⾊可以参考LineSpec 的设置,参考代码如下:
画出图像如下:
例2:(参考MathWorks ):已知u=ycosx" role="presentation" >u=ycosx, v=ysinx" role="presentation" >
v=ysinx
画出下图:
2.quiver3函数
⽤法与quiver 类似,⽤于三维⽮量场图的绘制。
例3: (参考MathWorks )绘制z=y2−x2" role="presentation" >
z=y2−x2的三维⽮量场图。
画出下图:
3.dfield 与pplane(多应⽤于常微分⽅程)1htmlborder
quiver(x,y,u,v)1
2
3
4
5
x=[0 0 0 0];y=x;u=[1 -1 0 0];v=[0 0 1 -1];quiver(x,y,u,v)1quiver(x,y,u,v,1)1>> quiver(x,y,u,v,'-r') %这⾥将图像设置为红⾊
u =ycosx v =ysinx 1
2
3
4
[x,y] = meshgrid(0:0.2:2,0:0.2:2); %⽣成所需的⽹格采样点 x 与y 在0到2区间 每隔0.2取⼀个点u = cos(x).*y;v = sin(x).*y;quiver(x,y,u,v) %绘制⼆维⽮量场图z =−y 2x 21
2
3
4>> [x,y]=meshgrid(-3:.5:3,-3:.5:3); %⽣成所需的⽹格采样点 x 与y 在-3到3范围内 每隔0.5取⼀个点>> z=y.^2-x.^2;>> [u,v,w]=surfnorm(z); %取三维曲⾯的法线>> quiver3(z,u,v,w) %绘制三维⽮量场图
dfield 与pplane 的原作者是Rice University 的John C. Polking ,⽤于解决涉及常微分⽅程的问题,⽐较⽅便,这⾥可以下载dfield 与pplane 的.m ⽂件
在MATLAB 中调⽤dfield ,呈现 :
如果我们要绘制常微分⽅程x ′=x2−t" role="presentation" >x ′=x2−t 对应的⽮量场图,我们可以输⼊对应的公式与参数值。在这⾥,上图中默认的常微分⽅程对应⽮量场图:
在MATLAB 中调⽤pplane ,呈现
以默认的微分⽅程为例,可以绘制⽮量场图:=−t x ′x 2
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论