CCG 00-01:数学符号不是密码——怎样逐字读懂公式

本课只解决一个问题

看到下面这行时,怎样知道每个符号在说什么?

E(u)=12∑(i,j)∈Ewij∥ui−uj∥2.E(u)=\frac12\sum_{(i,j)\in E}w_{ij}\|u_i-u_j\|^2.

现在不需要理解这个能量的几何意义。本课只训练一件事:把公式翻译成可以逐步执行的语言。

读完以后,你应该能区分对象、运算、条件和结论,并且知道自己究竟卡在哪个符号上。

1. 公式首先是一句话

普通句子有名词、动词和修饰语。公式也一样:

角色数学中的例子作用
对象x,ui,Ex,u_i,E正在讨论什么
运算+,−,∑,∣⋅∣+,-,\sum,|\cdot|对对象做什么
关系=,<,∈=,<,\in两边是什么关系
条件x>0x>0、(i,j)∈E(i,j)\in E哪些对象可以参与

例如

x2+1=5x^2+1=5

应读成:“寻找一个数xx,使xx 的平方加一等于五。”这里x2+1x^2+1 是表达式,整行是方程。

2. 变量、常量与下标

xx 是变量,表示它可以取不同值。π\pi 通常表示固定常数。字母本身没有神秘含义,含义由上下文声明。

下标用来区分同类对象:

u1,u2,u3u_1,u_2,u_3

表示三个量,而不是u×1,u×2,u×3u\times1,u\times2,u\times3。在网格里,uiu_i 常表示第ii 个顶点的二维坐标。

双下标wijw_{ij} 表示一个同时依赖i,ji,j 的量,例如顶点ii 和顶点jj 之间的边权。

3. 三种经常混淆的等号

3.1 相等关系

2+3=52+3=5

两边已经是同一个数。

3.2 定义

f(x):=x2+1f(x):=x^2+1

:=:= 读作“定义为”。这是在规定名字ff 的含义。

3.3 程序赋值

x = x + 1

这不是数学等式,而是“先读取旧的xx,加一,再把结果保存为新的xx”。数学中不可能有x=x+1x=x+1,程序中却可以赋值。

4. 集合与属于

集合是一批对象组成的整体:

V={0,1,2,3}.V=\{0,1,2,3\}.

i∈Vi\in V 读作“ii 属于集合VV”。i∉Vi\notin V 表示不属于。

网格通常写作

M=(V,E,F),M=(V,E,F),

其中VV 是顶点集合,EE 是边集合,FF 是三角形集合。此处括号不是乘法,而是在说一个网格由三类数据组成。

5. 求和符号怎样执行

先看有限求和:

∑i=13i2=12+22+32=14.\sum_{i=1}^{3}i^2=1^2+2^2+3^2=14.

执行顺序是:

  1. 令i=1i=1,计算i2i^2;
  2. 再令i=2i=2;
  3. 再令i=3i=3;
  4. 把三次结果相加。

再看网格求和:

∑(i,j)∈Ewij∥ui−uj∥2.\sum_{(i,j)\in E}w_{ij}\|u_i-u_j\|^2.

它表示“遍历每条边(i,j)(i,j),计算该边的一项,再全部相加”。上标和下标共同规定了遍历范围。

6. 一个完整的逐字翻译

回到开头的公式:

E(u)=12∑(i,j)∈Ewij∥ui−uj∥2.E(u)=\frac12\sum_{(i,j)\in E}w_{ij}\|u_i-u_j\|^2.

逐字解释:

  • uu:所有顶点的新坐标组成的整体;
  • E(u)E(u):把坐标uu 输入函数EE 后得到的数;
  • (i,j)∈E(i,j)\in E:遍历每条网格边;
  • ui−uju_i-u_j:边两端坐标的差;
  • ∥ui−uj∥\|u_i-u_j\|:这个差向量的长度;
  • 平方:让正负方向不影响结果,并更重地惩罚大差异;
  • wijw_{ij}:这一条边的重要程度;
  • ∑\sum:把所有边的贡献相加;
  • 1/21/2:便于后面求导,不改变最小值位置。

所以整句是:“把每条边两端坐标差的平方按权重相加,得到坐标配置uu 的能量。”

7. 先检查“类型”,再计算

公式错误常常不是算错,而是类型不匹配。若ui∈R2u_i\in\mathbb R^2,则:

表达式类型
uiu_i二维向量
ui−uju_i-u_j二维向量
∣ui−uj∣|u_i-u_j|标量
∣ui−uj∣2|u_i-u_j|^2标量
E(u)E(u)标量

两个向量可以相加;一个二维向量不能直接等于一个普通数字。以后读矩阵公式,也先做这种类型检查。

8. 常见误区

  1. 字母相同不保证含义相同,必须看当前文章的定义。
  2. f(x)f(x) 不是f×xf\times x,而是把xx 输入函数ff。
  3. EE 既可能是边集合,也可能是能量函数;同一公式中应避免重名。
  4. “公式看懂”不是背住形状,而是能把每个符号翻译出来。

9. 自测与答案

题 1。 把S=∑i=02(i+1)S=\sum_{i=0}^{2}(i+1) 展开。

答案。S=(0+1)+(1+1)+(2+1)=6S=(0+1)+(1+1)+(2+1)=6。

题 2。 若pi∈R3p_i\in\mathbb R^3,那么pi−pjp_i-p_j 和∥pi−pj∥\|p_i-p_j\| 分别是什么类型?

答案。 前者是三维向量,后者是非负标量。

题 3。 用一句中文解释L=∑(i,j)∈E∥pi−pj∥L=\sum_{(i,j)\in E}\|p_i-p_j\|。

答案。 遍历所有边,把每条边的长度相加,得到网格总边长。

下一课

00-02 函数与坐标:输入、输出和参数化