Comme tu avais suggéré de regrouper les demandes pédagogiques dans un même topic,
voici la première de la liste ...
L'idée serait d'avoir une fonction prenant en paramètres deux expressions E1 et E2 et qui renverrait si c'est possible
l'expression E1 sous la forme E2*E3 mais avec E3 le moins modifiée possible (pas de simplification, pas de factorisation).
Je m'explique:
Exemple1:
E1:=(x^2-1)*(2*x+3)-(x+1)*(7-5*x)
E2:=x+1
factoriser_par(E1,E2) renverrait (x+1)*((x-1)*(2*x+3)-(7-5*x))
Exemple2:
E1:=exp(2*x)-exp(x)
E2:=exp(x)
factoriser_par(E1,E2) renverrait exp(x)*(exp(x)-1)
J'imagine qu'il y aurait trop de cas particuliers et que ma demande est utopique !
On peut toujours demander !
Modérateur : xcasadmin
Re: On peut toujours demander !
en gros tu veux
factoriser_par(a,b):=b*simplify(a/b)
mais où le simplify n'est pas "complet"?
Je ne vois pas du tout comment faire ça...
factoriser_par(a,b):=b*simplify(a/b)
mais où le simplify n'est pas "complet"?
Je ne vois pas du tout comment faire ça...
Re: On peut toujours demander !
oui c'était l'idée, généraliser cet exemple fait pour marcher:
factoriser_par(a,b):=b*somme(factor([op(a)]/b));
E1:=(x^2-1)*(2x+3)-(x+1)*(7-5x)+3*(x+1);
E2:=x+1;
factoriser_par(E1,E2);
mais qui ne marche plus si on prend par exemple:
E1:=(x^2-1)*(2x+3)-(x+1)*(7-5x)+(x+1); // (x+1) ou 1*(x+1) donne x,1
ou E1:=(x^2-1)*(x^2+x-1)-(x+1)*(7-5x)+3*(x+1); // x^2+x-1 est factorisé
Une question cependant:
somme([2x,x+3,x+5,4x]) renvoie x+3+2*x+x+5+4*x
somme([x,x+3,x+5,4x]) renvoie x+x+3+x+5+4*x
pourquoi l'inversion des deux premiers éléments dans un cas et pas dans l'autre ?
factoriser_par(a,b):=b*somme(factor([op(a)]/b));
E1:=(x^2-1)*(2x+3)-(x+1)*(7-5x)+3*(x+1);
E2:=x+1;
factoriser_par(E1,E2);
mais qui ne marche plus si on prend par exemple:
E1:=(x^2-1)*(2x+3)-(x+1)*(7-5x)+(x+1); // (x+1) ou 1*(x+1) donne x,1
ou E1:=(x^2-1)*(x^2+x-1)-(x+1)*(7-5x)+3*(x+1); // x^2+x-1 est factorisé
Une question cependant:
somme([2x,x+3,x+5,4x]) renvoie x+3+2*x+x+5+4*x
somme([x,x+3,x+5,4x]) renvoie x+x+3+x+5+4*x
pourquoi l'inversion des deux premiers éléments dans un cas et pas dans l'autre ?
Re: On peut toujours demander !
C'est parce que x+3 est déjà une somme, donc plutot que de créer un symbolique imbriqué 2x+(x+3), ou de mettre 2x en 1er argument, 2x est ajouté en dernier argument après x et 3, c'est en effet moins couteux en temps si la liste des arguments est longue car il n'y a pas besoin de déplacer tout les arguments.
Re: On peut toujours demander !
Autre sujet.
Actuellement aire(cercle(0,1,0,3*pi/4)) renvoie pi
Est-ce possible d'avoir comme réponse l'aire du secteur 3*pi/8 ?
Actuellement aire(cercle(0,1,0,3*pi/4)) renvoie pi
Est-ce possible d'avoir comme réponse l'aire du secteur 3*pi/8 ?
Re: On peut toujours demander !
En effet, il y a une petite étourderie dans le code
Code : Tout sélectionner
diff plot.cc plot.cc~
4730,4731c4730,4731
< if (g._SYMBptr->feuille.type==_VECT && g._SYMBptr->feuille._VECTptr->size()>=3)
< return ratnormal(((*g._SYMBptr->feuille._VECTptr)[2]-(*g._SYMBptr->feuille._VECTptr)[1])*(rayon*conj(rayon,contextptr))/2);
---
> if (g._SYMBptr->feuille.type==_VECT && g._SYMBptr->feuille._VECTptr->size()==4)
> return ratnormal(((*g._SYMBptr->feuille._VECTptr)[3]-(*g._SYMBptr->feuille._VECTptr)[2])*(rayon*conj(rayon,contextptr))/2);