【问题标题】:Substitution of one symbolic variable for two symbolic variables用一个符号变量替换两个符号变量
【发布时间】:2013-11-11 13:53:32
【问题描述】:

我有一个关于 MATLAB 符号变量替换的问题,我觉得应该有一个优雅的解决方案,但我不知道如何解决。

我想用一个符号变量代替方程式中的两个符号变量。我采用位置对时间的微分求速度,然后采用速度微分求加速度。现在,我想将vel=acc*t 之类的东西代入速度方程,以消除符号变量 t。

例如

vel_robot=S*acc*t;

我希望它显示出来;

vel_robot=S*vel

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

有没有办法在 MATLAB 中做到这一点?我知道我可以使用vel_robot = subs(vel_robot,acc,vel) 将一个符号变量替换为另一个,但我想知道是否可以将两个符号变量替换为另一个,例如vel_robot = subs(vel_robot,acc*t,vel) - N.B.在这种情况下,Subs 不起作用。

谢谢!

【问题讨论】:

  • 这并不完全安全,您需要担心顺序和间距。但是你可以给control+H 一个机会。或者,如果您的答案足够简单,也许除以 acc*t 就可以了。
  • 不幸的是,程序需要更通用,所以我不能使用 control+H...虽然它是目前解决的方法:)

标签: matlab substitution symbolic-math


【解决方案1】:

一种方法是使用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 必须在此处声明为符号变量。

【讨论】:

  • 感谢您的回答!不幸的是,我的 Matlab 版本(2011a)没有命令假设,但在最近的版本中有这种功能真是太好了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-03
  • 2022-06-15
  • 2015-12-28
  • 1970-01-01
  • 2014-03-13
  • 1970-01-01
相关资源
最近更新 更多