如何简化或分解非对易变量的表达式

Posted

技术标签:

【中文标题】如何简化或分解非对易变量的表达式【英文标题】:How to simplify or factor an expression of non commuting variables 【发布时间】:2015-08-03 04:41:02 【问题描述】:

所以这个问题很可能非常简单,我在这里看到了类似的问题,但没有一个似乎对我有用。我是 Mathematica 的业余爱好者,因为我从来没有太多理由使用它,所以请不要假设我有太多的技术知识。我的问题相当简单,我试图简化六个表达式,其中涉及两个生成器 x,y,它们肯定不会通勤。实际上,yx=x^2y。我想得到的是 (x+...)(y+...)(...) 或类似形式的东西,但是每当我使用 Mathematica 时(我一直在使用 NCAlgebra 包)我不能似乎使它工作。任何帮助将不胜感激。

【问题讨论】:

你能展示一下你到目前为止所做的尝试吗?它使帮助您变得更加容易。 好吧,我还没有走得太远。我以前从未使用过 Mathematica,所以我边走边学。到目前为止,我一直在尝试使用 NCSimplify[] 和 Factor[] 命令分解或简化 x^3+xyx 之类的东西。 【参考方案1】:

在最新版本的NCAlgebra 中,您可以使用NCStrongCollectNCCollect 生成类似的内容:

<< NC`
<< NCAlgebra`
expr = x^3 + x ** y ** x
NCStrongCollect[expr, x, y]

导致

x ** (x + y) ** x

NCCollect[expr, x, y, ByTotalDegree -> True]

在这种情况下产生相同的结果。

还有其他“简化”工具,例如NCSimplifyRational。详情请查看文档。

【讨论】:

以上是关于如何简化或分解非对易变量的表达式的主要内容,如果未能解决你的问题,请参考以下文章

重构.改善既有代码的设计9简化条件表达式

sympy 如何简化以变量为指数的表达式

MATLAB的符号运算变量如何创建?

重构手法之简化条件表达式

4简化条件表达式

4简化条件表达式