几种矩阵内积的定义和计算

devtools/2025/1/17 22:53:23/

1. Frobenius Inner Product(矩阵内积)

定义:Frobenius 内积是两个矩阵逐元素乘积的总和。
对于两个维度相同的矩阵 A A A B B B,其内积定义为:

⟨ A , B ⟩ = tr ( A T B ) = ∑ i = 1 m ∑ j = 1 n a i j b i j \langle A, B \rangle = \text{tr}(A^T B) = \sum_{i=1}^{m} \sum_{j=1}^{n} a_{ij} b_{ij} A,B=tr(ATB)=i=1mj=1naijbij

矩阵限制:两个矩阵 A A A B B B 必须具有相同的维度 m × n m \times n m×n
结果:内积是一个标量。

2. Dot Product(点积)

定义:点积是向量的标量乘积的延伸。
对于两个向量 u , v \mathbf{u}, \mathbf{v} u,v

u ⋅ v = ∑ i = 1 n u i v i \mathbf{u} \cdot \mathbf{v} = \sum_{i=1}^{n} u_i v_i uv=i=1nuivi

矩阵情况:可以将矩阵行列展开为向量后计算点积。
如果矩阵 A A A 1 × n 1 \times n 1×n n × 1 n \times 1 n×1,点积适用:

A ⋅ B = ∑ i = 1 n a i b i A \cdot B = \sum_{i=1}^{n} a_i b_i AB=i=1naibi

3. Kronecker Product(克罗内克积)

定义:Kronecker 积生成一个更大的矩阵
给定矩阵 A A A 的大小为 m × n m \times n m×n矩阵 B B B 的大小为 p × q p \times q p×q,克罗内克积定义为:

A ⊗ B = [ a 11 B a 12 B … a 1 n B a 21 B a 22 B … a 2 n B ⋮ ⋮ ⋱ ⋮ a m 1 B a m 2 B … a m n B ] A \otimes B = \begin{bmatrix} a_{11}B & a_{12}B & \dots & a_{1n}B \\ a_{21}B & a_{22}B & \dots & a_{2n}B \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}B & a_{m2}B & \dots & a_{mn}B \end{bmatrix} AB= a11Ba21Bam1Ba12Ba22Bam2Ba1nBa2nBamnB

结果大小 ( m p ) × ( n q ) (mp) \times (nq) (mp)×(nq)

4. Outer Product(外积)

定义:外积是两个向量生成矩阵的方法。
对于两个向量 u ∈ R m \mathbf{u} \in \mathbb{R}^m uRm v ∈ R n \mathbf{v} \in \mathbb{R}^n vRn,外积为:

u ⊗ v = u v T = [ u 1 v 1 u 1 v 2 … u 1 v n u 2 v 1 u 2 v 2 … u 2 v n ⋮ ⋮ ⋱ ⋮ u m v 1 u m v 2 … u m v n ] \mathbf{u} \otimes \mathbf{v} = \mathbf{u} \mathbf{v}^T = \begin{bmatrix} u_1v_1 & u_1v_2 & \dots & u_1v_n \\ u_2v_1 & u_2v_2 & \dots & u_2v_n \\ \vdots & \vdots & \ddots & \vdots \\ u_mv_1 & u_mv_2 & \dots & u_mv_n \end{bmatrix} uv=uvT= u1v1u2v1umv1u1v2u2v2umv2u1vnu2vnumvn

结果大小 m × n m \times n m×n

5. Hadamard Product(哈达玛积)

定义:Hadamard 积是两个矩阵对应元素相乘的结果。
对于两个矩阵 A , B A, B A,B

A ∘ B = [ a 11 b 11 a 12 b 12 … a 1 n b 1 n a 21 b 21 a 22 b 22 … a 2 n b 2 n ⋮ ⋮ ⋱ ⋮ a m 1 b m 1 a m 2 b m 2 … a m n b m n ] A \circ B = \begin{bmatrix} a_{11}b_{11} & a_{12}b_{12} & \dots & a_{1n}b_{1n} \\ a_{21}b_{21} & a_{22}b_{22} & \dots & a_{2n}b_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}b_{m1} & a_{m2}b_{m2} & \dots & a_{mn}b_{mn} \end{bmatrix} AB= a11b11a21b21am1bm1a12b12a22b22am2bm2a1nb1na2nb2namnbmn

