如何在MuPAD或Maple中提取方程的特定部分

时间:2013-12-05 08:02:57

标签: symbolic-math maple mupad

我有MuPAD和Maple,我想使用其中一个软件执行以下操作:

  • 我有一个包含几个余弦的方程,它们具有不同的幅度和不同的参数,如下图所示,位于第一行(蓝色)中。
  • 我想只提取那些至少包含参数“+ a tb t”的余弦(所以“+ a tb t + alpha”也可以) - 见第二(蓝排)。
  • 我想显示这个特定余弦的幅度总和 - 见第三(红色)行。

第二张照片显示了一个真实的例子。 Example Example2

1 个答案:

答案 0 :(得分:2)

假设您的长表达式名为expr。然后这样做

TypeTools:-AddType(
     MyCos,
     cos(satisfies(x-> x::`+` and {a*t, -b*t} subset {op(x)} or x = b*t-a*t))
): 

subex:= select(T-> T::MyCos or T::`*` and membertype(MyCos, {op(T)}), expr);

现在subex是您想要的子表达式。如果您想要加上系数,那么只需执行eval(subex, cos= 1)

请注意,这不会找到像(a-b)*t+alpha这样的部分因素参数。如果您需要找到这些,请告诉我。