Bonjour,
Peut-on ecrire et simplifier des choses du genre [sqrt(2);3]U[1;2] qui donnerait [1;3] par exemple.
Merci
Reunion d'intervalles
Modérateur : xcasadmin
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
C'est peut-être un peu lourd mais cette fonction qui travaille avec deux paramètres (les deux intervalles fermés) doit convenir.
on l'utilise ensuite avec
Je ne sais pas faire fonctionner les fonctions (intersect et union) prédéfinies dans xcas dans le cas où les ensembles ne sont pas de cardinaux finis.
Code : Tout sélectionner
IntersectionInterv(I,J):={local a,j,mess,m,n;
a:=(left(I),right(I));
j:=(left(J),right(J));
m:=(max(a[0],j[0]), min(a[1],j[1]));
n:=(max(a[1],j[1]), min(a[0],j[0]));
if (m[0]> m[1]){
mess:= "l'intersection est vide et l'union ne peut pas être simplifiée ";
} else {
mess:= cat("l'intersection est l'intervalle [",m[0],";",m[1],"]"," et l'union est [",n[1],";",n[0],"]");}
return mess;
};
Code : Tout sélectionner
I:=sqrt(2)..3; J:=1..3;
IntersectionInterv(I,J);
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :
en effet, les fonctions de xcas d'intersection, union ou soustraction ne fonctionnent qu'avec des ensembles de cardinaux finis. Pour des intervalles en toute généralité, ca doit pouvoir se faire avec une liste d'intervalles (représentant une union d'intervalles fermés) et une liste de valeurs exclues. Ensuite pour faire par exemple l'intersection, on appelle la fonction de J-Joel sur chaque couple d'intervalles (en renvoyant un intervalle plutot qu'un message), on garde la liste des intervalles non vides et on fait l'union des valeurs exclues appartenant à au moins une intersection. A vue de nez, je ne pense pas qu'il faille prévoir de traitement particulier pour les infinis.
-
- Messages : 40
- Inscription : dim. août 26, 2007 7:07 am
- Contact :