草庐IT

【数学】【矩阵】迹(Trace)及相关性质

AbaloneVH 2024-05-05 原文

很多数学上的性质都记不牢,每次用到都需要重新推导。为了减少此类时间浪费,决定以后每次使用时彻底整理好,自用之余也可造福读者。
本文所有内容均已严格查证并推导,但限于水平,难免有误。恳请发现问题的各位予以指正,谢谢!

1. 迹的定义

在线性代数中,将 n n n阶方阵(即 n × n n\times n n×n矩阵) A {\bf A} A的主对角线上各个元素的和称为方阵 A {\bf A} A的迹(trace),记为 t r ( A ) {\rm tr}(\bf A) tr(A)

这里需要注意的是,迹是在方阵上定义的。如果不是方阵,那么就没有迹。MATLAB中可以对方阵A直接使用trace函数来得到其迹(代码:trace(A)),但如果对非方阵使用trace函数,将报错“矩阵必须为方阵”。

2. 迹运算的基本性质

(1) 转置不改变迹: t r ( A T ) = t r ( A ) {\rm tr}({\bf A}^{\rm T}) = {\rm tr}(\bf A) tr(AT)=tr(A)
(2) 迹运算是线性运算: t r ( a A + b B ) = a ⋅ t r ( A ) + b ⋅ t r ( B ) {\rm tr}(a{\bf A}+b{\bf B}) = a\cdot{\rm tr}({\bf A}) + b\cdot{\rm tr}({\bf B}) tr(aA+bB)=atr(A)+btr(B)
(3) 交换矩阵乘法顺序不改变迹:
t r ( A B ) = t r ( B A ) {\rm tr}({\bf AB})={\rm tr}({\bf BA}) tr(AB)=tr(BA)
t r ( A B C ) = t r ( C A B ) = t r ( B C A ) {\rm tr}({\bf ABC})={\rm tr}({\bf CAB})={\rm tr}({\bf BCA}) tr(ABC)=tr(CAB)=tr(BCA)

3. 迹与偏导的常见混合运算

