矩阵求导运算

article/2025/10/8 6:30:10

基本公式:
Y = A * X --> DY/DX = A'
Y = X * A --> DY/DX = A
Y = A' * X * B --> DY/DX = A * B'
Y = A' * X' * B --> DY/DX = B * A'

1. 矩阵Y对标量x求导:

相当于每个元素求导数后转置一下,注意M×N矩阵求导后变成N×M了

Y = [y(ij)] --> dY/dx = [dy(ji)/dx]

2. 标量y对列向量X求导:

注意与上面不同,这次括号内是求偏导,不转置,对N×1向量求导后还是N×1向量

y = f(x1,x2,..,xn) --> dy/dX = (Dy/Dx1,Dy/Dx2,..,Dy/Dxn)'

3. 行向量Y'对列向量X求导:

注意1×M向量对N×1向量求导后是N×M矩阵。

将Y的每一列对X求偏导,将各列构成一个矩阵。

重要结论:

dX'/dX = I

d(AX)'/dX = A'

4. 列向量Y对行向量X’求导:

转化为行向量Y’对列向量X的导数,然后转置。

注意M×1向量对1×N向量求导结果为M×N矩阵。

dY/dX' = (dY'/dX)'

5. 向量积对列向量X求导运算法则:

注意与标量求导有点不同。

