avec Mathematica, je voudrais collecter des termes le Mathematica aide a un bel exemple que j'ai essayé d'imiter: p> ceci collecte les termes dérivés du même ordre (et le même argument de F) P > Quelqu'un peut-il expliquer pourquoi l'imitation suivante ne fonctionne pas? p> donne p> Toute suggestion pour un solution? p> p> à partir de (1 + a + x + y) ^ 4 code> en fonction des exposants de
x code> et
y code >, donc
5 Réponses :
collecter code> est une opération structurelle, vous devez donc développer d'abord.
Collect[(1 + a + x + y)^4 // Expand, x^_ y^_]
Selon Sasha , vous devez qui tire tout facteur commun de Alternativement, vous pouvez fournir un motif, mais, ceci ne collecte que des termes où les deux variables sont présentes. Honnêtement, je ne peux pas sembler trouver un modèle qui ferait une fonction J'utiliserais maintenant, si vous êtes uniquement intéressé par les coefficients eux-mêmes, vous avez terminé. Mais, pour transformer cette ramasse dans un polynôme, j'utiliserais p> comme on peut le voir, Les coefficients sont considérablement simplifiés en utilisant lequel lorsque vous remplacez Développer code>
le polynôme Pour utiliser Collect code>
. Cependant, même ce n'est pas si simple de problème. Utilisation de Collecter code> Vous pouvez grouper par deux variables, mais cela dépend de la façon dont vous les commandez:
x code > résultant de coefficients qui sont des polynômes dans
y code>. Si vous avez utilisé
{y, x} code> à la place,
collecte code> sortirait les facteurs communs de
y code> et que vous auriez des polynômes dans
x code>. p>
x ^ _ y ^ _ code> au lieu de
{x, y} code>, mais au moins en v.7 , cela ne collecte rien. Le problème est que le modèle
x ^ _ y ^ _ code> nécessite un exposant à présent, mais dans des termes tels que
xy ^ 2 code> et
x ^ 2 y Code> L'exposant est implicite dans au moins une des variables. Au lieu de cela, nous devons spécifier qu'un valeur par défaut est acceptable, c'est-à-dire utiliser
x ^ _. y ^ _. code> qui donne p>
collecter code> comme vous le souhaitez, mais j'ai trouvé une alternative. P>
coefficientrules code>
à la place, bien que ce ne soit nécessite un peu de post-traitement pour remettre le résultat dans une forme polynomiale. En utilisant votre polynôme, vous obtenez p> A code>, ils peuvent être facomptables. Ainsi, au lieu d'utiliser ce que
coefficientrules code> donne directement, nous utilisons
facteur code> pour simplifier: p>
facteur code>, et ce résultat aurait pu être anticipé en pensant à
(1 + a + x + y) ^ 4 code> comme un simple trinôme avec des variables
(1 + a) code>,
x code> et
y code>. Avec cela à l'esprit et en remplaçant
1 + a code> avec
z code>,
coefficientrules code> donne: p>
z code> avec
(1 + a) code> donne la pièce identique Résultat indiqué dans
out [5] code>. p> p>
Ceci fonctionne: Vous pouvez également utiliser par défaut code> comme suggéré par rcollyer : p>
Cela peut être ce que vous recherchez
In[1]:= TraditionalForm[Collect[(1 + a + x + y)^4 // Expand, {x, y}], ParameterVariables :> {a}] Out[1]:= x^4+x^3 (4 y+4 a+4)+x^2 (6 y^2+(12 a+12) y+6 a^2+12 a+6)+ x (4 y^3+(12 a+12) y^2+ (12 a^2+24 a+12) y+4 a^3+12 a^2+12 a+4)+ y^4+(4 a+4) y^3+(6 a^2+12 a+6) y^2+(4 a^3+12 a^2+12 a+4) y+ a^4+4 a^3+6 a^2+4 a+1
plus @@ monomialliste [((1 + a + x + y) ^ 4, {x, y}] p>