首页 > 其他分享 >【真·随笔】矩证乘法的基本定理(修复)

【真·随笔】矩证乘法的基本定理(修复)

时间:2023-07-14 10:04:05浏览次数:34  
标签:sum 矩阵 times 矩证 otimes oplus 随笔 乘法

此随笔是修复版,请尊重原创。

修复版 markdown 见下

修复 自 矩阵乘法笔记 - Elegia:https://www.luogu.com.cn/blog/EntropyIncreaser/ju-zhen-sheng-fa-bi-ji

矩阵乘法的基本定理

矩阵乘法结合律

设有矩阵 \(A,B,C\),分别的大小为 \(n \times m, m \times p, p \times q\) 。求证 \((AB)C=A(BC)\),进一步为 \((AB)C_{i,j}=A(BC)_{i,j}(AB)C\)

根据矩阵乘法的定义,有

\[AB_{i,j} = \sum\limits_{k=1}^m A_{i,k} \times B_{k,j} \]

\[\begin{eqnarray} (AB)C_{i,j} & = & \sum_{l=1}^p AB_{i,l} \times C_{l,j} \\ & = & \sum_{l=1}^p (\sum_{k=1}^m A_{i,k} \times B_{k,l}) \times C_{l,j} \\ & = & \sum_{l=1}^p \sum_{k=1}^m A_{i,k} \times B_{k,l} \times C_{l,j} \\ & = & \sum_{k=1}^m \sum_{l=1}^p A_{i,k} \times B_{k,l} \times C_{l,j} \\ & = & \sum_{k=1}^m (\sum_{l=1}^p B_{k,l} \times C_{l,j}) \times A_{i,k} \\ & = & \sum_{k=1}^m A_{i,k} \times BC_{k,j} \\ & = & A(BC)_{i,j} \end{eqnarray} \]

证毕

矩阵快速幂的正确性

设方阵 \(A\)(行数为 \(r\))和自然数 \(n\),可以将 \(n\) 分解为一个 \(m\) 位的二进制数 \(\overline{b_mb_{m-1}...b_1b_0}\),则

\[\begin{eqnarray} A^n & = & A^{\sum\limits_{i=0}^m b_i 2^i} \\ & = & \prod_{i=0}^m A^{b_i 2^i} \\ & = & \prod_{b_i = 1} A^{2^i} \end{eqnarray} \]

从第一步到第二步的变换是不平凡的,它只有基于结合律才成立。因此,我们可以发现通过反复平方法可以以 \(O(r^3 \log n)\) 求出 \(A^n\)。

重定义运算符

矩阵乘法中的运算涉及两种操作,即乘法和加法,我们在对结合律进行证明的过程中可以发现,我们依赖了:两种运算符各自符合交换律、结合律,乘法对加法符合分配率。形式化描述,即有运算 \(\oplus\) 加法与 \(\otimes\) 乘法,只要它们符合以下性质

\[\begin{eqnarray} x \oplus y & = & y \oplus x \\ (x \oplus y) \oplus z & = & x \oplus (y \oplus z) \\ x \otimes y & = & y \otimes x \\ (x \otimes y) \otimes z & = & x \otimes (y \otimes z) \\ x \otimes (y \oplus z) & = & (x \otimes y) \oplus (x \otimes z) \end{eqnarray} \]

那么将该运算替换掉原本矩阵乘法的加法和乘法,交换律依然成立,快速幂也仍然可以使用。比如说,我们知道带余加法和带余乘法仍然满足该性质,所以我们也可以置 \(\times_p \rightarrow \otimes, +_p \rightarrow \oplus\)

当然,如果还想要让这种重定义的矩阵可逆等,就需要该矩阵的元素所属集合与两种运算构成域(field),也就是还要有逆元和单位元。

矩阵快速幂解决最短路问题

我们尝试置$ + \rightarrow \otimes, \min \rightarrow \oplus$ 后,可以发现这仍然符合矩阵运算所需要的性质,而这时

\[AB_{i,j} = \bigoplus_{k=1}^n A_{i,k} \otimes B_{k,j} = \min_{k=1}^n (A_{i,k} + B_{k,j}) \]

(这个minmin的特别用法是我自己编的,嘻嘻)

