我有以下代码:
syms t x;
e=symfun(x-t,[x,t]);
在我要解决的问题中,x是t的函数,但我只知道它在给定t的值,所以我在这里将它建模为变量。我想在没有"的情况下区分e。失去" x,这样我就可以用x'(t)替换它,这是我所知道的。 在我的另一个问题中,有人建议我写下以下内容:
e=symfun(exp(t)-t,[t]);
在差异检查后,我是否可以用x'(t)的值替换exp(t)。
这可能吗?还有其他更简洁的方法吗?
答案 0 :(得分:1)
我真的不确定我理解你的问题(而且我也不了解你的other question),但这是一次尝试。
由于x
是时间的函数,因此我们可以通过使symfun
的帮助和文档调用" abstract"或"任意"符号功能,即没有定义的功能。在Matlab R2014b中:
syms t x(t);
e = symfun(x-t,t)
返回
e(t) =
x(t) - t
关于时间取symfun
函数e
的导数:
edot = diff(e,t)
返回
edot(t) =
D(x)(t) - 1
edot(t)
的表达式是x
相对于时间的导数的函数:
xdot = diff(x,t)
这是摘要symfun
:
xdot(t) =
D(x)(t)
现在,我认为您希望能够将xdot
(xdot_given
)的特定值替换为e(t)
t
t_given
的{{1}}。您应该只使用subs
来执行此操作,例如:
sums t_given xdot_given;
edot_t_given = subs(edot,{t,xdot},{t_given, xdot_given});
如果作为时间函数的t
的唯一部分是edot
部分,则可能无需替换xdot
。