1.quiver函數
一般用於繪制二維矢量場圖,函數調用方法如下:
1
|
quiver
(x,y,u,v)
|
該函數展示了點(x,y)對應的的矢量(u,v)。其中,x的長度要求等於u、v的列數,y的長度要求等於u、v的行數。在繪制圖像的過程中,
通常用 meshgrid 來生成所需的網格采樣點。
下面舉幾個例子:
例1:一個最簡單的例子,該二維矢量場圖中的矢量皆從(0,0)出發,分別指向(1,0) 、(-1,0) 、(0,1) 、(0,-1)。
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)
|
畫出下圖
但我們發現箭頭並沒有完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1) 。如果需要箭頭完全指到(1,0) 、(-1,0) 、(0,1) 、(0,-1),我們需要改變scale參數,將其設為1。參考方法如下:
1
|
quiver
(x,y,u,v,1)
|
畫出圖像如下 :
當然,也可以改變顏色。改變顏色可以參考LineSpec的設置,參考代碼如下:
1
|
>>
quiver
(x,y,u,v,
'-r'
)
%這里將圖像設置為紅色
|
畫出圖像如下:
例2:(參考MathWorks):已知u=ycosxu=ycosx, v=ysinxv=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) %繪制二維矢量場圖
|
畫出下圖:
用法與quiver類似,用於三維矢量場圖的繪制。
例3: (參考MathWorks)繪制z=y2−x2z=y2−x2的三維矢量場圖。
1
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)
%繪制三維矢量場圖
|
畫出下圖:
3.dfield與pplane(多應用於常微分方程)
dfield與pplane的原作者是Rice University的John C. Polking,用於解決涉及常微分方程的問題,比較方便,這里可以下載dfield與pplane的.m文件
在MATLAB中調用dfield,呈現 :
如果我們要繪制常微分方程x′=x2−tx′=x2−t對應的矢量場圖,我們可以輸入對應的公式與參數值。在這里,上圖中默認的常微分方程對應矢量場圖:
在MATLAB中調用pplane,呈現
以默認的微分方程為例,可以繪制矢量場圖: