8.1 内积定义与表示
双线性函数
线性代数里的双线性函数,是将线性空间里的两个变量,映射为一个实数。它必须要符合以下四个要求,才能叫做双线性函数:
- f ( u , ( w 1 + ( w 2 ) = f ( ( u , ( w 1 ) + f ( ( u , ( w 2 ) f(\bold u,(\bold w_1+(\bold w_2)=f((\bold u,(\bold w_1)+f((\bold u,(\bold w_2) f(u,(w1+(w2)=f((u,(w1)+f((u,(w2)
- f ( ( u 1 + ( u 2 , w ) = f ( ( u 1 , ( w ) + f ( ( u 2 , ( w ) f((\bold u_1+(\bold u_2,w)=f((\bold u_1,(\bold w)+f((\bold u_2,(\bold w) f((u1+(u2,w)=f((u1,(w)+f((u2,(w)
- f ( k u , w ) = k f ( u , w ) f(k\bold u,\bold w)=kf(\bold u,\bold w) f(ku,w)=kf(u,w)
- f ( u , k w ) = k f ( u , w ) f(\bold u,k\bold w)=kf(\bold u,\bold w) f(u,kw)=kf(u,w)
以上四点保证了线性,所以叫线性性。
内积
内积也是一种双线性函数,不过定义更加严格,加了两点要求:对称性和正定性。内积一般就不用函数符号 f f f,而是直接一对括号就可以了。
- 对称性, ( u , w ) = ( w , u ) (\bold u,\bold w)=(\bold w,\bold u) (u,w)=(w,u)
- 正定性, ( u , w ) ≥ 0 (\bold u,\bold w)\ge 0 (u,w)≥0
内积表示
内积有很多,千奇百怪,可以用度量矩阵表示内积,这样形式上就统一了。度量矩阵在外国教材里一般叫度量张量Mertic tensor,因为2-张量就是矩阵嘛。当然度量矩阵不是内积专有的,所有双线性函数都有度量矩阵,它的定义如下:
A
=
(
(
e
1
,
e
1
)
(
e
1
,
e
2
)
⋯
(
e
1
,
e
n
)
(
e
2
,
e
1
)
(
e
2
,
e
2
)
⋯
(
e
2
,
e
n
)
⋮
⋮
⋱
⋮
(
e
n
,
e
1
)
(
e
n
,
e
2
)
⋯
(
e
n
,
e
n
)
)
A=\begin{pmatrix} (e_1,e_1) & (e_1,e_2) & \cdots & (e_1,e_n)\\ (e_2,e_1) & (e_2,e_2) & \cdots & (e_2,e_n)\\ \vdots & \vdots & \ddots & \vdots\\ (e_n,e_1) & (e_n,e_2) & \cdots & (e_n,e_n)\\ \end{pmatrix}
A=
(e1,e1)(e2,e1)⋮(en,e1)(e1,e2)(e2,e2)⋮(en,e2)⋯⋯⋱⋯(e1,en)(e2,en)⋮(en,en)
公式中的
e
1
,
e
2
,
⋯
,
e
n
e_1,e_2,\cdots,e_n
e1,e2,⋯,en是任意一组基,一般情况下用自然基。有了度量矩阵后,计算内积就可以使用
(
α
,
β
)
=
α
T
A
β
(\alpha,\beta)=\alpha^TA\beta
(α,β)=αTAβ来计算了。内积的度量矩阵必须是实对称正定矩阵。
这个时候,用代码计算内积就非常容易了:
# 内积
@staticmethod
def inner_product(vector1, vector2, matrix=None):
a = Matrix(Matrix([vector1]).transpose())
b = Matrix([vector2])
# 如果没定义内积矩阵,则是标准内积
if matrix is None:
return (a * b).vectors[0][0]
# 如果长度小了呢?
return (a * matrix * b).vectors[0][0]
4 柯西-施瓦茨不等式
这个不等式的内容就是:
(
x
⋅
y
)
≤
∥
x
∥
∥
y
∥
(x\cdot y)\le \parallel x\parallel\parallel y\parallel
(x⋅y)≤∥x∥∥y∥
公式里的范数是内积导出的范数,
∥
x
∥
=
(
x
,
x
)
\parallel x\parallel=\sqrt{(x,x)}
∥x∥=(x,x)。
相关文章
- 高等数学学习笔记——第十四讲——函数极限的概念(2. 函数在有限点处极限定义)「建议收藏」
- 如何用matlab编写分段函数_请教各位怎样用matlab定义一个分段函数MATLAB分段函数…[通俗易懂]
- 2022-09-07:给你一个由正整数组成的数组 nums 。 数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。 例如,序列 [4,6,16
- printer和typewriter_java类中可以定义类吗
- AI 是否拥有意识?从意识的定义说起
- 嵌入式:ARM符号定义伪操作详解
- 2022-12-06:定义一个概念叫“变序最大和“ “变序最大和“是说一个数组中,每个值都可以减小或者不变, 在必须把整体变成严
- 2023-01-08:小红定义一个仅有r、e、d三种字符的字符串中,如果仅有一个长度不小于2的回文子串,那么这个字符串定义为"好
- 失真的概念和定义
- C语言_结构体的4种定义初始化方式及案例详解编程语言
- Oracle侦听服务简明解释(oracle侦听服务定义)
- 使用Oracle完成实体定义的数据库技术研究(oracle中的实体定义)
- Oracle 12c重新定义服务器名称(oracle12c主机名)
- javascript面向对象之定义成员方法实例分析