在符号表达式中替换函数的导数

Gus*_*Gus 4 matlab symbolic-math

我有同样的问题在这里.

在Matlab中,函数的导数可以象征性地表示为

>> syms t
>> syms x(t)
>> diff(x,t)

ans(t) =

D(x)(t)
Run Code Online (Sandbox Code Playgroud)

但是,如果我知道衍生物,我怎么能在表达式中替换.

>> subs(ans,D(x)(t),3)
Error: ()-indexing must appear last in an index expression.
Run Code Online (Sandbox Code Playgroud)

hor*_*ler 5

让我们通过一个例子:

syms t x(t) y
f = x^2+y
dfdt = diff(f,t) % returns 2*D(x)(t)*x(t)
dxdt = diff(x,t) % returns D(x)(t)
subs(dfdt,dxdt,3)
Run Code Online (Sandbox Code Playgroud)

返回6*x(t).关键是,这D(x)(t)只是衍生物相对于时间的印刷表示,而不是实际值.您需要将其分配给实际变量.在您的示例中,您需要执行@rayeng建议的操作,但如果您为输出分配名称,它会更灵活,更清晰.

无论xdxdt什么帮助和文档symfun所说的"抽象的"或"任意"象征性的功能,即,一个没有定义.这些与常规的类型符号变量略有不同sym.在命令窗口中键入class(x)whos查看变量类型.