我们惊奇地发现,这就等同于一次边 \((i,j)\) 的松弛操作!于是我们对图的邻接矩阵 \(Adj\),计算 \(n-1\) 次幂,就可以得出两两边的最短路了。其中如果 \((u,v)\) 无边,则置 \(Adj_{u,v} \leftarrow +\infty\)。计算 \(Adj^{n-1}\) 的时间复杂度为 \(O(n^3 \log n)\),虽然逊色于floyd算法的\(O(n^3)\) ,但是这也是一个非常启发式的方法。

修复 自 矩阵乘法笔记 - Elegia:https://www.luogu.com.cn/blog/EntropyIncreaser/ju-zhen-sheng-fa-bi-ji


修复版 markdown

## 矩阵乘法的基本定理

### 矩阵乘法结合律
设有矩阵 $A,B,C$,分别的大小为 $n \times m, m \times p, p \times q$ 。求证 $(AB)C=A(BC)$,进一步为 $(AB)C_{i,j}=A(BC)_{i,j}(AB)C$ 

根据矩阵乘法的定义,有

$$AB_{i,j} = \sum\limits_{k=1}^m A_{i,k} \times B_{k,j}$$

故

$$ \begin{eqnarray} (AB)C_{i,j} & = & \sum_{l=1}^p AB_{i,l} \times C_{l,j} \\ & = & \sum_{l=1}^p (\sum_{k=1}^m A_{i,k} \times B_{k,l}) \times C_{l,j} \\ & = & \sum_{l=1}^p \sum_{k=1}^m A_{i,k} \times B_{k,l} \times C_{l,j} \\ & = & \sum_{k=1}^m \sum_{l=1}^p A_{i,k} \times B_{k,l} \times C_{l,j} \\ & = & \sum_{k=1}^m (\sum_{l=1}^p B_{k,l} \times C_{l,j}) \times A_{i,k} \\ & = & \sum_{k=1}^m A_{i,k} \times BC_{k,j} \\ & = & A(BC)_{i,j} \end{eqnarray} $$

证毕

### 矩阵快速幂的正确性
设方阵 $A$(行数为 $r$)和自然数 $n$,可以将 $n$ 分解为一个 $m$ 位的二进制数 $\overline{b_mb_{m-1}...b_1b_0}$,则

$$ \begin{eqnarray} A^n & = & A^{\sum\limits_{i=0}^m b_i 2^i} \\ & = & \prod_{i=0}^m A^{b_i 2^i} \\ & = & \prod_{b_i = 1} A^{2^i} \end{eqnarray} $$
从第一步到第二步的变换是不平凡的,它只有基于结合律才成立。因此,我们可以发现通过反复平方法可以以 $O(r^3 \log n)$ 求出 $A^n$。

### 重定义运算符
矩阵乘法中的运算涉及两种操作,即乘法和加法,我们在对结合律进行证明的过程中可以发现,我们依赖了:两种运算符各自符合交换律、结合律,乘法对加法符合分配率。形式化描述,即有运算 $\oplus$ 加法与 $\otimes$ 乘法,只要它们符合以下性质

$$ \begin{eqnarray} x \oplus y & = & y \oplus x \\ (x \oplus y) \oplus z & = & x \oplus (y \oplus z) \\ x \otimes y & = & y \otimes x \\ (x \otimes y) \otimes z & = & x \otimes (y \otimes z) \\ x \otimes (y \oplus z) & = & (x \otimes y) \oplus (x \otimes z) \end{eqnarray} $$
那么将该运算替换掉原本矩阵乘法的加法和乘法,交换律依然成立,快速幂也仍然可以使用。比如说,我们知道带余加法和带余乘法仍然满足该性质,所以我们也可以置 $\times_p \rightarrow \otimes, +_p \rightarrow \oplus$

