原文地址:矩阵对矩阵求导作者:香香矩阵求导 属于 矩阵计算,应该查找 matrix calc l s 的文献:  matrixintrol#intro  matrixcalc l sl  ~dattorromatrixcalc.pdf  engineeringcasco rses.difem.difem.appd.difem.appd.pdf  .ed ~pfacklermatcalc.pdf .  swip12.pdf 在网上看到有人贴了如下求导公式: y = a * x -- dydx = a y = x * a -- dydx = a y = a * x * b -- dydx = a * b y = a * x * b -- dydx = b * a 于是把以前学过的矩阵求导部分整理一下: 1. 矩阵y对标量x求导: 相当于每个元素求导数后转置一下,注意m×n矩阵求导后变成n×m了 y = [y(ij)] -- dydx = [dy(ji)dx] 2. 标量y对列向量x求导: 注意与上面不同,这次括号内是求偏导,不转置,对n×1向量求导后还是n×1向量 y = f(x1,x2.,xn) -- dydx = (dydx1,dydx2.,dydxn) 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矩阵. dydx = (dy dx) 5. 向量积对列向量x求导运算法则: 注意与标量求导有点不同. d(uv )dx = (dudx)v + u(dv dx) d(u v)dx = (du dx)v + (dv dx)u 重要结论: d(x a)dx = (dx dx)a + (dadx)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( v)dx = (d dx)v + (dvdx) d(uv)dx = (dudx)v + u(dvdx) 重要结论: d(x a)dx = (dx dx)a + x (dadx) = ia + x 0 = a 8. 标量y对矩阵x的导数: 类似标量y对列向量x的导数, 把y对每个x的元素求偏导,不用转置. dydx = [ dydx(ij) ] 重要结论: y = u xv = σσ (i)x(ij)v(j) 于是 dydx = [ (i)v(j)] = uv y = u x xu 则 dydx = 2xuu y = (xu-v) (xu-v) 则 dydx = d(u x xu - 2v xu + v v)dx = 2xuu - 2vu + 0 = 2(xu-v)u 9. 矩阵y对矩阵x的导数: 将y的每个元素对x求导,然后排在一起形成超级矩阵.