1

提前感谢您对我的问题的任何帮助!

我正在编写一个函数,该函数的一部分是通过函数分隔q^2 P[1, 7] P[3, 9] P[4, 6] + (P[1, 6] P[3, 9] P[4, 7])/q - 2 q P[1, 6] P[3, 9] P[4, 7] - q^3 P[1, 7] P[3, 4] P[6, 9] + q^2 P[1, 3] P[4, 7] P[6, 9] + q^2 P[1, 6] P[3, 4] P[7, 9]成一个逗号分隔的单项式列表MonomialList

在我与我的函数一起使用的包中,q并被P[_Integer, _Integer]定义为对象。MonomialList未能分离上述多项式并产生{q^2 P[1, 7] P[3, 9] P[4, 6] + (P[1, 6] P[3, 9] P[4, 7])/q - 2 q P[1, 6] P[3, 9] P[4, 7] - q^3 P[1, 7] P[3, 4] P[6, 9] + q^2 P[1, 3] P[4, 7] P[6, 9] + q^2 P[1, 6] P[3, 4] P[7, 9]}

我尝试在MonomialList函数中使用附加参数来指定变量,但无济于事。有人可以帮我从多项式中获得一个单项式列表。如果有人知道比 更好MonomialList的方法,请务必提出建议。

4

1 回答 1

1

PolynomialQ[expression]您的基本问题是,由于该q^-1术语,Mathematica 无法将您的表达式识别为多项式(您可以使用 验证)。幸运的是,还有另一个简单的选择。该Collect函数将使用相同的幂来获取您的表达式和组项q,并且由于这是一个求和表达式,我们可以使用 apply 运算符将其转换为列表:

yourMonomialList = List @@ Collect[yourExpression, q]
于 2013-08-08T19:00:26.517 回答