矩阵转置的基本性质

矩阵转置的基本性质

flyfish

  1. 标量的转置:标量(即单个数字)的转置是其自身。
  2. 向量的转置:列向量的转置是行向量,行向量的转置是列向量。
  3. 矩阵的转置:一个 m × n m \times n m×n 矩阵 A \mathbf{A} A 的转置是一个 n × m n \times m n×m 矩阵 A T \mathbf{A}^T AT,其中 A T \mathbf{A}^T AT 的第 i i i 行第 j j j 列的元素等于 A \mathbf{A} A 的第 j j j 行第 i i i 列的元素。

向量和矩阵乘积的转置

对于两个矩阵 A \mathbf{A} A B \mathbf{B} B,其乘积的转置满足以下性质:
( A B ) T = B T A T (\mathbf{A} \mathbf{B})^T = \mathbf{B}^T \mathbf{A}^T (AB)T=BTAT

这意味着矩阵乘积的转置等于将每个矩阵分别转置后交换顺序再进行乘积。这是矩阵转置的一个基本性质。

应用到具体问题

在我们的具体问题中, X \mathbf{X} X 是一个 n × p n \times p n×p 矩阵, β \beta β 是一个 p × 1 p \times 1 p×1 向量。因此, X β \mathbf{X} \beta Xβ 是一个 n × 1 n \times 1 n×1 向量。

我们需要计算 ( X β ) T (\mathbf{X} \beta)^T (Xβ)T
( X β ) T (\mathbf{X} \beta)^T (Xβ)T
根据矩阵转置的性质,矩阵乘积的转置等于将每个矩阵分别转置后交换顺序再进行乘积:
( X β ) T = β T X T (\mathbf{X} \beta)^T = \beta^T \mathbf{X}^T (Xβ)T=βTXT
这里 X β \mathbf{X} \beta Xβ 是一个 n × 1 n \times 1 n×1 的向量,因此其转置是一个 1 × n 1 \times n 1×n 的向量。而 β \beta β 是一个 p × 1 p \times 1 p×1 的向量,其转置 β T \beta^T βT 是一个 1 × p 1 \times p 1×p 的行向量。类似地, X \mathbf{X} X 是一个 n × p n \times p n×p 的矩阵,其转置 X T \mathbf{X}^T XT 是一个 p × n p \times n p×n 的矩阵。因此, β T X T \beta^T \mathbf{X}^T βTXT 是一个 1 × n 1 \times n 1×n 的行向量。

具体例子

为了更好地理解这个性质,我们可以看一个具体的例子:

