符号矩阵函数微分

Posted

技术标签:

【中文标题】符号矩阵函数微分【英文标题】:Symbol matrix function differentiation 【发布时间】:2013-03-03 14:38:11 【问题描述】:

1.函数'diff'似乎只能与单元素变量'v'一起使用

diff(f,v); % f(v), v is a one-lelement variable 

虽然我想对符号矩阵进行微分

diff(F, V); % F(V), V is a symbol matrix variable 

2.如果我对符号矩阵的每个元素进行微分,得到diff(F, V)的结果,而结果是逐元素格式的,

[g1(v_i), g2(v_i), ..., gn(v_i)] 

所以我想知道有没有一些方法可以像这样以符号矩阵变量格式生成结果?

g(V)

3.例如

diff(x^T*A*x, x) = A^T*x + A*x; % A is a constant matrix, x is a vector

【问题讨论】:

【参考方案1】:

我相信你正在寻找jacobian

【讨论】:

不完全是,matlab的jacobian函数的结果像上面的第2个一样展开。 那我想我误解了你想看的内容。这是关于输出/显示的问题,还是您正在寻找如何将g(V) 作为导数的输入? 例如如果matlab的jacobian的输出是ans = [a11+b11, a12+b12; a21+b21, a22+b22] 但是,我想获得这样的输出 ans = A+B 抱歉,Symbolic Math Toolbox 无法做到这一点(也许在特定情况下,但我想不出任何)。当然,您可以联系 support@mathworks.com 并提出改进建议。

以上是关于符号矩阵函数微分的主要内容,如果未能解决你的问题,请参考以下文章

背包问题怎样给出符号说明,目标函数和约束条件

matlab求解常微分方程

python中几种自动微分库

英文文献中的数学符号

MATLAB符号运算

MATLAB的符号运算变量如何创建?