我可以在MATLAB中更改符号函数的公式吗?

时间:2014-08-10 10:27:08

标签: matlab symbolic-math differentiation

我有以下代码:

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)。

这可能吗?还有其他更简洁的方法吗?

1 个答案:

答案 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)

现在,我认为您希望能够将xdotxdot_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