如何获得关于时间的符号偏导数

时间:2014-11-12 01:33:03

标签: matlab symbolic-math derivative

假设我有这个功能

f(t) = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))

我如何根据时间计算其衍生物?

1 个答案:

答案 0 :(得分:6)

您需要将变量及其中的函数声明为符号,然后使用diff:

clear
clc

syms a x y t h

a(t) = symfun(sym('a(t)'), t)
x(t) = symfun(sym('x(t)'), t)
y(t) = symfun(sym('y(t)'), t)

F = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))

DerF_t = diff(F,t)

给出以下(杂乱)输出:

F =   h + 4*sin(a(t)) + cos(y(t))*sin(x(t)) + x(t)*y(t)
DerF_t =   x(t)*diff(y(t), t) + y(t)*diff(x(t), t) + 4*cos(a(t))*diff(a(t), t) + cos(x(t))*cos(y(t))*diff(x(t), t) - sin(x(t))*sin(y(t))*diff(y(t), t)

注意,因为a(t),x(t)和y(t)被简单地定义为' t'我们坚持他们的象征性'衍生物(我不知道对不起的术语)......即。例如,diff(a(t))。

希望它是你所追求的!