On peut toujours demander !

Utilisation de Xcas au lycée (sauf algorithmique), y compris projet d'epreuve pratique en Terminale S

Modérateur : xcasadmin

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

On peut toujours demander !

Message par alb » sam. nov. 10, 2012 11:29 am

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 !

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: On peut toujours demander !

Message par parisse » sam. nov. 10, 2012 12:03 pm

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...

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Re: On peut toujours demander !

Message par alb » sam. nov. 10, 2012 9:26 pm

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 ?

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: On peut toujours demander !

Message par parisse » dim. nov. 11, 2012 6:53 am

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.

alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Re: On peut toujours demander !

Message par alb » jeu. déc. 27, 2012 8:07 am

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 ?

parisse
Messages : 5734
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: On peut toujours demander !

Message par parisse » jeu. déc. 27, 2012 4:18 pm

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);

Répondre