[Maple] Calcul symbolique
Bonjour a tous.
J'aimerai savoir s'il est possible de faire du calcul symbolique comme ceci sur Maple :
$\sum_{i=1}^n a_i X^i \times \sum_{j=1}^n b_j X^j$
Les degres n et m ne sont pas specifies a priori mais je prends toute idee meme dans le cas simple ou on les suppose connus au depart (exemple n=3, m=4). En effet, meme dans ce cas, comment specifier la suite de coefficients generiques ?
J'aimerai aussi pouvoir trouver le numerateur et denominateur d'une somme de fractions rationnelles generiques par exemple, ca me parait le B-A BA d'un logiciel de calcul formel mais je ne sais pas concretement comment faire avec celui-ci. Le passage aux fractions rationnelles devrait ne poser aucun probleme a partir du moment ou il y a un moyen d'exprimer le premier probleme.
Merci de votre attention.
J'aimerai savoir s'il est possible de faire du calcul symbolique comme ceci sur Maple :
$\sum_{i=1}^n a_i X^i \times \sum_{j=1}^n b_j X^j$
Les degres n et m ne sont pas specifies a priori mais je prends toute idee meme dans le cas simple ou on les suppose connus au depart (exemple n=3, m=4). En effet, meme dans ce cas, comment specifier la suite de coefficients generiques ?
J'aimerai aussi pouvoir trouver le numerateur et denominateur d'une somme de fractions rationnelles generiques par exemple, ca me parait le B-A BA d'un logiciel de calcul formel mais je ne sais pas concretement comment faire avec celui-ci. Le passage aux fractions rationnelles devrait ne poser aucun probleme a partir du moment ou il y a un moyen d'exprimer le premier probleme.
Merci de votre attention.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Cela t'aidera peut être :
f:=(n,m,k)-->coeff((sum(a[ i]*x^i, i = 1 .. n))*(sum(b[j]*x^j, j = 1 .. m)), x^k)
C'est praeil que :
f := proc (n, m, k) options operator, arrow; coeff((sum(a[ i]*x^i, i = 1 .. n))*(sum(b[j]*x^j, j = 1 .. m)), x^k) end proc
[Corrigé selon ton indication. AD]
Plusieurs points demeurent obscurs :
1- comment assigner des coefficients par la suite ?
J'ai essaye > a:=Array([0, 5, -4, 6, 7, 2, -2, 0]); mais j'obtiens l'erreur
> f(2, 3, 4);
Error, (in f) bad index into Array
juste apres !
2- comment retrouver un vrai polynome ?
J'ai essaye ceci
> g:=n -> sum(a*x^i, i = 1 .. n);
> a:=Array([0, 5, -4, 6, 7, 2, -2, 0]); # specification des coeffs
> g(4); # specification du degre
Error, (in g) bad index into Array
J'aurais bien aime dans le probleme original trouver une ecriture symbolique comme ceci
$\sum_{i=0}^n a_i X^i \times \sum_{j=0}^n b_j X^j = \sum_k \sum_{i+j=k} a_ib_j X^k$ mais j'en suis vraiment loin.
NB: les indices commencent a 0 ici, mais il faudra tenir compte des indices qui commencent obligatoirement a 1 sous Maple.
a := [0, 5, -4, 6, 7, 2, -2, 0]; b := [1, 4, -3, 7, 4, 1, -8, 2];
f:=(n,m,k)-->coeff((sum(a[ i]*x^i, i = 1 .. n))*(sum(b[j]*x^j, j = 1 .. m)), x^k)
g :=(n,m)-->seq(f(n, m, k), k = 1 .. n+m);
Alors Maple donne : g(3, 4)=[0, 0, 5, 16, -31, 47, -28]
C'est joli tout ça.
Tu as ce que tu veux ou pas encore ?
Ok, il fallait donc une liste.
Et c'est tres joli effectivement mais ce n'est pas exactement que je veux. Enfin, dans le sens ou j'aurais voulu la solution non specifiee, enfin la forme generale du polynome solution c'est a dire de ce style $\sum_k \sum_{i+j=k} a_ib_j X^k$ en sortie.
C'est en rapport avec le second point sur les ractions rationnelles que ca bloque. Prenons le cas simple suivant :
$F=\sum_{i=1}^n \frac{1}{X - a_i} + P(X)$ et j'aimerai faire denom(F) pour trouver $\prod_{i=1}^n (X - a_i)$ en sortie.
Cordialement
simplexe
Cordialement
tu peux expliquer avec détails ?
Ok, regardes ce bout de code
> restart;
> expr:= 1+ X^2 - Sum(1/(X-alpha),i=1..n);
> denom(expr);
donne 1 .. au lieu du resultat que je cherche, qui est $\prod_{i=1}^n (X - a_i)$
Cordialement
Ce n'est pas une question de version ici mais de mauvaise fonction. C'est sum et non Sum qu'il fallait utiliser.
Cordialement.