假设 X \mathbf{X} X 是一个 2 × 3 2 \times 3 2×3 的矩阵, β \beta β 是一个 3 × 1 3 \times 1 3×1 的向量:
X = ( a 11 a 12 a 13 a 21 a 22 a 23 ) , β = ( b 1 b 2 b 3 ) \mathbf{X} = \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{pmatrix}, \quad \beta = \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} X=(a11a21a12a22a13a23),β= b1b2b3
X β \mathbf{X} \beta Xβ 是:
X β = ( a 11 a 12 a 13 a 21 a 22 a 23 ) ( b 1 b 2 b 3 ) = ( a 11 b 1 + a 12 b 2 + a 13 b 3 a 21 b 1 + a 22 b 2 + a 23 b 3 ) \mathbf{X} \beta = \begin{pmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{pmatrix} \begin{pmatrix} b_1 \\ b_2 \\ b_3 \end{pmatrix} = \begin{pmatrix} a_{11}b_1 + a_{12}b_2 + a_{13}b_3 \\ a_{21}b_1 + a_{22}b_2 + a_{23}b_3 \end{pmatrix} Xβ=(a11a21a12a22a13a23) b1b2b3 =(a11b1+a12b2+a13b3a21b1+a22b2+a23b3)
然后 ( X β ) T (\mathbf{X} \beta)^T (Xβ)T 是:
( X β ) T = ( a 11 b 1 + a 12 b 2 + a 13 b 3 a 21 b 1 + a 22 b 2 + a 23 b 3 ) (\mathbf{X} \beta)^T = \begin{pmatrix} a_{11}b_1 + a_{12}b_2 + a_{13}b_3 & a_{21}b_1 + a_{22}b_2 + a_{23}b_3 \end{pmatrix} (Xβ)T=(a11b1+a12b2+a13b3a21b1+a22b2+a23b3)
β T X T \beta^T \mathbf{X}^T βTXT 是:
X T = ( a 11 a 21 a 12 a 22 a 13 a 23 ) , β T = ( b 1 b 2 b 3 ) \mathbf{X}^T = \begin{pmatrix} a_{11} & a_{21} \\ a_{12} & a_{22} \\ a_{13} & a_{23} \end{pmatrix}, \quad \beta^T = \begin{pmatrix} b_1 & b_2 & b_3 \end{pmatrix} XT= a11a12a13a21a22a23 ,βT=(b1b2b3)
β T X T = ( b 1 b 2 b 3 ) ( a 11 a 21 a 12 a 22 a 13 a 23 ) = ( b 1 a 11 + b 2 a 12 + b 3 a 13 b 1 a 21 + b 2 a 22 + b 3 a 23 ) \beta^T \mathbf{X}^T = \begin{pmatrix} b_1 & b_2 & b_3 \end{pmatrix} \begin{pmatrix} a_{11} & a_{21} \\ a_{12} & a_{22} \\ a_{13} & a_{23} \end{pmatrix} = \begin{pmatrix} b_1a_{11} + b_2a_{12} + b_3a_{13} & b_1a_{21} + b_2a_{22} + b_3a_{23} \end{pmatrix} βTXT=(b1b2b3) a11a12a13a21a22a23 =(b1a11+b2a12+b3a13b1a21+b2a22+b3a23)
我们可以看到 ( X β ) T (\mathbf{X} \beta)^T (Xβ)T β T X T \beta^T \mathbf{X}^T βTXT 是相等的,这验证了上面的矩阵转置性质。

数值例子

考虑一个 2 × 3 2 \times 3 2×3 的矩阵 X \mathbf{X} X 和一个 3 × 1 3 \times 1 3×1 的向量 β \beta β
X = ( 1 2 3 4 5 6 ) , β = ( 7 8 9 ) \mathbf{X} = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix}, \quad \beta = \begin{pmatrix} 7 \\ 8 \\ 9 \end{pmatrix} X=(142536),β= 789
我们将计算 ( X β ) T (\mathbf{X} \beta)^T (Xβ)T β T X T \beta^T \mathbf{X}^T βTXT,并验证它们相等。