矩阵限制:两个矩阵必须具有相同的维度 m × n m \times n m×n
结果大小 m × n m \times n m×n

6 总结表

运算类型输入要求输出形式
Frobenius 内积矩阵维度相同 m × n m \times n m×n标量
点积两向量长度相同 n n n标量
克罗内克积矩阵 A ∈ R m × n , B ∈ R p × q A \in \mathbb{R}^{m \times n}, B \in \mathbb{R}^{p \times q} ARm×n,BRp×q ( m p ) × ( n q ) (mp) \times (nq) (mp)×(nq) 矩阵
外积两向量 u ∈ R m , v ∈ R n \mathbf{u} \in \mathbb{R}^m, \mathbf{v} \in \mathbb{R}^n uRm,vRn m × n m \times n m×n 矩阵
哈达玛积矩阵维度相同 m × n m \times n m×n m × n m \times n m×n 矩阵

7 示例

以下是 Frobenius 内积、点积、Kronecker 积、外积 和 Hadamard 积 在 实数矩阵 和 复数矩阵上的具体示例:

1. Frobenius Inner Product(矩阵内积)
实数矩阵

A = [ 1 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[1324] B = [ 5 6 7 8 ] B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} B=[5768]
Frobenius 内积为:

⟨ A , B ⟩ = ∑ i = 1 2 ∑ j = 1 2 a i j b i j = 1 ⋅ 5 + 2 ⋅ 6 + 3 ⋅ 7 + 4 ⋅ 8 = 70 \langle A, B \rangle = \sum_{i=1}^{2} \sum_{j=1}^{2} a_{ij} b_{ij} = 1 \cdot 5 + 2 \cdot 6 + 3 \cdot 7 + 4 \cdot 8 = 70 A,B=i=12j=12aijbij=15+26+37+48=70

复数矩阵

A = [ 1 + i 2 i 4 ] A = \begin{bmatrix} 1+i & 2 \\ i & 4 \end{bmatrix} A=[1+ii24] B = [ 3 − i 6 7 8 + i ] B = \begin{bmatrix} 3-i & 6 \\ 7 & 8+i \end{bmatrix} B=[3i768+i]
Frobenius 内积为:

⟨ A , B ⟩ = ∑ i = 1 2 ∑ j = 1 2 a i j b i j ‾ \langle A, B \rangle = \sum_{i=1}^{2} \sum_{j=1}^{2} a_{ij} \overline{b_{ij}} A,B=i=12j=12aijbij

即:

( 1 + i ) ( 3 + i ) + 2 ⋅ 6 + i ⋅ 7 + 4 ⋅ ( 8 − i ) = ( 2 + 4 i ) + 12 + 7 i + ( 32 − 4 i ) = 46 + 7 i (1+i)(3+i) + 2 \cdot 6 + i \cdot 7 + 4 \cdot (8-i) = (2+4i) + 12 + 7i + (32-4i) = 46 + 7i (1+i)(3+i)+26+i7+4(8i)=(2+4i)+12+7i+(324i)=46+7i

2. Dot Product(点积)
实数向量

u = [ 1 2 3 ] \mathbf{u} = \begin{bmatrix} 1 & 2 & 3 \end{bmatrix} u=[123] v = [ 4 5 6 ] \mathbf{v} = \begin{bmatrix} 4 & 5 & 6 \end{bmatrix} v=[456]
点积为:

u ⋅ v = 1 ⋅ 4 + 2 ⋅ 5 + 3 ⋅ 6 = 32 \mathbf{u} \cdot \mathbf{v} = 1 \cdot 4 + 2 \cdot 5 + 3 \cdot 6 = 32 uv=14+25+36=32

复数向量

u = [ 1 + i 2 3 i ] \mathbf{u} = \begin{bmatrix} 1+i & 2 & 3i \end{bmatrix} u=[1+i23i] v = [ 1 2 + i 3 ] \mathbf{v} = \begin{bmatrix} 1 & 2+i & 3 \end{bmatrix} v=[12+i3]
点积为:

u ⋅ v = ( 1 + i ) 1 ‾ + 2 ( 2 + i ) ‾ + ( 3 i ) 3 ‾ \mathbf{u} \cdot \mathbf{v} = (1+i)\overline{1} + 2\overline{(2+i)} + (3i)\overline{3} uv=(1+i)1+2(2+i)+(3i)3

