Как упростить или факторизовать выражение некоммутирующих переменных

так что этот вопрос, скорее всего, очень прост, и я видел здесь подобные вопросы, но ни один из них, похоже, не работает для меня. Я довольно любитель с Mathematica, так как у меня никогда не было особых причин использовать ее, поэтому, пожалуйста, не думайте, что у меня много технических знаний. Моя проблема довольно проста, я пытаюсь упростить шесть выражений, которые включают два генератора x, y, которые наверняка не коммутируют. На самом деле yx=x^2y. Я хотел бы получить что-то вроде (x+...)(y+...)(...) или тому подобное, но всякий раз, когда я использую Mathematica (я использовал пакет NCAlgebra), я не могу кажется, заставить его работать. Любая помощь будет очень высоко ценится.


person John D Evans    schedule 21.05.2015    source источник
comment
Можете ли вы показать, что вы пытались до сих пор? Это значительно облегчает вам помощь.   -  person SuperBiasedMan    schedule 21.05.2015
comment
Ну, я не совсем продвинулся далеко. Я никогда раньше не использовал Mathematica, и поэтому я изучаю веревки по ходу дела. До сих пор я просто пытался факторизовать или упростить что-то вроде x^3+xyx, используя команды NCSimpify[] и Factor[].   -  person John D Evans    schedule 21.05.2015


Ответы (1)


В новейшей версии NCAlgebra вы можете использовать NCStrongCollect и NCCollect для создания чего-то вроде:

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

что приводит к

x ** (x + y) ** x

or

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

что в данном случае дает тот же результат.

Существуют и другие инструменты «упрощения», такие как NCSimplifyRational. Подробности смотрите в документации.

person Mauricio de Oliveira    schedule 21.04.2017