首先,计算 X β \mathbf{X} \beta Xβ
X β = ( 1 2 3 4 5 6 ) ( 7 8 9 ) = ( 1 ⋅ 7 + 2 ⋅ 8 + 3 ⋅ 9 4 ⋅ 7 + 5 ⋅ 8 + 6 ⋅ 9 ) = ( 50 122 ) \mathbf{X} \beta = \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix} \begin{pmatrix} 7 \\ 8 \\ 9 \end{pmatrix} = \begin{pmatrix} 1 \cdot 7 + 2 \cdot 8 + 3 \cdot 9 \\ 4 \cdot 7 + 5 \cdot 8 + 6 \cdot 9 \end{pmatrix} = \begin{pmatrix} 50 \\ 122 \end{pmatrix} Xβ=(142536) 789 =(17+28+3947+58+69)=(50122)
然后,计算 ( X β ) T (\mathbf{X} \beta)^T (Xβ)T
( X β ) T = ( 50 122 ) (\mathbf{X} \beta)^T = \begin{pmatrix} 50 & 122 \end{pmatrix} (Xβ)T=(50122)
接下来,计算 β T X T \beta^T \mathbf{X}^T βTXT
X T = ( 1 4 2 5 3 6 ) \mathbf{X}^T = \begin{pmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{pmatrix} XT= 123456
β T = ( 7 8 9 ) \beta^T = \begin{pmatrix} 7 & 8 & 9 \end{pmatrix} βT=(789)
β T X T = ( 7 8 9 ) ( 1 4 2 5 3 6 ) = ( 7 ⋅ 1 + 8 ⋅ 2 + 9 ⋅ 3 7 ⋅ 4 + 8 ⋅ 5 + 9 ⋅ 6 ) = ( 50 122 ) \beta^T \mathbf{X}^T = \begin{pmatrix} 7 & 8 & 9 \end{pmatrix} \begin{pmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{pmatrix} = \begin{pmatrix} 7 \cdot 1 + 8 \cdot 2 + 9 \cdot 3 & 7 \cdot 4 + 8 \cdot 5 + 9 \cdot 6 \end{pmatrix} = \begin{pmatrix} 50 & 122 \end{pmatrix} βTXT=(789) 123456 =(71+82+9374+85+96)=(50122)
我们可以看到, ( X β ) T (\mathbf{X} \beta)^T (Xβ)T β T X T \beta^T \mathbf{X}^T βTXT 是相等的。

用Python验证

import numpy as np# 定义矩阵和向量
X = np.array([[1, 2, 3], [4, 5, 6]])
beta = np.array([[7], [8], [9]])# 计算 X beta
X_beta = np.dot(X, beta)# 计算 (X beta)^T
X_beta_T = X_beta.T# 计算 X^T
X_T = X.T# 计算 beta^T X^T
beta_T_X_T = np.dot(beta.T, X_T)# 打印结果
print("X beta:\n", X_beta)
print("(X beta)^T:\n", X_beta_T)
print("beta^T X^T:\n", beta_T_X_T)# 验证 (X beta)^T 和 beta^T X^T 是否相等
print("Are (X beta)^T and beta^T X^T equal? ", np.array_equal(X_beta_T, beta_T_X_T))

运行上述代码,输出如下:

X beta:[[ 50][122]]
(X beta)^T:[[ 50 122]]
beta^T X^T:[[ 50 122]]
Are (X beta)^T and beta^T X^T equal?  True

可以看到, ( X β ) T (\mathbf{X} \beta)^T (Xβ)T β T X T \beta^T \mathbf{X}^T βTXT 的结果是相等的。

矩阵转置的其他性质

  1. 双重转置:一个矩阵的双重转置等于它本身: ( A T ) T = A (\mathbf{A}^T)^T = \mathbf{A} (AT)T=A
  2. 和的转置:两个矩阵和的转置等于各自转置的和: ( A + B ) T = A T + B T (\mathbf{A} + \mathbf{B})^T = \mathbf{A}^T + \mathbf{B}^T (A+B)T=AT+BT
  3. 数乘的转置:数乘矩阵的转置等于数乘矩阵的转置: ( c A ) T = c A T 其中  c 是一个标量 (c\mathbf{A})^T = c\mathbf{A}^T \quad \text{其中} \ c \ \text{是一个标量} (cA)T=cAT其中 c 是一个标量
  4. 积的转置:两个矩阵积的转置等于各自转置的乘积,顺序交换: ( A B ) T = B T A T (\mathbf{A} \mathbf{B})^T = \mathbf{B}^T \mathbf{A}^T (AB)T=BTAT
  5. 单位矩阵的转置:单位矩阵的转置仍然是单位矩阵: I T = I \mathbf{I}^T = \mathbf{I} IT=I
import numpy as np# 1. 双重转置:((A^T)^T = A)
A = np.array([[1, 2, 3], [4, 5, 6]])
A_T = A.T
A_T_T = A_T.T
print("A:\n", A)
print("(A^T)^T:\n", A_T_T)
print("Are A and (A^T)^T equal? ", np.array_equal(A, A_T_T))# 2. 和的转置:((A + B)^T = A^T + B^T)
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
A_plus_B = A + B
A_plus_B_T = A_plus_B.T
A_T = A.T
B_T = B.T
A_T_plus_B_T = A_T + B_T
print("\nA + B:\n", A_plus_B)
print("(A + B)^T:\n", A_plus_B_T)
print("A^T + B^T:\n", A_T_plus_B_T)
print("Are (A + B)^T and A^T + B^T equal? ", np.array_equal(A_plus_B_T, A_T_plus_B_T))# 3. 数乘的转置:(cA)^T = c(A^T)
c = 2
A = np.array([[1, 2], [3, 4]])
cA = c * A
cA_T = cA.T
A_T = A.T
c_A_T = c * A_T
print("\ncA:\n", cA)
print("(cA)^T:\n", cA_T)
print("c(A^T):\n", c_A_T)
print("Are (cA)^T and c(A^T) equal? ", np.array_equal(cA_T, c_A_T))# 4. 积的转置:((AB)^T = B^T A^T)
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
AB = np.dot(A, B)
AB_T = AB.T
A_T = A.T
B_T = B.T
B_T_A_T = np.dot(B_T, A_T)
print("\nAB:\n", AB)
print("(AB)^T:\n", AB_T)
print("B^T A^T:\n", B_T_A_T)
print("Are (AB)^T and B^T A^T equal? ", np.array_equal(AB_T, B_T_A_T))# 5. 单位矩阵的转置:I^T = I
I = np.eye(3)
I_T = I.T
print("\nI:\n", I)
print("I^T:\n", I_T)
print("Are I^T and I equal? ", np.array_equal(I_T, I))
A:[[1 2 3][4 5 6]]
(A^T)^T:[[1 2 3][4 5 6]]
Are A and (A^T)^T equal?  TrueA + B:[[ 6  8][10 12]]
(A + B)^T:[[ 6 10][ 8 12]]
A^T + B^T:[[ 6 10][ 8 12]]
Are (A + B)^T and A^T + B^T equal?  TruecA:[[2 4][6 8]]
(cA)^T:[[2 6][4 8]]
c(A^T):[[2 6][4 8]]
Are (cA)^T and c(A^T) equal?  TrueAB:[[19 22][43 50]]
(AB)^T:[[19 43][22 50]]
B^T A^T:[[19 43][22 50]]
Are (AB)^T and B^T A^T equal?  TrueI:[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]
I^T:[[1. 0. 0.][0. 1. 0.][0. 0. 1.]]
Are I^T and I equal?  True

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/27821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端菜鸡流水账日记 -- Pagination分页

哈喽哇大家,老规矩,见面先问好,今天是端午节假期后的第一天上班,大家假期开心吗,哈哈哈哈,我还是蛮开心的... 今天这篇笔记要分享得主要是一个分页器,但是不一样得地方是因为,首先是…

平台型组织的战略及OKR

本文主要探讨了在平台型组织中战略和OKR(目标与关键结果)的应用,以及如何在不同的组织架构中有效制定和执行战略。原文: Strategy and OKRs in the Platform Organization 战略:重要的承诺、复杂的过程 对于什么是组织的战略&…

EE trade:黄金期货交易指令有哪些

在黄金期货交易中,投资者常用的交易指令主要包括以下几种,每种指令都有其特殊用途和优势: 市价单(Market Order) 直接按市场当前价格买入或卖出合约。 适用于追求立即成交,不关注价格变动的情况。 限价单(Limit Order) 设定一…

百递云·API开放平台「智能地址解析API」助力地址录入标准化

地址信息的正确录入,是保证后续物流配送环节能够顺畅运行的必备前提,错误、不规范的收寄地址将会产生许多困扰甚至造成损失。 ✦地址信息通常包含国家、省、城市、街道、楼宇、门牌号等多个部分,较为复杂,填写时稍有疏忽就会出现…

使用Python爬取temu商品与评论信息

【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作! 【&…

如何下载Tuxera NTFS for Mac 2023软件及详细安装步骤

软件简介: 在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件。当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。…

驱动开发(三):内核层控制硬件层

驱动开发系列文章: 驱动开发(一):驱动代码的基本框架 驱动开发(二):创建字符设备驱动 驱动开发(三):内核层控制硬件层​​​​​​​ ←本文 目录…

Linux C编译器从零开发一

基础程序汇编 test.c int main() {return 42; } 查看反汇编 cc -o test test.c objdump -d -M intel test 0000000000001129 <main>:1129: f3 0f 1e fa endbr64 112d: 55 push rbp112e: 48 89 e5 mov rbp,rsp1131: b…

C#实现WMI获取硬盘参数

文章目录 背景涉及框架及库WMI查询小工具参数解释U盘移动硬盘本机设备 总结 背景 因为需求需要涉及获取硬盘的SN参数&#xff0c;但是又不想要获取到U盘或移动硬盘设备的SN&#xff0c;所以就浅浅的研究了一下。 以下就是我目前发现的一些参数的作用&#xff0c;够我用了。。。…

C++11移动语义

前言 之前我们已经知道了在类里开辟数组后&#xff0c;每一次传值返回和拷贝是&#xff0c;都会生成一个临时变量 class Arr { public://构造Arr() {/*具体实现*/ };//拷贝Arr(const Arr& ar) {/*具体实现*/ };//重载Arr operator(const Arr& ar) { /*具体实现*/Arr …

Canvas绘制老友记时钟

Canvas绘制老友记时钟 前言 一直做3D/2D可视化&#xff0c;Canvas API和三角函数&#xff0c;空间几何是基础。在官网上看了一遍Canvas API之后&#xff0c;决定绘制一个老友记时钟来巩固知识点&#xff0c;本文用实际代码讲解绘制过程。 代码 HTML <canvas id"myC…

计算机网络(9) TCP超时重传以及滑动窗口流量控制

一.确认机制与流量控制 引用&#xff1a;滑动窗口&#xff0c;TCP的流量控制机制 | 小菜学网络 确认机制 由于 IP 协议缺乏反馈机制&#xff0c;为保证可靠性&#xff0c;TCP 协议规定&#xff1a;当接收方收到一个数据后&#xff0c;必须回复 ACK 给发送方。这样发送方就能得…

Java习题

1.题目 使用Java的输入、输出流将一个文本文件的内容按行读出&#xff0c;每读出一行就顺序添加行号&#xff0c;并写入到另一个文件中。 代码及详细注释 import java.io.*; // 导入Java I/O库中的所有类public class E { // 定义一个公共类Epublic static void main(String…

企业网站建设方案

企业网站建设方案是企业推广和宣传的重要工具&#xff0c;可以帮助企业树立良好的形象&#xff0c;吸引更多的客户和合作伙伴。一个好的企业网站应该具备用户友好的界面设计、快速的加载速度、完善的信息分类和搜索功能、优质的内容和多样化的互动体验。下面将从以下几个方面介…

C++中的代理模式

目录 代理模式&#xff08;Proxy Pattern&#xff09; 实际应用 虚拟代理 远程代理 访问控制代理 总结 代理模式&#xff08;Proxy Pattern&#xff09; 代理模式是一种结构型设计模式&#xff0c;它提供了一个代理对象&#xff0c;充当了被访问对象的接口&#xff0c;使…

网络爬虫概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 网络爬虫&#xff08;又被称为网络蜘蛛、网络机器人&#xff0c;在某社区中经常被称为网页追逐者&#xff09;&#xff0c;可以按照指定的规则&#…

Sigir2024 ranking相关论文速读

简单浏览一下Sigir2024中与ranking相关的论文。不得不说&#xff0c;自从LLM大热后&#xff0c;传统的LTR方向的论文是越来越少了&#xff0c;目前不少都是RAG或类似场景下的工作了&#xff0c;比如查询改写、rerank等。 文章目录 The Surprising Effectiveness of Rankers Tr…

10分钟部署一个个人博客

关于vuepress这里没必要过多介绍&#xff0c;感兴趣的可以直接去官网了解&#xff0c;下面是官网首页地址截图 &#xff1a;https://v2.vuepress.vuejs.org/zh/ 透过这张图&#xff0c;我们也可以大致的对这个框架的特点有一定的认识&#xff0c;这就够了。其他的东西我们在使用…

Go TOKEN机制与跨域处理方式

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Web前端

1.HTML html语言就是一种标记语言&#xff0c;提供许多的标签&#xff0c;不同的标签功能不同&#xff0c;网页就是通过这些描述出来的。最终由浏览器 <!-- html注释 <!DOCTYPE html> 声明html语言的版本信息&#xff0c;为html5版本&#xff0c;告诉浏览器以html5…