即:

( 1 + i ) ⋅ 1 + 2 ⋅ ( 2 − i ) + 3 i ⋅ 3 = 1 + i + 4 − 2 i + 9 i = 5 + 8 i (1+i) \cdot 1 + 2 \cdot (2-i) + 3i \cdot 3 = 1+i + 4-2i + 9i = 5 + 8i (1+i)1+2(2i)+3i3=1+i+42i+9i=5+8i

3. Kronecker Product(克罗内克积)
实数矩阵

A = [ 1 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[1324] B = [ 0 5 6 7 ] B = \begin{bmatrix} 0 & 5 \\ 6 & 7 \end{bmatrix} B=[0657]
克罗内克积为:

A ⊗ B = [ 1 B 2 B 3 B 4 B ] = [ 0 5 0 10 6 7 12 14 0 15 0 20 18 21 24 28 ] A \otimes B = \begin{bmatrix} 1B & 2B \\ 3B & 4B \end{bmatrix} = \begin{bmatrix} 0 & 5 & 0 & 10 \\ 6 & 7 & 12 & 14 \\ 0 & 15 & 0 & 20 \\ 18 & 21 & 24 & 28 \end{bmatrix} AB=[1B3B2B4B]= 0601857152101202410142028

复数矩阵

A = [ i 2 3 4 ] A = \begin{bmatrix} i & 2 \\ 3 & 4 \end{bmatrix} A=[i324] B = [ 1 i i 1 ] B = \begin{bmatrix} 1 & i \\ i & 1 \end{bmatrix} B=[1ii1]
克罗内克积为:

A ⊗ B = [ i B 2 B 3 B 4 B ] = [ i − 1 2 2 i i i 2 i 2 3 3 i 4 4 i 3 i 3 4 i 4 ] A \otimes B = \begin{bmatrix} iB & 2B \\ 3B & 4B \end{bmatrix} = \begin{bmatrix} i & -1 & 2 & 2i \\ i & i & 2i & 2 \\ 3 & 3i & 4 & 4i \\ 3i & 3 & 4i & 4 \end{bmatrix} AB=[iB3B2B4B]= ii33i1i3i322i44i2i24i4

4. Outer Product(外积)
实数向量

u = [ 1 2 3 ] \mathbf{u} = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} u= 123 v = [ 4 5 ] \mathbf{v} = \begin{bmatrix} 4 & 5 \end{bmatrix} v=[45]
外积为:

u ⊗ v = [ 1 ⋅ 4 1 ⋅ 5 2 ⋅ 4 2 ⋅ 5 3 ⋅ 4 3 ⋅ 5 ] = [ 4 5 8 10 12 15 ] \mathbf{u} \otimes \mathbf{v} = \begin{bmatrix} 1 \cdot 4 & 1 \cdot 5 \\ 2 \cdot 4 & 2 \cdot 5 \\ 3 \cdot 4 & 3 \cdot 5 \end{bmatrix} = \begin{bmatrix} 4 & 5 \\ 8 & 10 \\ 12 & 15 \end{bmatrix} uv= 142434152535 = 481251015

复数向量

u = [ 1 + i 2 ] \mathbf{u} = \begin{bmatrix} 1+i \\ 2 \end{bmatrix} u=[1+i2] v = [ 3 4 − i ] \mathbf{v} = \begin{bmatrix} 3 \\ 4-i \end{bmatrix} v=[34i]
外积为:

u ⊗ v = [ ( 1 + i ) ⋅ 3 ( 1 + i ) ⋅ ( 4 − i ) 2 ⋅ 3 2 ⋅ ( 4 − i ) ] = [ 3 + 3 i 4 − i + 4 i + 1 6 8 − 2 i ] = [ 3 + 3 i 5 + 3 i 6 8 − 2 i ] \mathbf{u} \otimes \mathbf{v} = \begin{bmatrix} (1+i) \cdot 3 & (1+i) \cdot (4-i) \\ 2 \cdot 3 & 2 \cdot (4-i) \end{bmatrix} = \begin{bmatrix} 3+3i & 4-i+4i+1 \\ 6 & 8-2i \end{bmatrix} = \begin{bmatrix} 3+3i & 5+3i \\ 6 & 8-2i \end{bmatrix} uv=[(1+i)323(1+i)(4i)2(4i)]=[3+3i64i+4i+182i]=[3+3i65+3i82i]

