将一个符号变量替换为两个符号变量

时间:2013-11-11 13:53:32

标签: matlab substitution symbolic-math

我有一个关于MATLAB符号变量替换的问题,我觉得应该有一个优雅的解决方案,但我无法弄清楚如何使用方法。

我想在一个等式中用一个符号变量代替两个符号变量。我已经采用相对于时间的位置来区分速度,然后采用速度的微分来找到加速度。现在,我想用vel=acc*t之类的东西替换速度方程,以消除符号变量t。

例如

vel_robot=S*acc*t;

我想要它展示;

vel_robot=S*vel

这是我正在处理的程序的简化问题。基本上我需要从我的答案中删除。

有没有办法在MATLAB中执行此操作?我知道我可以使用vel_robot = subs(vel_robot,acc,vel)替换另一个符号变量,但我想知道的是我是否可以用另一个符号变量代替另一个符号变量。 vel_robot = subs(vel_robot,acc*t,vel) - N.B.在这种情况下,Subs不起作用。

谢谢!

1 个答案:

答案 0 :(得分:3)

一种方法是使用assumesimplify进行假设和简化:

syms S acc t vel
vel_robot=S*acc*t;
assume(vel == acc*t);
vel_robot = simplify(vel_robot)

返回

vel_robot =

S*vel

请注意,此处必须将vel声明为符号变量。