线性代数杂谈(2)——逆,转置与置换矩阵

news/2024/10/9 5:25:13 标签: 线性代数, 矩阵, 机器学习

本文章将会围绕着矩阵的逆与转置这两种运算讲述,旨在通过此加深你对矩阵的理解与进一步熟悉这两种运算。

矩阵的逆

A A − 1 = I AA^{-1}=I AA1=I
方阵 A A A(注意:只有方阵才存在逆的概念)乘方阵 A − 1 A^{-1} A1的带单位矩阵 I I I,我们就说矩阵 A − 1 A^{-1} A1矩阵 A A A的逆。

从另一个更深的角度理解,矩阵的逆即是还原操作,用MIT教授的话比喻,就像穿上袜子后要脱下袜子的操作一样。下面我们来看一个例子:

1 0 0 − 2 1 0 0 0 1   \begin{matrix} 1 & 0 & 0\\ -2 & 1 & 0\\ 0 & 0 & 1 \end{matrix} \ 120010001 

这个矩阵是我们熟悉的消元矩阵,即 E 2 , 1 E_{2,1} E2,1,用以产生(2,1)处的0,具体代表操作是(左乘)将矩阵A的第二行变为-2倍的第一行加上1倍的第二行的线性组合。

那么这个消元矩阵的逆你是否能直接想出来呢?矩阵的逆如下:

1 0 0 2 1 0 0 0 1   \begin{matrix} 1 & 0 & 0\\ 2 & 1 & 0\\ 0 & 0 & 1 \end{matrix} \ 120010001 

可以考虑如下思路:
我们要求的矩阵乘消元矩阵得到的结果是单位矩阵。而消元矩阵的作用是将矩阵A的第二行变为-2倍的第一行加上1倍的第二行,那么要将此结果变回单位矩阵,只需加上二倍的第二行,原矩阵就变回了单位矩阵

简言之,矩阵的逆即是如此的还原操作。


矩阵的转置

转置可以有几种不同的方法来认识它,这里仅分为代数和图形两种方向。

转置可以直接理解为行与列的交换,即矩阵A中位置 ( i , j ) (i,j) (i,j)的元素,将会出现在其转置矩阵 ( j , i ) (j,i) (j,i)位置。

从图形上来说,矩阵的转置即是让原矩阵以正对角线为轴进行对称变换。

示例: 1 0 0 2 1 0 0 0 1 \begin{matrix} 1 & 0 & 0\\ 2 & 1 & 0\\ 0 & 0 & 1 \end{matrix} 120010001矩阵的转置为: 1 2 0 0 1 0 0 0 1 \begin{matrix} 1 & 2 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1 \end{matrix} 100210001

从图形上的理解也告诉我们,应该存在这么一类矩阵,它们沿正对角线对称,可得到

A = A T 这里的上标 T 是转置 t r a n s p o s e 的缩写,表示转置操作 A=A^T这里的上标T是转置transpose的缩写,表示转置操作 A=AT这里的上标T是转置transpose的缩写,表示转置操作

而我们称这样的矩阵为对称矩阵

转置的性质

基础运算

( A + B ) T = A T + B T (A+B)^T=A^T+B^T (A+B)T=AT+BT
这应该很好理解,A和B能求和意味着A与B形状相同,求和运算是相加相同位置的两个元素,那么将其沿对角线翻转过后结果同样不会改变。


( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT
推导:

我们先从 ( A x ) T (Ax)^T (Ax)T开始理解,考虑 x x x为一个列向量。

( A x ) T = x T A T (Ax)^T=x^TA^T (Ax)T=xTAT这一点似乎是理所当然的,是吗?因为 A x Ax Ax矩阵A的行的线性组合,将其转置后,要得到同样的结果,就需要 A T A^T AT的行的线性组合,即 x T x^T xT应该放在 A T A^T AT的左边。

以同样的思维思考,当" x x x"变为2列,3列,n列也应是同样的道理。因此, ( A B ) T = B T A T (AB)^T=B^TA^T (AB)T=BTAT


( A − 1 ) T = ( A T ) − 1 (A^{-1})^T=(A^T)^{-1} (A1)T=(AT)1
这一点也很好证明,如下:

A − 1 A = I ( A − 1 A ) T = A T ( A − 1 ) T = I → ( A − 1 ) T = ( A T ) − 1 A^{-1}A=I\\(A^{-1}A)^T=A^T(A^{-1})^T=I\\ \rightarrow (A^{-1})^T=(A^T)^{-1} A1A=I(A1A)T=AT(A1)T=I(A1)T=(AT)1


矩阵乘其转置为对称矩阵

任意矩阵R,不管它对不对称,R乘以其转置得到的一定是对称矩阵

R R T 一定为对称矩阵 RR^T一定为对称矩阵 RRT一定为对称矩阵

示例:举一个3×2的矩阵 R R R(转置不同于逆,不要求一定为方阵),乘其转置 R T R^T RT将得到对称矩阵

[ 1 3 2 3 4 1 ] [ 1 2 4 3 3 1 ] = [ 10 11 7 11 . . . . . . 7 . . . . . . ] \left[ \begin{matrix} 1 & 3 \\ 2 & 3 \\ 4 & 1 \end{matrix} \right] \left[ \begin{matrix} 1 & 2 & 4 \\ 3 & 3 & 1 \end{matrix} \right] = \left[\begin{matrix} 10 & 11 & 7 \\ 11 & ...& ... \\ 7 & ... &... \end{matrix} \right] 124331 [132341]= 1011711......7......

为方便观察规律,这里用的矩阵乘法方法为 a i , j = r o w i × c o l u m n j a_{i,j}=row_i\times column_j ai,j=rowi×columnj

结果矩阵 (1,1) 位置元素是 1 × 1 + 3 × 3 = 10 1\times1+3\times3=10 1×1+3×3=10 好吧,(1,1) 其实不重要

结果矩阵 (1,2) 位置元素是 1 × 2 + 3 × 3 = 11 1\times2+3\times3=11 1×2+3×3=11
结果矩阵 (2,1) 位置元素是 2 × 1 + 3 × 3 = 11 2\times1+3\times3=11 2×1+3×3=11

结果矩阵 (1,3) 位置元素是 1 × 4 + 3 × 1 = 7 1\times4+3\times1=7 1×4+3×1=7
结果矩阵 (1,3) 位置元素是 4 × 1 + 1 × 3 = 7 4\times1+1\times3=7 4×1+1×3=7

相信大家看了这两组位置对称元素的计算,就能直观感受到 R R T = 对称矩阵 RR^T=对称矩阵 RRT=对称矩阵了。

其实要证明的话也只很简单:

( R R T ) T = R T ( R T ) T = R T R (RR^T)^T=R^T(R^T)^T=R^TR (RRT)T=RT(RT)T=RTR


置换矩阵

置换矩阵 P P P是与行变换息息相关的概念,或者说如消元矩阵代表了消元操作一样,置换矩阵代表了行变换操作。

以3×3矩阵为例,行变换操作即为交换行与行之间的元素,不改变元素本身。

要使一个矩阵的第一行与第三行交换位置,即我们需要如下置换矩阵 P 1 , 3 P_{1,3} P1,3:

0 0 1 0 1 0 1 0 0 \begin{matrix} 0 & 0 & 1\\ 0 & 1 & 0\\ 1 & 0 & 0 \end{matrix} 001010100

如果你对线性组合足够熟悉,那么得到这个置换矩阵是理所当然的,这里就不再展开分析。

置换矩阵的性质

第一个问题,n*n的矩阵有多少个置换矩阵?这个问题很简单, A n n A_n^n Ann嘛,即 n ! n! n!,从1乘到n。


性质二:对于n*n的矩阵中所有置换矩阵组成一个集合来说:

集合中任意元素的逆在集合中。
集合中所有元素的积的结果是单位矩阵


http://www.niftyadmin.cn/n/5695333.html

相关文章

【深度学习】yolov8n模型的剪枝操作记录

原始 剪枝微调后 可以看到模型大小了, 测试结果显示再cpu 上加速5%-10% from ultralytics import YOLOimport time # Load a pretrained YOLO11n model count_num 500 def test1():model YOLO("/home/justin/Desktop/code/v8_prun/runs/detect/train3/weig…

ML 系列:【13 】— Logistic 回归(第 2 部分)

文章目录 一、说明二、挤压方法三、Logistic 回归中的损失函数四、后记 一、说明 ​ 在这篇文章中,我们将深入研究 squashing 方法,这是有符号距离方法(第 12节)的一种很有前途的替代方案。squashing 方法通过提供增强的对异常值…

QT使用websocket实现语音对讲

简介: 本文所描述的功能和代码,是基于QT的开发环境。在QT上使用websocket,接受和发送pcm音频,实现了语音对讲功能。经自测,该功能可以正常使用,以下是相关代码的分享。 void MainWindow::on_pushButton_Ope…

动手学深度学习9.3. 深度循环神经网络-笔记练习(PyTorch)

本节课程地址:58 深层循环神经网络【动手学深度学习v2】_哔哩哔哩_bilibili 本节教材地址:9.3. 深度循环神经网络 — 动手学深度学习 2.0.0 documentation (d2l.ai) 本节开源代码:...>d2l-zh>pytorch>chapter_multilayer-perceptr…

硬件开发笔记(三十一):TPS54331电源设计(四):PCB布板12V转5V电路、12V转3.0V和12V转4V电路

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/142757509 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

AIGC的底层技术:生成对抗网络(GAN)、变分自编码器(VAE)、预训练模型(如GPT、BERT等)

引言 随着人工智能生成内容(AIGC)技术的快速发展,我们看到它在文本、图像、音频和视频生成等领域的广泛应用。AIGC的核心在于底层技术的支持,本文将深入探讨AIGC的底层技术,包括生成对抗网络(GAN)、变分自编码器(VAE)、预训练模型(如GPT、BERT等),以及相关的深度学…

昆虫分类与检测系统源码分享

昆虫分类与检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

前端开发中的高级技巧与最佳实践

在前端开发的广阔领域中,不断探索和掌握新的技巧与实践方法是提升开发水平和项目质量的关键。本文将深入探讨一些前端开发中的高级技巧,希望能为广大前端开发者提供有价值的参考和启示。 一、高效的组件化开发 组件化是前端开发中的核心概念之一。通过将页面拆分成独立的、…