矩阵值函数的导数——通用公式
嘿,这个问题问到点子上了!很多人刚开始接触矩阵值函数的导数时,都会从简单的整数幂入手,然后好奇有没有通用的规律——答案是有的,我给你一步步讲清楚~
首先明确问题背景:我们有一个矩阵值函数 $A(t):\mathbb{R}\rightarrow \mathbb R^{n\times n}$,还有一个实函数 $f(x):\mathbb R\rightarrow \mathbb R$。把实数乘法的规则自然推广到矩阵乘法后,我们就能把 $f$ 作用在矩阵上,得到 $f(A(t))$,比如常见的矩阵指数 $e^{A(t)}$、矩阵的实数次幂 $A(t)^r$ 都属于这类情况。
你的核心问题是:有没有通用表达式能把 $\frac{d}{dt}f(A(t))$ 和 $f'$、$A'(t)$ 以及 $A(t)$ 联系起来?
先从简单的整数幂情况入手
如果 $f(x)=x^k$($k$ 是整数),这个情况确实很直接,我们可以用乘积法则展开:
- 当 $k=2$ 时,$\frac{d}{dt}A(t)^2 = A(t)A'(t) + A'(t)A(t)$,这里要注意:如果 $A(t)$ 和 $A'(t)$ 不对易(也就是 $A(t)A'(t)\neq A'(t)A(t)$),这两项不能合并成 $2A(t)A'(t)$,这是矩阵导数和标量导数的关键区别!
- 推广到一般整数 $k$,导数公式是:
$$\frac{d}{dt}A(t)^k = \sum_{i=0}^{k-1} A(t)^i A'(t) A(t)^{k-1-i}$$
通用情况:Daleckii-Krein公式
对于更一般的函数 $f$(只要 $f$ 在 $A(t)$ 的谱上解析,简单说就是 $f$ 在 $A(t)$ 所有特征值的邻域内都能展开成收敛的幂级数),有一个通用的导数公式,叫做Daleckii-Krein公式,表达式如下:
$$\frac{d}{dt}f(A(t)) = \frac{1}{2\pi i}\int_{\Gamma} f'(z) (zI - A(t))^{-1} A'(t) (zI - A(t))^{-1} dz$$
这里的 $\Gamma$ 是复平面上包围 $A(t)$ 所有特征值的闭合曲线,积分是复围道积分。
这个公式的来源其实是矩阵函数的柯西积分表示:$f(A(t)) = \frac{1}{2\pi i}\int_{\Gamma} f(z)(zI - A(t))^{-1} dz$,我们对 $t$ 求导时,交换积分和求导的顺序,然后对预解矩阵 $(zI - A(t))^{-1}$ 求导,得到 $-(zI - A(t))^{-1}A'(t)(zI - A(t))^{-1}$,代入后就得到了上面的导数公式。
特殊简化情况:当 $A(t)$ 和 $A'(t)$ 对易时
如果 $A(t)$ 和它的导数 $A'(t)$ 可交换(也就是 $A(t)A'(t)=A'(t)A(t)$),那Daleckii-Krein公式可以简化成和标量链式法则非常像的形式:
$$\frac{d}{dt}f(A(t)) = f'(A(t))A'(t)$$
比如当 $A(t)=g(t)B$($g(t)$ 是标量函数,$B$ 是常矩阵)时,$A'(t)=g'(t)B$,显然和 $A(t)$ 对易,这时候导数就可以用这个简化公式计算,比如 $\frac{d}{dt}e^{g(t)B} = g'(t)e^{g(t)B}B$,和标量的链式法则一致。
举个例子:矩阵指数的导数
对于矩阵指数 $f(x)=e^x$,如果 $A(t)$ 和 $A'(t)$ 不对易,导数就不是 $e^{A(t)}A'(t)$,而是用Daleckii-Krein公式,或者用级数展开验证:
$$e^{A(t)} = \sum_{k=0}^\infty \frac{A(t)^k}{k!}$$
对 $t$ 求导后得到:
$$\frac{d}{dt}e^{A(t)} = \sum_{k=0}^\infty \frac{1}{k!}\sum_{i=0}{k-1}A(t)i A'(t)A(t)^{k-1-i}$$
这个结果和围道积分的计算是完全一致的。
备注:内容来源于stack exchange,提问作者Alberto Rolandi




