关于函数内积的思考
定义内积\点积的核心目的在于描述广义的角度(或称相关性)
1.起源于点积
u ⃗ ⋅ v ⃗ \vec{u} \cdot \vec{v} u⋅v
点积是人为定义的一种运算方式,描述了向量的长度和角度,其有两种等价的定义方式,代数定义和几何定义。
代数定义:
在线性空间中引入笛卡尔坐标系,坐标和向量一一对应,此时坐标等价于向量,通过对向量坐标的运算可获得点积结果。
二维向量
u
⃗
=
[
u
1
u
2
]
,
v
⃗
=
[
v
1
v
2
]
\vec{u} =\begin{bmatrix}u_{1} \\u_{2} \end{bmatrix}, \quad \vec{v} =\begin{bmatrix}v_{1} \\v_{2} \end{bmatrix}
u=[u1u2],v=[v1v2]
u ⃗ ⋅ v ⃗ = [ u 1 u 2 ] [ v 1 v 2 ] = u 1 v 1 + u 2 v 2 \vec{u} \cdot \vec{v} = \begin{bmatrix}u_{1} &u_{2} \end{bmatrix}\begin{bmatrix}v_{1} \\v_{2} \end{bmatrix} = u_{1}v_{1}+u_{2}v_{2} u⋅v=[u1u2][v1v2]=u1v1+u2v2
n维向量:
u
⃗
=
[
u
1
u
2
⋮
u
n
]
,
v
⃗
=
[
v
1
v
2
⋮
v
n
]
\vec{u} = \begin{bmatrix}u_{1} \\u_{2} \\\vdots \\u_{n} \end{bmatrix}, \quad \vec{v} = \begin{bmatrix}v_{1} \\v_{2} \\\vdots \\v_{n} \end{bmatrix}
u=⎣⎢⎢⎢⎡u1u2⋮un⎦⎥⎥⎥⎤,v=⎣⎢⎢⎢⎡v1v2⋮vn⎦⎥⎥⎥⎤
u ⃗ ⋅ v ⃗ = ∑ i = 1 n u i v i = u 1 v 1 + u 2 v 2 + ⋯ + u n v n \vec{u} \cdot \vec{v} = \sum_{i=1}^{n} u_{i} v_{i} = u_{1} v_{1} +u_{2} v_{2} +\dots+ u_{n} v_{n} u⋅v=i=1∑nuivi=u1v1+u2v2+⋯+unvn
几何定义
通过定义向量的长度和角度去描述向量。
u
⃗
⋅
v
⃗
=
∣
u
⃗
∣
∣
v
⃗
∣
cos
θ
\vec{u} \cdot \vec{v} =\left | \vec{u} \right | \left | \vec{v} \right |\cos \theta
u⋅v=∣u∣∣v∣cosθ
定义向量长度的计算方式:
二
维
向
量
:
∣
u
⃗
∣
=
u
1
2
+
u
2
2
=
(
∑
i
=
1
2
u
i
2
)
1
2
n
维
向
量
:
∣
u
⃗
∣
=
u
1
2
+
u
2
2
+
⋯
+
u
n
2
=
(
∑
i
=
1
n
u
i
2
)
1
2
\begin{aligned} &二维向量:\left | \vec{u} \right | =\sqrt{u_{1}^{2} + u_{2}^{2}} = (\sum_{i=1}^{2} u_{i}^{2})^{\frac{1}{2} } \\&n维向量:\left | \vec{u} \right | =\sqrt{u_{1}^{2} + u_{2}^{2}+\cdots + u_{n}^{2}} = (\sum_{i=1}^{n} u_{i}^{2})^{\frac{1}{2} } \end{aligned}
二维向量:∣u∣=u12+u22=(i=1∑2ui2)21n维向量:∣u∣=u12+u22+⋯+un2=(i=1∑nui2)21
(注:我们熟悉的欧几里得空间下的距离(长度)公式,其实是由点积运算给出的)
∣
u
⃗
∣
=
u
1
2
+
u
2
2
=
(
u
⃗
⋅
u
⃗
)
1
2
\left | \vec{u} \right | =\sqrt{u_{1}^{2} + u_{2}^{2}} =(\vec{u} \cdot \vec{u})^{\frac{1}{2} }
∣u∣=u12+u22=(u⋅u)21
有一个普遍的误区,认为点积结果是投影、分量,严格的讲,不正确,只有当向量与单位向量做点积时,结果的数值才与投影、分量相等,但点积结果同时包含了两者的长度、夹角信息,所以不可能等价于一个数字。
并且投影与分量也是不同的概念
投影以整个空间的单位长度为单位长度,分量以被投影向量的长度为单位长度
投
影
=
点
积
结
果
被
投
影
向
量
长
度
投影=\frac{点积结果}{被投影向量长度}
投影=被投影向量长度点积结果
u
⃗
在
v
⃗
方
向
上
的
投
影
=
∣
u
⃗
∣
cos
θ
=
u
⃗
⋅
v
⃗
∣
v
⃗
∣
\vec{u}在\vec{v} 方向上的投影 =\left | \vec{u} \right | \cos \theta =\frac{\vec{u} \cdot \vec{v} }{\left | \vec{v} \right |}
u在v方向上的投影=∣u∣cosθ=∣v∣u⋅v
分
量
=
点
积
结
果
被
投
影
向
量
长
度
2
=
点
积
结
果
被
投
影
向
量
与
自
己
的
点
积
分量=\frac{点积结果}{被投影向量长度 ^2}=\frac{点积结果}{被投影向量与自己的点积}
分量=被投影向量长度2点积结果=被投影向量与自己的点积点积结果
u
⃗
在
v
⃗
上
的
分
量
=
u
⃗
⋅
v
⃗
∣
v
⃗
∣
∣
v
⃗
∣
=
u
⃗
⋅
v
⃗
v
⃗
⋅
v
⃗
\begin{aligned} \vec{u}在\vec{v} 上的分量 &=\frac{\vec{u} \cdot \vec{v} }{\left | \vec{v} \right |\left | \vec{v} \right |} \\ &=\frac{\vec{u} \cdot \vec{v} }{\vec{v} \cdot \vec{v} } \end{aligned}
u在v上的分量=∣v∣∣v∣u⋅v=v⋅vu⋅v
2.点积的意义
因为代数定义仅仅运算数字,难以进行分析,所以我们从等价的几何定义分析其意义
u
⃗
⋅
v
⃗
=
∣
u
⃗
∣
∣
v
⃗
∣
cos
θ
\vec{u} \cdot \vec{v} =\left | \vec{u} \right | \left | \vec{v} \right |\cos \theta
u⋅v=∣u∣∣v∣cosθ
由几何定义的表达式可知,点积的结果中包含了两个向量的长度和夹角信息
长
度
信
息
:
∣
u
⃗
∣
∣
v
⃗
∣
夹
角
信
息
:
cos
θ
\begin{aligned} &长度信息: \left | \vec{u} \right | \left | \vec{v} \right | \\&夹角信息:\cos \theta \end{aligned}
长度信息:∣u∣∣v∣夹角信息:cosθ
其中的夹角信息很有价值,它反映了向量间的相关性(或者说接近程度),如果两个向量的夹角越小,说明形态很接近,相关性很强。(正是这条性质,使得点积/内积运算拥有了很大的威力)
不过三角函数已经可以描述角度了,为什么还要引入点积运算去描述角度的?
从几何意义的点积结果看,描述角度的是三角函数,确实如此,但问题在于,有可能三角函数不容易计算,甚至在高维空间、其他空间中,不一定存在这种可以直接计算出角度信息的三角函数运算法则,所以更广泛描述角度的方式是,先通过代数定义计算出点积结果,再计算长度信息,然后从点积结果中过滤掉长度信息,剩下的就是抽象的广义角度。
所以引入点积运算的目的是同时定义出长度和角度(但这导致点积运算不纯粹,因为点积结果融和了长度、角度信息)
3.描述向量间的相关性
必须注意的是,点积的结果融和了长度信息和夹角信息,因为相关性和向量的长度无关,所以当我们只关心相关性时,长度信息就变成了干扰,所以利用点积衡量相关性前,应该对向量做单位化(归一化、标准化)处理,剔除长度信息,只保留夹角信息。
1.不剔除长度信息,无法准确描述相关性:
a
⃗
=
[
1
1
]
,
b
⃗
=
[
0
1
]
\vec{a} =\begin{bmatrix}1 \\1 \end{bmatrix}, \quad \vec{b} =\begin{bmatrix}0 \\1 \end{bmatrix}
a=[11],b=[01]
a ⃗ ⋅ b ⃗ = [ 1 1 ] [ 0 1 ] = 1 2 a ⃗ ⋅ b ⃗ = [ 2 2 ] [ 0 1 ] = 2 \begin{aligned} &\vec{a} \cdot \vec{b}=\begin{bmatrix}1 &1 \end{bmatrix}\begin{bmatrix}0 \\1 \end{bmatrix}=1 \\ &2\vec{a} \cdot \vec{b}=\begin{bmatrix}2 &2 \end{bmatrix}\begin{bmatrix}0 \\1 \end{bmatrix}=2 \end{aligned} a⋅b=[11][01]=12a⋅b=[22][01]=2
2.剔除长度信息:单位化处理,将所有向量的长度(模长)均变换到1
a
′
⃗
=
a
⃗
∥
a
⃗
∥
=
[
1
1
]
1
2
+
1
2
=
[
2
2
2
2
]
a
′
′
⃗
=
2
a
⃗
∥
2
a
⃗
∥
=
[
2
2
]
2
2
+
2
2
=
[
2
2
2
2
]
b
′
⃗
=
b
⃗
∥
b
⃗
∥
=
[
0
1
]
0
2
+
1
2
=
[
0
1
]
\begin{aligned} &\vec{{a}' } = \frac{\vec{a} }{\left \| \vec{a} \right \| } = \frac{\begin{bmatrix}1 &1 \end{bmatrix}}{\sqrt{1^{2}+1^{2} } } =\begin{bmatrix}\frac{\sqrt{2} }{2} &\frac{\sqrt{2} }{2} \end{bmatrix} \\ &\vec{{a}''} = \frac{2\vec{a} }{\left \| 2\vec{a} \right \| } = \frac{\begin{bmatrix}2 &2 \end{bmatrix}}{\sqrt{2^{2}+2^{2} } } =\begin{bmatrix}\frac{\sqrt{2} }{2} &\frac{\sqrt{2} }{2} \end{bmatrix} \\ &\vec{{b}' } = \frac{\vec{b} }{\left \| \vec{b} \right \| } = \frac{\begin{bmatrix}0 &1 \end{bmatrix}}{\sqrt{0^{2}+1^{2} } } =\begin{bmatrix}0 &1 \end{bmatrix} \end{aligned}
a′=∥a∥a=12+12[11]=[2222]a′′=∥2a∥2a=22+22[22]=[2222]b′=∥∥∥b∥∥∥b=02+12[01]=[01]
a ⃗ ′ ⋅ b ⃗ ′ = [ 2 2 2 2 ] [ 0 1 ] = 2 2 a ⃗ ′ ′ ⋅ b ⃗ ′ = [ 2 2 2 2 ] [ 0 1 ] = 2 2 \begin{aligned} &{\vec{a}}' \cdot {\vec{b}}' =\begin{bmatrix}\frac{\sqrt{2} }{2} &\frac{\sqrt{2} }{2} \end{bmatrix}\begin{bmatrix}0 \\1 \end{bmatrix}=\frac{\sqrt{2} }{2} \\&{\vec{a}}'' \cdot {\vec{b}}' =\begin{bmatrix}\frac{\sqrt{2} }{2} &\frac{\sqrt{2} }{2} \end{bmatrix}\begin{bmatrix}0 \\1 \end{bmatrix}=\frac{\sqrt{2} }{2} \end{aligned} a′⋅b′=[2222][01]=22a′′⋅b′=[2222][01]=22
4.函数内积
定义函数内积运算(实数域下)
⟨
f
(
x
)
,
g
(
x
)
⟩
=
∫
a
b
f
(
x
)
g
(
x
)
d
x
\left \langle f(x),g(x) \right \rangle =\int_{a}^{b} f(x)g(x)dx
⟨f(x),g(x)⟩=∫abf(x)g(x)dx
从n维向量的点积理解函数内积
在
f
(
x
)
\ f(x)
f(x)和
g
(
x
)
\ g(x)
g(x)函数曲线上选部分点作为n维向量
f
⃗
=
[
f
1
f
2
⋯
f
n
]
g
⃗
=
[
g
1
g
2
⋯
g
n
]
\begin{aligned} \vec{f} = \begin{bmatrix}f_{1} &f_{2} &\cdots &f_{n} \end{bmatrix} \\ \vec{g} = \begin{bmatrix}g_{1} &g_{2} &\cdots &g_{n} \end{bmatrix} \end{aligned}
f=[f1f2⋯fn]g=[g1g2⋯gn]
对n维向量做点积,得到点积结果
f
⃗
⋅
g
⃗
=
∑
i
=
1
n
f
i
g
i
(
1
)
\vec{f} \cdot \vec{g} =\sum_{i=1}^{n} f_{i}g_{i} \quad (1)
f⋅g=i=1∑nfigi(1)
当
n
→
∞
\ n\to\infty
n→∞时,就是“函数的点积”
lim
n
→
∞
∑
i
=
1
n
f
i
g
i
(
2
)
\lim_{n \to \infty} \sum_{i=1}^{n} f_{i}g_{i}\quad (2)
n→∞limi=1∑nfigi(2)
但此数列求和后发散,发散的数列没法计算,所以人为的对(1)式乘上
△
x
\triangle x
△x,转为求黎曼和,也就是黎曼积分。(乘
△
x
\triangle x
△x的原因分析见后文)
(
∑
i
=
1
n
f
i
g
i
)
△
x
(
3
)
(\sum_{i=1}^{n} f_{i}g_{i})\bigtriangleup x \quad (3)
(i=1∑nfigi)△x(3)
对(3)式的
n
\ n
n求极限:
lim
n
→
∞
(
∑
i
=
1
n
f
i
g
i
)
△
x
=
∫
a
b
f
(
x
)
g
(
x
)
d
x
(
4
)
\lim_{n \to \infty} (\sum_{i=1}^{n} f_{i}g_{i})\bigtriangleup x =\int_{a}^{b} f(x)g(x)dx \quad (4)
n→∞lim(i=1∑nfigi)△x=∫abf(x)g(x)dx(4)
将(4)中右式的积分定义为内积的代数计算方式,并采用尖括号+逗号的书写方式代表这种运算:
⟨
f
(
x
)
,
g
(
x
)
⟩
=
∫
a
b
f
(
x
)
g
(
x
)
d
x
(
5
)
\left \langle f(x),g(x) \right \rangle =\int_{a}^{b} f(x)g(x)dx \quad (5)
⟨f(x),g(x)⟩=∫abf(x)g(x)dx(5)
分析乘 △ x \triangle x △x的根本原因
(2)式到(3)式可能会难以理解,因为按照n维向量的推广,乘积+求和就已经完成推广了,为什么要额外引入一个 △ x \triangle x △x,如果直接凭空引入一个量,那这推广的内积真的是内积吗,它还具备点积的描述长度和角度的能力吗?
答案是肯定的
首先,引入 △ x \triangle x △x,一定程度上是因为(2)式发散不能用,取平均,求黎曼积分之后才变得可计算。
最重要的,其实是我们的目的,如果目的达到了,采用何种形式都是可以的。
当初定义点积运算的目的是为了描述长度、角度,所以如果由(5)式定义出的内积运算具备了同时描述长度和角度的能力,那它就是正确的
我们暂且认为(5)式是成立的,思考其长度定义
点积运算带来的长度定义:
∣
u
⃗
∣
=
(
u
⃗
⋅
u
⃗
)
1
2
=
u
1
2
+
u
2
2
\left | \vec{u} \right | =(\vec{u} \cdot \vec{u})^{\frac{1}{2} } =\sqrt{u_{1}^{2} + u_{2}^{2}}
∣u∣=(u⋅u)21=u12+u22
内积运算带来的长度定义:(长度被推广为范数,原有的两根竖线,变为四根)
∥
f
(
x
)
∥
=
⟨
f
(
x
)
,
f
(
x
)
⟩
1
2
=
∫
a
b
f
(
x
)
f
(
x
)
d
x
\left \| f(x) \right \| = \left \langle f(x),f(x) \right \rangle ^{\frac{1}{2} } =\sqrt{\int_{a}^{b} f(x)f(x)dx}
∥f(x)∥=⟨f(x),f(x)⟩21=∫abf(x)f(x)dx
此处推广的长度定义是符合认知的,两者结构一模一样
按照前文点积运算描述角度方式,只需得知点积结果、长度信息,即可反推出角度信息,而由(5)式定义的内积运算,有收敛的运算结果,也定义了长度的计算方式,自然可以反推出广义的角度信息,所以目的达到了,(5)式具备同时描述长度和角度的能力,它确实站得住脚。
我们人为乘上了 △ x \triangle x △x再取极限(相当于乘了一个常数),看似改变了推广的内积运算结构,会影响长度信息(不影响角度信息,因为角度代表相关性,而相关性和长度、大小无关),实际不然,因为长度不是绝对的,不同空间下的长度是不同的,这是一个相对量,一个按照内积运算所定义出来的量。所以当内积运算法则改变时,长度的定义也发生了变化
乘上 △ x \triangle x △x再取极限时,欧几里得空间的长度由点积运算定义,推广点积为内积运算后,欧几里得空间演变为内积空间,其长度由内积运算定义,原有的点积运算不再适用
5.由内积看傅里叶系数
以一个部分正弦展开的函数
f
(
x
)
f(x)
f(x)为例,容易理解,
f
(
x
)
f(x)
f(x)是由基函数
s
i
n
n
π
l
sin\frac{n\pi }{l}
sinlnπ的线性叠加组成
f
(
x
)
=
∑
n
=
1
∞
A
n
s
i
n
n
π
l
x
f(x)=\sum_{n=1}^{\infty } A_{n} sin\frac{n\pi }{l} x
f(x)=n=1∑∞Ansinlnπx
其傅里叶系数
A
n
\ A_{n}
An为:
A
n
=
2
l
∫
0
l
f
(
x
)
s
i
n
n
π
l
x
⋅
d
x
(
6
)
A_{n}=\frac{2}{l}\int_{0}^{l} f(x)sin\frac{n\pi }{l} x\cdot dx\quad (6)
An=l2∫0lf(x)sinlnπx⋅dx(6)
和向量的分解完全一样,其实
A
n
\ A_{n}
An就是
f
(
x
)
f(x)
f(x)在各个基函数
s
i
n
n
π
l
sin\frac{n\pi }{l}
sinlnπ上的分量
(
分
量
=
内
积
结
果
基
函
数
的
长
度
2
=
内
积
结
果
基
函
数
与
自
己
的
内
积
)
(分量=\frac{内积结果}{基函数的长度^{2}}=\frac{内积结果}{基函数与自己的内积})
(分量=基函数的长度2内积结果=基函数与自己的内积内积结果)
A
n
=
⟨
f
(
x
)
,
s
i
n
n
π
l
x
⟩
∥
s
i
n
n
π
l
x
,
s
i
n
n
π
l
x
∥
2
=
⟨
f
(
x
)
,
s
i
n
n
π
l
x
⟩
⟨
s
i
n
n
π
l
x
,
s
i
n
n
π
l
x
⟩
\begin{aligned} A_{n} &= \frac{\left \langle f(x),sin\frac{n\pi}{l}x \right \rangle } {\left \| sin\frac{n\pi}{l}x,sin\frac{n\pi}{l}x \right \| ^2} \\ &=\frac{\left \langle f(x),sin\frac{n\pi}{l}x \right \rangle } {\left \langle sin\frac{n\pi}{l}x,sin\frac{n\pi}{l}x \right \rangle } \end{aligned}
An=∥∥sinlnπx,sinlnπx∥∥2⟨f(x),sinlnπx⟩=⟨sinlnπx,sinlnπx⟩⟨f(x),sinlnπx⟩
推导:
将
A
n
\ A_{n}
An改写为:
A
n
=
∫
0
l
f
(
x
)
s
i
n
n
π
l
x
⋅
d
x
l
2
(
7
)
A_{n}=\frac{\int_{0}^{l} f(x)sin\frac{n\pi }{l} x\cdot dx }{\frac{l}{2}}\quad (7)
An=2l∫0lf(x)sinlnπx⋅dx(7)
其中
2
l
\frac{2}{l}
l2的由来:
l
2
=
∫
0
l
s
i
n
n
π
l
x
⋅
s
i
n
n
π
l
x
⋅
d
x
=
∥
s
i
n
n
π
l
x
,
s
i
n
n
π
l
x
∥
2
=
⟨
s
i
n
n
π
l
x
,
s
i
n
n
π
l
x
⟩
(
8
)
\begin{aligned} \frac{l}{2} &=\int_{0}^{l} sin\frac{n\pi }{l}x \cdot sin\frac{n\pi }{l}x\cdot dx \\ &=\left \| sin\frac{n\pi }{l}x,sin\frac{n\pi }{l}x \right \| ^2 \\ &=\left \langle sin\frac{n\pi }{l}x,sin\frac{n\pi }{l}x \right \rangle \quad (8) \end{aligned}
2l=∫0lsinlnπx⋅sinlnπx⋅dx=∥∥∥sinlnπx,sinlnπx∥∥∥2=⟨sinlnπx,sinlnπx⟩(8)
所以
2
l
\frac{2}{l}
l2就是基函数
s
i
n
n
π
l
x
sin\frac{n\pi }{l}x
sinlnπx与自己的内积结果、长度的平方
分母:
∫
0
l
f
(
x
)
s
i
n
n
π
l
x
⋅
d
x
=
⟨
f
(
x
)
,
s
i
n
n
π
l
x
⟩
(
9
)
\int_{0}^{l} f(x)sin\frac{n\pi }{l} x\cdot dx =\left \langle f(x),sin\frac{n\pi }{l} x \right \rangle \quad (9)
∫0lf(x)sinlnπx⋅dx=⟨f(x),sinlnπx⟩(9)
将(8)、(9)式代入(7)式中即可得到(6)式
6.由内积思考伽辽金法
加权余量法是建立在变分原理、求解微分方程近似解的一种方法。其核心部分,是令余量与权函数的内积为0。
其中伽辽金方法的精度最高,因为直接选取了构成近似函数的基函数作为权函数,在思维层面容易理解为何伽辽金方法的精度最高。
因为如果近似函数与构成它的基函数内积为0,说明近似函数在基函数上的分量为0,而近似函数本身就只是由基函数构成的,如果在各个基函数上分量为0,则只能可是其本身为0,才满足。
7.其他概念
空间=集合+结构
集合可以是数,如常见的实数域、复数域
结构指最底层的运算法则,如加减乘除
几种运算法则:
加法运算:加减法
数乘运算:乘除法
范数运算:有多种定义,但本质是定义了距离(或称长度、大小)
内积运算:有多种定义,但本质是定义了角度,并且恰好自带了一种距离的定义
距离((或称长度、大小)是相对的概念,所以存在很多种范数运算
角度的本质是相关性(或称相似性、接近程度)
几种空间结构:
线性空间结构(简称线性结构) = 加法 + 数乘
内积空间结构 = 线性结构 + 内积运算
在内积空间中我们可以讨论长度、角度