Graphe fonction rationnelle avec forme 0/0

Discussion sur l'enseignement de l'algorithmique avec Xcas au lycee
alb
Messages : 1320
Inscription : ven. août 28, 2009 3:34 pm

Graphe fonction rationnelle avec forme 0/0

Message par alb » lun. févr. 28, 2011 8:15 am

Pour aider les élèves à visualiser le graphe d'une fonction rationnelle avec d'éventuelles racines communes au numérateur et au dénominateur (j'admets volontiers qu'on est dans le pathologique), j'ai commis ce petit programme:

Code : Tout sélectionner

GrapheFonctRat(E):={
local L,F,N,D,solN,solD,NetD,s,k,ordo,ov,ev,a,b;
F:=normal(E);
N:=getNum(E);
D:=getDenom(E);
solN:=resoudre(N);
solD:=resoudre(D);
NetD:=solN intersect solD;
s:=size(NetD);
L:NULL;
si size(NetD)==0 alors 
  retourne graphe(E);
sinon
  pour k de 0 jusque s-1 faire
    ordo:=subst(F,x=NetD[k]);
    ev:=NetD[k]+i*ordo;
    ov:=ev+2*i; //modifier longueur (ici 2) du vecteur ?
    L:=L,vecteur(ov,ev),legende(ov,"("+NetD[k]+","+ordo+")",quadrant2),
    legende(ov,"exclu");
  fpour;
  a:=min(min(NetD)-5,-10);b:=max(max(NetD)+5,10);
  retourne L:=L,graphe(E,x=a..b);
fsi;
}
:;
Exemples:
E:=(4x^2-8x)/(3x^2-12);GrapheFonctRat(E);
E:=(x^3+3*x^2-154*x-312)/(x^4+x^2+x^3-156*x^2+x-156);GrapheFonctRat(E);
La question du jour:
Je veux qu'un vecteur vertical ait une longueur proportionnel à la hauteur de l'écran graphique,
par exemple 20% de ymax-ymin. Comment faire ?

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

Re: Graphe fonction rationnelle avec forme 0/0

Message par parisse » lun. févr. 28, 2011 1:34 pm

ca me parait impossible, puisque l'utilisateur peut redéfinir à sa guise ymax et ymin. Sauf à forcer le réglage graphique avec une instruction gl_y=ymin..ymax dans la définition du graphique et en utilisant (ymax-ymin)/5 pour le vecteur vertical, mais imposer ymin/ymax risque de poser des problèmes pour la généricité.
Ou alors il faudrait utiliser un bitmap défini en pixels, mais je ne vois pas comment localiser l'endroit où le vecteur doit être.

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

Re: Graphe fonction rationnelle avec forme 0/0

Message par alb » lun. févr. 28, 2011 2:57 pm

OK, merci.
Une amélioration mineure pour une meilleure lisibilité:
remplacer la ligne 17 par ov:=ev+(0.5+0.5*k)*i; ou bien par ov:=ev+(0.5+1.5*k/s)*i;

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

Re: Graphe fonction rationnelle avec forme 0/0

Message par alb » jeu. mars 17, 2011 10:27 am

J'ai un pb avec E:=(x-1)/(x-1)
En effet getNum((x-1)/(x-1)) renvoie 1 (on devrait avoir x-1 ? )

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

Re: Graphe fonction rationnelle avec forme 0/0

Message par parisse » jeu. mars 17, 2011 1:50 pm

il s'agit d'un cas ou une simplification evidente est effectuee, il se produit la meme chose si on fait x-x, ca renvoie 0.

Répondre