(1) ∂ t r ( A B ) ∂ A = B T \frac{\partial{\rm tr}({\bf AB})}{\partial {\bf A}}= {\bf B}^{\rm T} Atr(AB)=BT, ∂ t r ( A B ) ∂ B = A T \frac{\partial{\rm tr}({\bf AB})}{\partial {\bf B}}= {\bf A}^{\rm T} Btr(AB)=AT
(2) ∂ t r ( A A T ) ∂ A = 2 A \frac{\partial {\rm tr}( {\bf A} {\bf A}^{\rm T} )}{\partial {\bf A}}= 2{\bf A} Atr(AAT)=2A
证明: ∂ t r ( A A T ) ∂ A \frac{\partial {\rm tr}( {\bf A} {\bf A}^{\rm T} )}{\partial {\bf A}} Atr(AAT)
= ∂ t r ( A 不变 A T ) ∂ A + ∂ t r ( A A 不变 T ) ∂ A =\frac{\partial {\rm tr}( {\bf A}_{不变} {\bf A}^{\rm T} )}{\partial {\bf A}}+\frac{\partial {\rm tr}( {\bf A} {\bf A}^{\rm T}_{不变} )}{\partial {\bf A}} =Atr(A不变AT)+Atr(AA不变T)
= 2 ∂ t r ( A A 不变 T ) ∂ A =2\frac{\partial {\rm tr}( {\bf A} {\bf A}^{\rm T}_{不变} )}{\partial {\bf A}} =2Atr(AA不变T)(利用2中性质(1),有 ∂ t r ( A 不变 A T ) ∂ A = ∂ t r ( A A 不变 T ) ∂ A \frac{\partial {\rm tr}( {\bf A}_{不变} {\bf A}^{\rm T} )}{\partial {\bf A}}=\frac{\partial {\rm tr}( {\bf A} {\bf A}^{\rm T}_{不变} )}{\partial {\bf A}} Atr(A不变AT)=Atr(AA不变T)
= 2 A =2{\bf A} =2A
(3) ∂ t r ( A B A T C ) ∂ A = 2 A \frac{\partial {\rm tr}( {\bf AB} {\bf A}^{\rm T}{\bf C} )}{\partial {\bf A}}= 2{\bf A} Atr(ABATC)=2A
证明: ∂ t r ( A B A T C ) ∂ A \frac{\partial {\rm tr}( {\bf AB} {\bf A}^{\rm T}{\bf C} )}{\partial {\bf A}} Atr(ABATC)
= ∂ t r ( A 不变 B A T C ) ∂ A + ∂ t r ( A B A 不变 T C ) ∂ A =\frac{\partial {\rm tr}( {\bf A}_{不变} {\bf B} {\bf A}^{\rm T}{\bf C} )}{\partial {\bf A}}+\frac{\partial {\rm tr}( {\bf AB} {\bf A}^{\rm T}_{不变}{\bf C} )}{\partial {\bf A}} =Atr(A不变BATC)+Atr(ABA不变TC)
= ∂ t r ( A T C A 不变 B ) ∂ A + ∂ t r ( A B A 不变 T C ) ∂ A =\frac{\partial {\rm tr}({\bf A}^{\rm T} {\bf C} {\bf A}_{不变} {\bf B})}{\partial {\bf A}}+\frac{\partial {\rm tr}( {\bf AB} {\bf A}^{\rm T}_{不变}{\bf C} )}{\partial {\bf A}} =Atr(ATCA不变B)+Atr(ABA不变TC)(利用2中性质(1))
= ∂ t r ( B T A 不变 T C T A ) ∂ A + ∂ t r ( A B A 不变 T C ) ∂ A =\frac{\partial {\rm tr}({\bf B}^{\rm T} {\bf A}_{不变}^{\rm T} {\bf C}^{\rm T} {\bf A})}{\partial {\bf A}}+\frac{\partial {\rm tr}( {\bf AB} {\bf A}^{\rm T}_{不变}{\bf C} )}{\partial {\bf A}} =Atr(BTA不变TCTA)+Atr(ABA不变TC)(利用2中性质(3))
= ( B T A T C T ) T + ( B A T C ) T ={({\bf B}^{\rm T} {\bf A}^{\rm T} {\bf C}^{\rm T})}^{\rm T}+{({\bf B} {\bf A}^{\rm T}{\bf C})}^{\rm T} =(BTATCT)T+(BATC)T(利用3中结果(1))
= C A B + C T A B T ={\bf CAB} + {\bf C}^{\rm T} {\bf A}{\bf B}^{\rm T} =CAB+CTABT

有关【数学】【矩阵】迹(Trace)及相关性质的更多相关文章

  1. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  2. 旋转矩阵的几何意义 - 2

    点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度;     在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。

  3. ruby-on-rails - 在具有 ActiveRecord 条件的相关模型中按字段排序 - 2

    我正在尝试按Rails相关模型中的字段进行排序。我研究的所有解决方案都没有解决如果相关模型被另一个参数过滤?元素模型classItem相关模型:classPriority我正在使用where子句检索项目:@items=Item.where('company_id=?andapproved=?',@company.id,true).all我需要按相关表格中的“位置”列进行排序。问题在于,在优先级模型中,一个项目可能会被多家公司列出。因此,这些职位取决于他们拥有的company_id。当我显示项目时,它是针对一个公司的,按公司内的职位排序。完成此任务的正确方法是什么?感谢您的帮助。PS-我

  4. ruby - 我可以在 Ruby 中动态调用数学运算符吗? - 2

    ruby中有这样的东西吗?send(+,1,2)我想让这段代码看起来不那么冗余ifop=="+"returnarg1+arg2elsifop=="-"returnarg1-arg2elsifop=="*"returnarg1*arg2elsifop=="/"returnarg1/arg2 最佳答案 是的,只需像这样使用send(或者更好的是public_send):arg1.public_send(op,arg2)这是可行的,因为Ruby中的大多数运算符(包括+、-、*、/、andmore)只需调用方法。所以1+2与1.+(2)相同

  5. ruby - 使用指向 ruby​​ 可执行文件的符号链接(symbolic link)时查找相关库 - 2

    假设您有一个可执行文件foo.rb,其库bar.rb的布局如下:/bin/foo.rb/lib/bar.rb在foo.rb的header中放置以下要求以在bar.rb中引入功能:requireFile.dirname(__FILE__)+"../lib/bar.rb"只要对foo.rb的所有调用都是直接的,这就可以正常工作。如果你把$HOME/project和符号链接(symboliclink)foo.rb放入$HOME/usr/bin,然后__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb关于foo.rb的目录名.我意识到像ruby​​gems这

  6. 华为OD机试真题 C++ 实现【带传送阵的矩阵游离】【2023 Q2 | 200分】 - 2

            所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。

  7. HarmonyOS原子化服务开发相关术语 - 2

    术语中文解释Ability原子化服务帮助用户完成任务的原子化服务,和用户的意图进行关联。Fulfillment服务履行通过图标,卡片,语音等形式呈现用户意图。开发者通过接口的方式,处理用户意图,返回内容。Intent意图用于表达用户想要达成的目标或完成的任务。HUAWEIAssistant智能助手“无微不智”的个人助手,通过不断的学习用户的使用习惯,不断的为用户提供贴心的精准的便捷的个性化服务。AISearch全局搜索用户可快速搜索关键词,与之匹配的原子化服务则会出现在搜索结果中。SmartService智慧服务用户订阅原子化服务,在到达特定触发条件(时间、地点、事件)后,卡片推送至用户智能助

  8. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  9. ruby |设计数学? - 2

    情况:我正在编写一个程序来求解素数。我需要解决4x^2+y^2=n的问题,其中n是一个已知变量。是的,必须是Ruby。我愿意在这个项目上花费大量时间。我最好自己编写方程式的求解算法,并将其作为该项目的一部分。我真正喜欢的是:如果任何人都可以向我提供指南、网站的链接,或者关于与求解代数方程特别相关的形式算法的构造的歧义消除,或者向我提供似乎你是读者它会帮助我完成任务。请不要建议我使用其他语言。如果您在回答之前接受我真的非常想这样做,我将不胜感激。该项目没有范围或时间限制,也不以营利为目的。这是为了我自己的教育。注意:我并不直接反对为Ruby实现和使用现存的数学库/模块/其他东西,但我更喜

  10. ruby - 我在哪里可以找到 Ruby 中的数学密集型应用程序 - 2

    我发现许多Rails应用程序主要针对企业、社交网络类型的Web应用程序。我看到有人将Ruby与一些出色的OOPS语言(如Java和C#)进行了比较,但我确实发现很难获得一些数学密集型应用程序。非常感谢任何知识渊博的输入(指向示例程序的链接等),其中轻松显示了语言的用法,就像快速启动或显示该语言如何用于各种数学问题一样。 最佳答案 不幸的是,Ruby并没有在数学和科学计算领域涉足太多。目前,有一个名为SciRuby的pre-alpha库它试图为Ruby带来更多面向数学的功能。他们正试图构建一个NumPy/SciPy等价物。SciRub

随机推荐