Fonctions rationnelles
Modérateur : xcasadmin
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
Fonctions rationnelles
Bonjour,
Je cherche à faire une procédure qui compare 2 fonctions rationnelles, et je voudrais qu'elle me retourne faux pour par exemple :
f1=(x-1)/(x^2-1) et f2(x)=1/(x+1) dans la mesure où elles n'ont pas le m^me ensemble définition, avez-vous des idées ? Car pour XCas, f1=f2
Merci,
Vincent
Je cherche à faire une procédure qui compare 2 fonctions rationnelles, et je voudrais qu'elle me retourne faux pour par exemple :
f1=(x-1)/(x^2-1) et f2(x)=1/(x+1) dans la mesure où elles n'ont pas le m^me ensemble définition, avez-vous des idées ? Car pour XCas, f1=f2
Merci,
Vincent
On doit pouvoir construire une telle fonction en utilisant getDenom qui renvoie le denominateur d'une expression non simplifie. Ensuite le test a construire sur getDenom peut varier, par exemple si on cherche une dependance par rapport a une variable x:
Attention, il faut que f1 et f2 soient deja reduits sous forme d'une unique fraction.[/code]
Code : Tout sélectionner
test_eq(f1,f2,x):={
if (normal(f1-f2)!=0) return false;
return diff(normal(getDenom(f1)/getDenom(f2)),x)==0;
}
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
oui, si on veut eviter la simplification il faut ecrire soi-meme un programme de reduction au meme denominateur sans simplification. Ca doit etre faisable avec une procedure recursive, en utilisant le fait que pour une expression f (type(f)==DOM_SYMBOLIC), f[0] designe l'opérateur (qu'on peut comparer avec +,neg,*,inv) et f[1], ..., f[size(f)] désignent les arguments de l'opérateur (x-y est codé x + neg(y) et x/y est codé x*inv(y), + et * peuvent avoir plusieurs args). Mais ce n'est pas un prog tout simple...
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
OK, merci de ta réponse rapide, je vais peut-être m'y coller.
J'ai une autre question si on tape 2(x-5)^2+8 , la multiplication n'est pas prise en compte, existe-il un procédure pour ajouter les * ? (En fait je suis ne train de gérer des réponses d'élèves et je ne veux pas les obliger à mettre le *).
merci
Vincent
J'ai une autre question si on tape 2(x-5)^2+8 , la multiplication n'est pas prise en compte, existe-il un procédure pour ajouter les * ? (En fait je suis ne train de gérer des réponses d'élèves et je ne veux pas les obliger à mettre le *).
merci
Vincent
En y réfléchissant, je vais peut-etre modifier getDenom et getNum pour mettre les expressions rationnelles sous forme d'une fraction non simplifée. Ca serait cohérent avec leur fonctionnalité.
Par contre pour 2(x-5)^2, ça nécessiterait de changer les règles grammaticales du parser, et je n'ai pas trop envie de le faire, j'ai trop peur d'introduire des bugs. D'autant plus que en général, il faut explicitement indiquer le *, le cas de 2x étant simplement une tolérance.
Par contre pour 2(x-5)^2, ça nécessiterait de changer les règles grammaticales du parser, et je n'ai pas trop envie de le faire, j'ai trop peur d'introduire des bugs. D'autant plus que en général, il faut explicitement indiquer le *, le cas de 2x étant simplement une tolérance.
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
OK, merci, je vais donc programmer l'ajout du * à la main depuis le php.
Pour ce qui est des modifs à venir de getDonom et autres, je me posais une question justement, j'ai (après un an de galère) à réussit à installer Giac via php sur le serveur pédagogique de mon académie...Pour mettre une version à jour, il faut recommencer toute l'installation ou c'est "facile" ?
Merci pour ta disponibilité
Vincent
Pour ce qui est des modifs à venir de getDonom et autres, je me posais une question justement, j'ai (après un an de galère) à réussit à installer Giac via php sur le serveur pédagogique de mon académie...Pour mettre une version à jour, il faut recommencer toute l'installation ou c'est "facile" ?
Merci pour ta disponibilité
Vincent