人们在研究各种实际数学问题时发现,虽然他们的研究对象不同(序列、函数、欧式空间中的点),但研究方法和技巧(距离、内积、逼近、微分)本质上是一样的。
为了研究更加抽象的空间,并且运用已知空间的一些方法,对特殊空间做同样的变换和操作,我们需要定义一种抽象的长度,这种长度称为范数。
知识图谱:
Banach空间 -> 范数 -> 度量空间
1、度量空间(Metric Space)
设 X X X为集合, d d d为 X × X X \times X X×X上的实值函数。称d为X上的度量(也称为距离),若d满足下述公理
1、非负性:
2、非退化性:
3、对称性:
4、三角不等式:
class Xtype:
pass
def d(x, y):
# type: (Xtype, Xtype) -> int
raise NotImplementedError()
X = set() # type: Set[Xtype]
MetricSpace = (X, d) # type: Tuple[Set[Xtype], Callable[[Xtype, Xtype], int]]
我们讲度量空间 ( X , d ) (X,d) (X,d),实际上是指一个tuple
或一个类,其中包含了集合 X X X和函数 d d d。这里 X X X用另外一种表述也是可以的,就是类型Xtype
。我们用到 X X X的地方主要有2个:
- 表示 x ∈ X x \in X x∈X。假设
X = set()
,那么 x ∈ X x \in X x∈X其实就是x in X
;如果假设X = Xtype
,那么 x ∈ X x \in X x∈X其实就是isinstance(x, X)
。 - 另外一种就是表示“ d d d为 X × X X \times X X×X上的实值函数”,中间这个乘号颇有意思,似乎表示乘起来?
回到我们最开始的定义:
设 X X X为集合, d d d为 X × X X \times X X×X上的实值函数。
那么X应该是一个集合set()
咯?但是后一句“ d d d为 X × X X \times X X×X上的实值函数”又怎么解释呢?似乎在说 X X X为一个类型type
,函数 d d