向量场的介绍

大家好,我是新来的高数课代表Zach,今天和大家一起上节数学课!

向量场应用广泛,既可以用来形象地描绘液体的流动,同时也给绘制多元函数的图像提供了一种直观的方法。


01

向量的表示

代表x轴方向的单位向量
代表y轴方向的单位向量
代表z轴方向的单位向量

02

小热身:用速度向量来描绘运动

你会怎么描绘一个正在运动中的物体呢?通常在数学和物理中的方法是,给正在移动中的物体加上一个速度向量。

1.向量的长度(模)代表了物体的速度值。

2.向量的方向代表了物体移动的方向。

举个例子,假如说你有一只小狐狸或者一只大鲸鱼什么的,它们都正在向左移动,其中狐狸向左移动的速度是10米每秒(或者说像我画得这样是被拖着移动),而鲸鱼向左移动的速度则是5米每秒。那么你就可以用向量来描绘它们的运动,就像图中:

*向量

在这个例子中有两个重要的点要注意:

1.这种表示方法只告诉我们向量的大小和方向,比如十米每秒和方向向左,但没有说明要在哪里画这个向量,只是我们习惯让向量的尾端挨着向量代表的物体。

2.我们所画向量的具体长度并不重要,只要代表狐狸的向量长度是代表鲸鱼的向量长度两倍就好。你甚至可以跟看着这幅画的人说:“我想把狐狸身上的箭头画多长,10米每秒的速度就是多长。”


03

来点儿刺激的:二维流动的液体

现在我们来再上一个层次。不再是描绘一个或两个物体的运动,现在摆在面前的是一滩按照特定规则流动的液体。例如,下面这个动画通过描绘一些粒子的运动(用蓝点表示)来表示这一滩液体的流动。

为了表达这种运动,我们不再满足于只画出一个向量的大小和方向。我们需要表示出液体中每一个单独粒子的速度和方向。

事实上,为了描绘这种运动,我们可以从描绘一些抽取的样本粒子开始。比如,如果你画出动画中每一个粒子的速度向量,并加上坐标轴来确定它们的位置,你就可以得到这样一幅示意图:

*向量场

尽管只是一幅静态图,但是如果你顺着图像中的箭头一个一个看,可以清晰地感觉到液体是如何流动的。相距很近的粒子倾向于拥有相同的速度和方向。因此,每一个箭头不仅仅单独代表那一个粒子的运动,而且对附近粒子的运动趋势都有直观地表示。这样的示意图叫做向量场。

在画向量场示意图时,有一个要提醒的很重要的点是,这些向量几乎都不是按照实际比例绘制的

举个例子,如果一个单独的流体粒子以10米每秒的速度移动,那么严格来说就应该给粒子加上一个10单位长度的箭头,但是这可能会延伸到整个平面!如果每个粒子上都连着相当长的箭头,随意指着任何一个方向,那这幅示意图将会相当混乱。

因此,通常会调节向量的大小比例让示意图更干净直观。重要的不是每一个向量的具体长度,而是不同向量之间的长度差别。

一些绘图软件常用的另一个方法是,给每个向量着色代表相对长度。比如,下面这张图片就展示了在向量场中颜色的运用:深蓝色箭头表示的长度会比浅蓝色箭头更短一些(尽管实际看起来它们的长度是一样的)。

*向量场颜色的运用

现在让我们从数学方面来想想,到底什么是向量场。二维空间中的每一个点都代表着一个二维向量,我们可以把这种对应关系看成一个向量值函数(二元的),它的输入是二维空间中的点 (x, y) ,输出是一个二维向量。

举个例子,我用来生成上面这个液体流动的向量场的函数为:

由于这个函数的输入和输出都是二维的,所以描绘它实际需要四维图像,但我们仅仅通过上面这个二维图像就几乎把它描绘的很完整了!而且上面这幅图像可以让人更直观得看出液体在打旋儿。


实例1:恒等函数的图像

考虑函数:

给定一个二维空间中的点,如(3, 4),则对应着一个有相同坐标的向量。比如下图就是对应着(3, 4)的向量的图像:如果对平面上很多很多点都做对应,并调节向量使得不那么混乱,就可以得到一张这样的图像:

*恒等函数向量场

实例2:无水平方向分量的函数的图像

考虑函数:

由于输出的x轴分量恒为0,所以向量场中的向量方向应该为竖直向上或竖直向下。

输出的y轴分量表示每一个向量的高度。因为这里有一个y作为因子,所以向量离x轴越远,箭头应该越长,越靠近x轴箭头越短。同时有另外一个因子Sin(x),所以从左向右看,向量的高度会上下振荡。

*无水平方向分量的函数向量场

实例3:用图像来画图像

考虑函数:



孰能生巧,让我们再看一个二维的向量值函数,想一想它的向量场应该是什么样。由于输出的值与x无关,所以如果把向量场中的向量从左向右平移依然保持不变。

因为输出的第一个分量是1,所以所有的向量都是偏向右的。而第二个分量为 y^2 - y, 它应该长什么样呢?我们可以先看一下单变量函数 g(y)=y^2 -y 的图像,这个表达式的因子为 y(y-1),所以它的根为0和1,又因为它是首项系数为正的二次函数,所以它是开口向上的抛物线,图像为

*首项系数为正的二次函数抛物线

从图像可以看出,这个函数在[0, 1]之外是正的,而且在[0, 1]之内是较小的负数。这时候再看向量场的函数:

每个向量的y轴分量在0到1之间会是较小的负数,也就是说会微微偏下。当y离那个区域越来越远的时候,不管是往上看还是往下看,向量的y轴分量都会正向增加,所以向量会越来越偏向竖直向上。大概画出来是这样:

*二维的向量值函数向量场

04

三维中的向量场

我们在三维空间中也可以做同样的事,比如模拟气流。与二维类似,我们可以将三维空间中的点与三维向量一一对应起来,并且只画出其中的一些样本向量。

下面的视频展示了这样的三维向量场可能是什么样的,并用更接近红色来表示向量更长,更接近蓝色表示向量更短。

这一次,用来表示向量场的函数定义域和值域都是三维的,因此它的图像需要六个维度!

实例:三维向量场

视频中所用函数:

画出这个三维向量场会比较困难,并且即使通过一些绘图软件画出来了,向量图像之间也更容易互相干扰,很难具体看清向量场的情况。因此,当你只需要模糊的向量场图像时,这是一种很有效的可视化方法,但如果需要精确的图像就没那么有用了。


05

总结


今天的课上完了,有不清楚的地方欢迎留言!


1.向量场中的向量与空间中的点一一对应。

2.向量场与液体流动的对应。

3.用向量场来表示定义域与值域相同维度的函数。

4.向量场中,用来表示向量长度的箭头一般不是按照真实比例绘制的;

5.但是单个向量之间比较时,箭头长短的比例则是真实精准的。

6.有时候也可以用颜色来代表向量长度。




——
算法艺术实验室
探索数学与编程在设计与艺术中一切之可能
用运算和美学让你变更酷


探索编程和数学在艺术和设计中一切可能性,形式不限,艺术创作,跨界合作,展览展示,品牌活动等。建设和维护中国本土创意编程和算法艺术社群、开展线上教学、举办社群活动、策划举办艺术展览、挖掘发现本地社群里值得被传播的人和事通过自媒体进行传播。

发布于 2018-10-10 08:36