d(UV')/dX = (dU/dX)V' + U(dV'/dX)

d(U'V)/dX = (dU'/dX)V + (dV'/dX)U'

重要结论:

d(X'A)/dX = (dX'/dX)A + (dA/dX)X' = IA + 0X' = A

d(AX)/dX' = (d(X'A')/dX)' = (A')' = A

d(X'AX)/dX = (dX'/dX)AX + (d(AX)'/dX)X = AX + A'X

6. 矩阵Y对列向量X求导:

将Y对X的每一个分量求偏导,构成一个超向量。

注意该向量的每一个元素都是一个矩阵。

7. 矩阵积对列向量求导法则:

d(uV)/dX = (du/dX)V + u(dV/dX)

d(UV)/dX = (dU/dX)V + U(dV/dX)

重要结论:

d(X'A)/dX = (dX'/dX)A + X'(dA/dX) = IA + X'0 = A

8. 标量y对矩阵X的导数:

类似标量y对列向量X的导数,

把y对每个X的元素求偏导,不用转置。

dy/dX = [ Dy/Dx(ij) ]

重要结论:

y = U'XV = ΣΣu(i)x(ij)v(j) 于是 dy/dX = [u(i)v(j)] = UV'

y = U'X'XU 则 dy/dX = 2XUU'

y = (XU-V)'(XU-V) 则 dy/dX = d(U'X'XU - 2V'XU + V'V)/dX = 2XUU' - 2VU' + 0 = 2(XU-V)U'

9. 矩阵Y对矩阵X的导数:

将Y的每个元素对X求导,然后排在一起形成超级矩阵。

 

10.乘积的导数

d(f*g)/dx=(df'/dx)g+(dg/dx)f'

结论

d(x'Ax)=(d(x'')/dx)Ax+(d(Ax)/dx)(x'')=Ax+A'x   (注意:''是表示两次转置)



比较详细点的如下:


 [转载]矩阵求导公式【转】


[转载]矩阵求导公式【转】

[转载]矩阵求导公式【转】

[转载]矩阵求导公式【转】

[转载]矩阵求导公式【转】


http://lzh21cen.blog.163.com/blog/static/145880136201051113615571/

http://hi.baidu.com/wangwen926/blog/item/eb189bf6b0fb702b720eec94.html


其他参考:

 

Contents

  • Notation
  • Derivatives of Linear Products
  • Derivatives of Quadratic Products

Notation

  • d/dx (y) is a vector whose (i) element is dy(i)/dx
  • d/dx (y) is a vector whose (i) element is dy/dx(i)
  • d/dx (yT) is a matrix whose (i,j) element is dy(j)/dx(i)
  • d/dx (Y) is a matrix whose (i,j) element is dy(i,j)/dx
  • d/dX (y) is a matrix whose (i,j) element is dy/dx(i,j)

Note that the Hermitian transpose is not used because complex conjugates are not analytic.

In the expressions below matrices and vectors ABC do not depend on X.

Derivatives of Linear Products

  • d/dx (AYB) =A * d/dx (Y) * B
    • d/dx (Ay) =A * d/dx (y)
  • d/dx (xTA) =A
    • d/dx (xT) =I
    • d/dx (xTa) = d/dx (aTx) = a
  • d/dX (aTXb) = abT
    • d/dX (aTXa) = d/dX (aTXTa) = aaT
  • d/dX (aTXTb) = baT
  • d/dx (YZ) =Y * d/dx (Z) + d/dx (Y) * Z

Derivatives of Quadratic Products

  • d/dx (Ax+b)TC(Dx+e) = ATC(Dx+e) + DTCT(Ax+b)
    • d/dx (xTCx) = (C+CT)x
      • [C: symmetric]: d/dx (xTCx) = 2Cx
      • d/dx (xTx) = 2x
    • d/dx (Ax+b)T (Dx+e) = AT (Dx+e) + DT (Ax+b)
      • d/dx (Ax+b)T (Ax+b) = 2AT (Ax+b)
    • [C: symmetric]: d/dx (Ax+b)TC(Ax+b) = 2ATC(Ax+b)
  • d/dX (aTXTXb) = X(abT + baT)
    • d/dX (aTXTXa) = 2XaaT
  • d/dX (aTXTCXb) = CTXabT + CXbaT
    • d/dX (aTXTCXa) = (C + CT)XaaT
    • [C:Symmetric] d/dX (aTXTCXa) = 2CXaaT
  • d/dX ((Xa+b)TC(Xa+b)) = (C+CT)(Xa+b)aT

Derivatives of Cubic Products

  • d/dx (xTAxxT) = (A+AT)xxT+xTAxI

Derivatives of Inverses

  • d/dx (Y-1) = -Y-1d/dx (Y)Y-1

Derivative of Trace

Note: matrix dimensions must result in an n*n argument for tr().

  • d/dX (tr(X)) = I
  • d/dX (tr(Xk)) =k(Xk-1)T
  • d/dX (tr(AXk)) = SUMr=0:k-1(XrAXk-r-1)T
  • d/dX (tr(AX-1B)) = -(X-1BAX-1)T
    • d/dX (tr(AX-1)) =d/dX (tr(X-1A)) = -X-TATX-T
  • d/dX (tr(ATXBT)) = d/dX (tr(BXTA)) = AB
    • d/dX (tr(XAT)) = d/dX (tr(ATX)) =d/dX (tr(XTA)) = d/dX (tr(AXT)= A
  • d/dX (tr(AXBXT)) = ATXBT + AXB
    • d/dX (tr(XAXT)) = X(A+AT)
    • d/dX (tr(XTAX)) = XT(A+AT)
    • d/dX (tr(AXTX)) = (A+AT)X
  • d/dX (tr(AXBX)) = ATXTBT + BTXTAT
  • [C:symmetric] d/dX (tr((XTCX)-1A) = d/dX (tr(A (XTCX)-1) = -(CX(XTCX)-1)(A+AT)(XTCX)-1
  • [B,C:symmetric] d/dX (tr((XTCX)-1(XTBX)) = d/dX (tr( (XTBX)(XTCX)-1) = -2(CX(XTCX)-1)XTBX(XTCX)-1 + 2BX(XTCX)-1

Derivative of Determinant

Note: matrix dimensions must result in an n*n argument for det().

  • d/dX (det(X)) = d/dX (det(XT)) = det(X)*X-T
    • d/dX (det(AXB)) = det(AXB)*X-T
    • d/dX (ln(det(AXB))) = X-T
  • d/dX (det(Xk)) = k*det(Xk)*X-T
    • d/dX (ln(det(Xk))) = kX-T
  • [Real] d/dX (det(XTCX)) = det(XTCX)*(C+CT)X(XTCX)-1
    • [CReal,Symmetric] d/dX (det(XTCX)) = 2det(XTCX)* CX(XTCX)-1
  • [CReal,Symmetricc] d/dX (ln(det(XTCX))) = 2CX(XTCX)-1

Jacobian

If y is a function of x, then dyT/dx is the Jacobian matrix of y with respect to x.

Its determinant, |dyT/dx|, is the Jacobian of y with respect to x and represents the ratio of the hyper-volumes dy and dx. The Jacobian occurs when changing variables in an integration: Integral(f(y)dy)=Integral(f(y(x)) |dyT/dx| dx).

Hessian matrix

If f is a function of x then the symmetric matrix d2f/dx2 = d/dxT(df/dx) is the Hessian matrix of f(x). A value of x for which df/dx = 0 corresponds to a minimum, maximum or saddle point according to whether the Hessian is positive definite, negative definite or indefinite.

  • d2/dx2 (aTx) = 0
  • d2/dx2 (Ax+b)TC(Dx+e) = ATCD + DTCTA
    • d2/dx2 (xTCx) = C+CT
      • d2/dx2 (xTx) = 2I
    • d2/dx2 (Ax+b)T (Dx+e) = ATD + DTA
      • d2/dx2 (Ax+b)T (Ax+b) = 2ATA
    • [C: symmetric]: d2/dx2 (Ax+b)TC(Ax+b) = 2ATCA  
http://www.psi.toronto.edu/matrix/calculus.html

http://www.stanford.edu/~dattorro/matrixcalc.pdf

http://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/IFEM.AppD.d/IFEM.AppD.pdf

http://www4.ncsu.edu/~pfackler/MatCalc.pdf

http://center.uvt.nl/staff/magnus/wip12.pdf


http://chatgpt.dhexx.cn/article/QQAnbfa2.shtml

相关文章

autograd-自动求导系统

torch.autograd 权值的更新需要求解梯度,pytorch提供了自动求导系统,我们只需要搭建前向传播计算图,由autograd的方法就可以得到所有张量的梯度。 其中最常用的方法是backward torch.autograd.backward() 功能:自动求取各个节点…

导数与微分 — 高等数学

文章目录 考点一:导数的定义函数在一点处的导数单侧导数(1)左导数(2)右导数 充要条件笔记 考点二:可导与连续的关系知识点笔记 考点三:导数的几何意义知识点切线方程、法线方程笔记 考点四&…

05 指数函数求导

2^x的求导 前面我们探索了一些常见函数的导数,但是指数函数是非常重要的一种类型。 1. 从几何上探索 设t为天数,P(t)为人口数量。离散的图 要想图像连续就得转成质量,所以P(t)换成M(t)。dM/dt就是质量的微小变化率和天数的微小变化量的比例…

23微分方程和exp(At)

预备知识 1.1 一阶线性齐次微分方程的解 d y d x P ( x ) y 0 (1) \frac{dy}{dx}P(x)y0\tag{1} dxdy​P(x)y0(1) 其齐次通解为: y C e − ∫ P ( x ) d x (2) yCe^{-\int P(x)dx}\tag{2} yCe−∫P(x)dx(2) 令 P ( x ) − λ P(x)-\lambda P(x)−λ&#xff0c…

人工智能数学基础:无理数e的由来以及对数、指数函数的求导

一、e的由来 函数(11/x)x在x一>∞时的极限 由于数列{xn}(11/n)n在n一>∞时存在极限。 证明如下: 当将上述极限推广到n为实数x时也成立,因为任意一个实数都能找到一个n和n1,使得x∈[n,n…

x的1/x次方的导数是多少?怎么算?

方法一: 原式化为e的[1/x•ln(x)]次幂,再根据复合函数求导法则求解。 方法二:

c语言x的n次方导数,a的x次方的导数

a的x次方的导数2019-12-07 13:56:28文/董月 指数函数的求导公式:(a^x)(lna)(a^x),实质上,求导就是一个求极限的过程,导数的四则运算法则也来源于极限的四则运算法则。反之,已知导函数也可以倒过来求原来的函数&#xf…

软件流程图及功能节点图

需求分析 根据产品原型图,为了弄清楚产品的业务流程以及确定项目中存在的功能点及其具体规则和要求,绘制出软件流程图以及功能节点图,本文以赞赞羊项目为例。 1.软件流程图:作用是弄清楚项目的业务流程。 流程图符号说明&#xff…

软件工程 -- 程序流程图

1.程序流程图:表示了程序的操作顺序,用于对控制流程的描述 1.1 符号 1.2 三种基本控制结构 1.2.1 顺序结构 1.2.2 分支结构 多分支结构 1.2.3 循环结构

QT案例 使用QGraphicsView和命令模式设计完成流程图功能软件,参考QT官方流程图案例【diagramscene】

之前总结资料时候,看到一个Qt实现流程的专栏,后面就想着参考这个项目和官方的【diagramscene】项目,自己再写一个流程图软件来总结学习下,于是就想到使用QGraphicsView来完成相关功能,再使用命令模式来优化使用过程&am…

软件工程-系统流程图

在软件工程可行性研究中需要建立新系统的高层逻辑模型,这个就需要系统流程图了。 作用 系统流程图时描述物理系统的工具 物理系统 所谓物理系统,就是一个具体实现的系统。 与程序流程图的区别 在系统流程图中某些符号与程序流程图中符号形式相同&#…

软件工程 可行性研究、系统流程图、数据流图。

第二章:可行性研究 1.1研究方案的可行性 (1)技术可行性 (2)操作可行性 (3)经济可行性 1.2系统流程图 系统流程图表达的是系统各部件间的流动情况,不是对信息进行加工处理的控制…

ipadpro画流程图_流程图制作软件,这款软件让你5分钟就能搞定流程图

流程图制作软件,这款软件让你5分钟就能搞定流程图 2019-08-05 16:34:24 3点赞 16收藏 0评论 流程图是用来表示算法、工作流的一种框图图示,其广泛应用于分析、设计和记录等领域。市面上绘制流程图的工具并不多,找到一款适合自己的软件变得尤其…

系统流程图

系统流程图 在进行可行性研究时需要理解和分析现有系统,并以概括的形式表达对现有系统的认识;进入设计阶段后应该把设想的新系统的逻辑模型变成物理模型,因此就需要描绘未来的物理系统的概貌。 系统流程图是概括地描绘物理系统的传统工具&…

软件工程系统流程图

对现行系统进行初步分析是可行性研究当中重要的一步,新系统的一些信息主要来源于现行系统同时要根据实际需求完成现行系统的部分功能,并在此基础上对现行系统中存在的问题进行改善和修复,分析现行系统的主要方法就是分析系统的各个部分功能模…

流程图培训

工具 wps 目前咱们在新建里面,可以新建流程图 构成流程图的图形符号及其作用 常用的流程图介绍 flowchart 和 BPMN 两种 flowchart: 最开始的全名是”Process Flow Charts”,即处理流程图表。 BPMN: 定义了业务流程图,其基…

SD软件流程图

SD软件流程图 SD软件流程图 Host configure ClockSD bus power controlchanging bus widthTimeout setting on data lineCard initialization and identificationTransaction Control Transaction Control without DataTransaction Control with DataAbort TransactionChange …

软件工程程序流程图

程序流程图 程序流程图(Program Flow Chart)是用统一规定的标准符号描述程序运行具体步骤的图形表示。程序框图的设计是在处理流程图的基础上,通过对输入输出数据和处理过程的详细分析,将计算机的主要运行步骤和内容标识出来。程…

软件开发流程及类型图

前记 今天接触到了软件开发流程,对其想进行进一步了解,于是网上搜索了软件开发流程的各种资料和信息,网上的资料真是多如牛毛,数不胜数,让人不觉眼前一亮,茅塞顿开,现把自己的想法和感受整理如…