Extension du coefficient aux exposants variables

Oct 28 2020

Disons que j'ai une expression qui est un polynôme dans une variable, par exemple dans la variable $x$, dans lequel apparaissent les termes pour lesquels l'exposant de $x$comprend également des variables. Par exemple:

pol = a + b x^n + c x^(n + 1)

Existe-t-il un moyen propre de trouver le coefficient devant un terme donné?

Je n'ai pas pu faire fonctionner directement la fonction intégrée Coefficient, à savoir

{Coefficient[pol, x, 0], Coefficient[pol, x, n], Coefficient[pol, x, n + 1]}

donne la sortie

{a, b + c x, c}

pendant que je veux qu'il cède

{a, b, c}

Pour résoudre ce problème, j'ai utilisé

Coefficient2[pol_, var_, exp_] := Coefficient[Coefficient[pol, var, exp], var, 0]

C'était assez bon pour donner les bons résultats dans mon cas, mais cela me semble un peu désagréable. Y a-t-il un meilleur moyen?

Réponses

1 Sumit Nov 03 2020 at 23:03

Voici une possibilité pour tout polynôme polavec variable xpour la puissancem

powcoeff[pol_, x_, m_] := Simplify[Total[
        Select[Level[Expand[pol], 1], Exponent[#, x] == m &]]/x^m]

pol1 = a1 + b1 x^n + c1 x^(n + 1);
pol2 = a2 + b2 x^n (f x + 1) + c2 x^(n + 1);
pol3 = pol1 pol2;

powcoeff[pol1, x, n]
powcoeff[pol2, x, n + 1]
powcoeff[pol3, x, n]
powcoeff[pol3, x, n + 1]
powcoeff[pol3, x, 6 n + 1]

b1

c2 + b2 f

a2 b1 + a1 b2

a2 c1 + a1 (c2 + b2 f)

0