计算一阶函数的导数时遇到问题如下:
syms x(t)
xd = diff(x);
y = xd*xd;
如何用xd计算y的导数;
functionalDerivative(y,xd);
然后,它会引发如下错误:
Error using symengine
The variable 'diff(x(t), t)' is invalid.
结果应为:
2*diff(x,t)
我也认为名称xd是一个符号变量,然后使用diff(y,xd),但这种方式对某些情况并不好。我们有任何方法可以直接计算微分函数的导数吗? 请给我一些解决方案。 提前谢谢!
答案 0 :(得分:1)
我发现符号引擎无法处理这个问题有点奇怪,缺少一个更好的词我会从TeX世界借用一个不可扩展的表达。但是,您可以通过subs
来处理限制 - 在临时变量中获取导数,并subs
将其重新输入:
>> syms u(t)
>> dydxd = subs(functionalDerivative(subs(y,xd(t),u(t)),u),u(t),xd(t))
dydxd(t) =
2*diff(x(t), t)
希望这种subs
方法在大多数情况下都有效,但y
的更复杂的表达式可能会使其失效。