梯度、函数的等值线和向量图

下面用MATLAB计算函数曲面上网格节点处的梯度,并根据曲面数据绘制等值线图,根据节点坐标和梯度绘制向量图。[大谦MATLAB,dqmatlab点com]

梯度

\(f(x,y,z)={x}^{2}+{y}^{2}+{z}^{2}\),求grad f(1,-1,2)。

解 在命令窗口中输入下面的命令行:

code.matlab
>> syms x y z;
>> f=x*x+y*y+z*z;
>> fx=diff(f,x);
>> fy=diff(f,y);
>> fz=diff(f,z);
>> fx2=inline(fx)
fx2 =
     内联函数:
     fx2(x) = x.*2.0
>> fy2=inline(fy)
fy2 =
     内联函数:
     fy2(y) = y.*2.0
>> fz2=inline(fz)
fz2 =
     内联函数:
     fz2(z) = z.*2.0
>> x0=fx2(1)
x0 =
     2
>> y0=fy2(-1)
y0 =
    -2
>> z0=fz2(2)
z0 =
     4

所以,grad f(1,-1,2)={2,-2,4}。

函数的等值线

用contour函数可以生成二维等值线图,其语法格式为:

contour(Z):绘制矩阵Z的等值线图,其中Z可解释为x-y平面的高度。Z必须至少是22的矩阵。等值线的水平数和等值线水平值根据Z的最小值和最大值自动进行选取。x轴和y轴的范围分别为[1:n]和[1:m],其中[m,n] = size(Z)。

contour(Z,n):根据Z矩阵的数据绘制有n个水平值的等值线图。

contour(Z,v):根据向量v指定的数据值绘制矩阵Z的等值线图。等值线水平等于length(v)。在绘制水平i的单条等值线时,使用contour(Z,[i i])。

contour(X,Y,Z),contour(X,Y,Z,n)和contour(X,Y,Z,v):绘Z的等值线图。X和Y指定x轴和y轴的范围。当X和Y为矩阵时,它们必须与Z具有相同的大小。

contour(...,LineSpec):用LineSpec指定的线型和颜色绘制等值线。contour函数会忽略标记。

[C,h] = contour(...):返回等值线矩阵C和图形对象的句柄向量。

绘制函数z=sin(x)+cos(y) 的三维曲面图和等值线图。

解 在命令窗口中输入

code.matlab
>> fsurf(@(x,y) sin(x)+cos(y))

绘制三维曲面图,如图8-1所示。输入

code.matlab
>> [x,y] = meshgrid(-5:0.05:5);
>> z= sin(x)+cos(y);
>> contour(x,y,z);
>> colormap cool

得到的等值线图如图8-2所示。

Document Image Document Image
\[\]

图8-1 三维曲面图 图8-2 等值线图

函数的向量图

在向量图中用箭头显示图中各点处的向量大小和方向。其中,箭头指示的方向为向量的方向,箭头的长短表示向量的大小。

用quiver函数可以绘制向量图或速率图。其语法格式为:

quiver(U,V):在由x = 1: n和y = 1: m确定的坐标系中绘制U和V指定的向量图,其中[m,n] = size(U) = size(V)。

quiver(X,Y,U,V):对每个X和Y配对数据绘制向量图。X和Y为向量,length(X) =n 且 length(Y) = m, 其中[m,n] = size(U) = size(V)。向量X对应于U和V的列,向量Y对应于U和V的行。

quiver(...,scale):自动对向量设置显示比例。如果scale=2,则将原向量的长度乘以2后显示。若scale=0,则不自动设置显示比例。

quiver(...,LineSpec):用LineSpec指定线型、标注和颜色。quiver函数可在向量原点处绘制标记。

quiver(...,LineSpec,'filled'):填充由LineSpec指定的标记。

h = quiver(...):返回直线句柄向量。

下面绘制函数z=sin(x)+cos(y)定义的梯度场,在命令窗口中输入:

code.matlab
>> [x,y] = meshgrid(-5:0.5:5);
>> z= sin(x)+cos(y);
>> [dx,dy] = gradient(z,.2,.2);
>> contour(x,y,z)
>> hold on
>> quiver(x,y,dx,dy)
>> colormap autumn
>> grid off
>> hold off

绘图结果如图8-3所示。

Document Image
\[\]

图8-3 等值线图和向量图