Page 1 sur 1
On peut toujours demander !
Publié : sam. nov. 10, 2012 11:29 am
par alb
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 !
Re: On peut toujours demander !
Publié : sam. nov. 10, 2012 12:03 pm
par parisse
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...
Re: On peut toujours demander !
Publié : sam. nov. 10, 2012 9:26 pm
par alb
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 ?
Re: On peut toujours demander !
Publié : dim. nov. 11, 2012 6:53 am
par parisse
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 !
Publié : jeu. déc. 27, 2012 8:07 am
par alb
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 ?
Re: On peut toujours demander !
Publié : jeu. déc. 27, 2012 4:18 pm
par parisse
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);