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)
让我们通过一个例子:
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建议的操作,但如果您为输出分配名称,它会更灵活,更清晰.
无论x和dxdt什么帮助和文档symfun所说的"抽象的"或"任意"象征性的功能,即,一个没有定义.这些与常规的类型符号变量略有不同sym.在命令窗口中键入class(x)或whos查看变量类型.