当然,如果还想要让这种重定义的矩阵可逆等,就需要该矩阵的元素所属集合与两种运算构成[域(field)](https://en.wikipedia.org/wiki/Field/_(mathematics)),也就是还要有逆元和单位元。

### 矩阵快速幂解决最短路问题

我们尝试置$ + \rightarrow \otimes, \min \rightarrow \oplus$ 后,可以发现这仍然符合矩阵运算所需要的性质,而这时

$$AB_{i,j} = \bigoplus_{k=1}^n A_{i,k} \otimes B_{k,j} = \min_{k=1}^n (A_{i,k} + B_{k,j})$$

(这个minmin的特别用法是我自己编的,嘻嘻)

我们惊奇地发现,这就等同于一次边 $(i,j)$ 的松弛操作!于是我们对图的邻接矩阵 $Adj$,计算 $n-1$ 次幂,就可以得出两两边的最短路了。其中如果 $(u,v)$ 无边,则置 $Adj_{u,v} \leftarrow +\infty$。计算 $Adj^{n-1}$ 的时间复杂度为 $O(n^3 \log n)$,虽然逊色于floyd算法的$O(n^3)$ ,但是这也是一个非常启发式的方法。

标签:sum,矩阵,times,矩证,otimes,oplus,随笔,乘法
From: https://www.cnblogs.com/rdfzchenyy/p/note-2023-07-14.html

相关文章

  • 矩阵乘法
    矩阵乘法入门矩阵类似一个二维数组吧。矩阵的运算矩阵的加法\[C_{i,j}=A_{i,j}+B_{i,j}\]我不知道有什么用。矩阵的减法\[C_{i,j}=A_{i,j}-B_{i,j}\]我也不知道有什么用。矩阵的乘法\[C_{i,j}=\sum_k^{m}A_{i,k}B_{k,j}\]即答案矩阵的第\(i\)行第\(j\)......
  • 默认随笔
    护眼壁纸分享一份来自AwesomeWallpapers的壁纸;因为源链已经找不到了,所以未能注明原著;侵权删图(及时联系).2023-07-1311:40:37星期四23.cnblogs.com/blog/3128690/202307/3128690-20230713114443782-467251224.png)......
  • PYTHON随笔-打印错误堆栈
    PYTHON随笔-打印错误堆栈importsysimporttracebackdefprint_traceback():'打印通常的回溯信息,且附有每帧中的局部变量的列表'tb=sys.exc_info()[2]#返回当前异常的(type,value,traceback)whiletb.tb_next:tb=tb.tb_next#栈中的下一个trac......
  • PYTHON随笔-logging
    PYTHON随笔-loggingimportloggingfromlogging.handlersimportRotatingFileHandlergLogFile='/home/mcs/log/dbm_py.log'LOG_FORMAT="%(asctime)s[%(levelname)-5s][%(filename)s:%(lineno)s]-%(message)s"#日志输出的格式#-8表示占位符,让输出左对齐,输......
  • 随笔01
    快捷键使用:ctrl+shift+esc打开任务管理器win+tab切换桌面任务ail+f4关闭当前窗口shift+delete彻底删除win+E打开资源管理器的“此电脑”win+R输入CMD打开控制台 基本dos命令:返回上一级cd.. 查看目录dir打开计算器calc打开记事本notepad创建目录md  ......
  • Java 基础 - 异常随笔
     异常基础总结try、catch和finally都不能单独使用,只能是try-catch、try-finally或者try-catch-finally。try语句块监控代码,出现异常就停止执行下面的代码,然后将异常移交给catch语句块来处理。catch–用于捕获异常。catch用来捕获try语句块中发生的异常。finally语句块中的......
  • 深入浅出玩转FPGA阅读随笔
    笔记4语法学习的经验之谈可综合的语法:可实现硬件电路的语法行为级语法:不能够实现硬件电路却常常可作为仿真验证的高层次语法笔记9复位设计上升沿触发的D触发器内部电路结构前一级的内部电路实际上是实现了一个“保持”的功能,如果复位信号的释放发生在靠近时钟沿很近的时间点......
  • 【模板】64 位整数乘法
    题目描述求a乘b对k取模的值,其中1≤*a,b,k≤1018输入     输入:一行:a,b,k输出     一个数字,为答案样例输入627样例输出5ACcode#include<bits/stdc++.h>usingnamespacestd;unsignedlonglonga,b,k,ans;intmain(){cin>>a>>b>>......
  • 永磁同步电机参数辩识,采用最小二乘法进行的仿真
    永磁同步电机参数辩识,采用最小二乘法进行的仿真ID:9850625716661035......
  • 永磁同步电机参数辩识仿真 采用最小二乘法进行的仿真
    永磁同步电机参数辩识仿真采用最小二乘法进行的仿真ID:7550627011247044......