5. Hadamard Product(哈达玛积)
实数矩阵

A = [ 1 2 3 4 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} A=[1324] B = [ 5 6 7 8 ] B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} B=[5768]
哈达玛积为:

A ∘ B = [ 1 ⋅ 5 2 ⋅ 6 3 ⋅ 7 4 ⋅ 8 ] = [ 5 12 21 32 ] A \circ B = \begin{bmatrix} 1 \cdot 5 & 2 \cdot 6 \\ 3 \cdot 7 & 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 5 & 12 \\ 21 & 32 \end{bmatrix} AB=[15372648]=[5211232]

复数矩阵

A = [ 1 + i 2 i 4 ] A = \begin{bmatrix} 1+i & 2 \\ i & 4 \end{bmatrix} A=[1+ii24] B = [ 3 6 7 8 + i ] B = \begin{bmatrix} 3 & 6 \\ 7 & 8+i \end{bmatrix} B=[3768+i]
哈达玛积为:

A ∘ B = [ ( 1 + i ) ⋅ 3 2 ⋅ 6 i ⋅ 7 4 ⋅ ( 8 + i ) ] = [ 3 + 3 i 12 7 i 32 + 4 i ] A \circ B = \begin{bmatrix} (1+i) \cdot 3 & 2 \cdot 6 \\ i \cdot 7 & 4 \cdot (8+i) \end{bmatrix} = \begin{bmatrix} 3+3i & 12 \\ 7i & 32+4i \end{bmatrix} AB=[(1+i)3i7264(8+i)]=[3+3i7i1232+4i]


http://www.ppmy.cn/devtools/151382.html

相关文章

【C++ 类和对象 进阶篇】—— 逻辑森林的灵动精灵,舞动类与对象的奇幻圆舞曲

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

自动化解决方案:修复devicedisplaystatusmanager.dll丢失

在Windows操作系统中,DLL(动态链接库)文件扮演着至关重要的角色。它们为应用程序提供必要的函数和数据,以确保系统的平稳运行。然而,有时我们可能会遇到DLL文件丢失或损坏的问题,比如DeviceDisplayStatusMa…

【NLP高频面题 - 分布式训练篇】分布式训练主要解决大模型训练中的哪些问题?

【NLP高频面题 - 分布式训练篇】分布式训练主要解决大模型训练中的哪些问题? 重要性:★ 传统的单机单卡模式已经无法满足超大模型进行训练的要求,这一趋势背后有几个原因。 模型规模迅速增加。数据集规模迅速增加。计算能力越来越强。 使…

RabbitMQ故障全解析:消费、消息及日常报错处理与集群修复

文章目录 前言:1 消费慢2 消息丢失3 消息重复消费4 日常报错及解决4.1 报错“error in config file “/etc/rabbitmq/rabbitmq.config” (none): no ending found”4.2 生产者发送消息报错4.3 浏览器打开IP地址,无法访问 RabbitMQ(白屏没有结…

软件测试入门—测试流程之需求分析

在软件测试的整个流程中,需求分析是至关重要的第一步,它为后续的测试工作奠定了坚实的基础。良好的需求分析能够确保测试工作的针对性和有效性,帮助我们发现更多的软件缺陷,提高软件的质量。下面将详细阐述软件测试流程中的需求分…

《零基础Go语言算法实战》【题目 2-28】读写不安全问题

《零基础Go语言算法实战》 【题目 2-28】读写不安全问题 请说出下面的代码存在什么问题。 package main import "sync" type UserAges struct { ages map[string]int sync.Mutex } func (ua *UserAges) Add(name string, age int) { ua.Lock() defer ua.Unloc…

1.15寒假作业

web:nss靶场ez_ez_php 打开环境,理解代码 使用个体传参的方法,首先代码会检查file参数的前三个字符是不是php,如果是就输出nice,然后用include函数包含file,绕过不是则输出hacker,如果没有file…

区块链技术在商贸物流中的变革性作用:透明、安全与高效

区块链技术在商贸物流中的变革性作用:透明、安全与高效 在当今全球化的商业环境中,商贸物流作为商品流通的关键环节,其高效运作对于企业的竞争力和消费者的满意度至关重要。然而,传统商贸物流存在着诸多痛点,如信息不…