Des résultats que je trouve un peu étonnants:
1)comment interpréter f(x):=piecewise(x<1,2,x<3) et plot(f(x)) ?
2)si g(x):=piecewise(x<1,2,x<3,5) alors plot(g(x)) donne Bad Argument Value
remarques sur piecewise
Modérateur : xcasadmin
Re: remarques sur piecewise
1: Essaye plot(x<3) et tu verras que c'est une fonction (booléenne, la fonction indicatrice de l'intervalle des x<3). Donc avec f(x):=piecewise(x<1,2,x<3) tu définis une fonction f qui est égale
*à 2 si x<1
*à la fonction (x<3) sinon.
C'est donc parfaitement logique (c'est le cas de le dire!) et même pratique, ça permet de raccourcir des programmes sous calculatrices Ti et sous CaRMetal, entre autres...
2: Là par contre, la fonction est mal définie:
*Si x<1, g(x)=2
*si x<3 (mais sans être aussi inférieur à 1), g(x)=5;
*mais si x>3, g(x)=quoi???
Là-dessus je trouve la syntaxe GeoGebra plus simple, avec ses "Si..Sinon" imbriqués (comme dans les tableurs) mais du coup on s'éloigne un peu de l'algorithmique (?)
*à 2 si x<1
*à la fonction (x<3) sinon.
C'est donc parfaitement logique (c'est le cas de le dire!) et même pratique, ça permet de raccourcir des programmes sous calculatrices Ti et sous CaRMetal, entre autres...
2: Là par contre, la fonction est mal définie:
*Si x<1, g(x)=2
*si x<3 (mais sans être aussi inférieur à 1), g(x)=5;
*mais si x>3, g(x)=quoi???
Là-dessus je trouve la syntaxe GeoGebra plus simple, avec ses "Si..Sinon" imbriqués (comme dans les tableurs) mais du coup on s'éloigne un peu de l'algorithmique (?)
Re: remarques sur piecewise
Merci pour ces réponses
1)En effet la courbe est bien constituée de 3 morceaux ce que je n'avais pas remarqué (y=0 reste en rouge)
2)g(x):=piecewise(x<1,2,x<3,5) est correct du point de vue de la syntaxe ? et la courbe est donnée par plot(g(x),x=-5..3)
Le nombre d'arguments de piecewise peut donc être pair ?
Pour anticiper des questions d'élèves:
Pourquoi par exemple plot(sqrt(x-1)) ne nécessite pas de spécifier x=1..10 ?
1)En effet la courbe est bien constituée de 3 morceaux ce que je n'avais pas remarqué (y=0 reste en rouge)
2)g(x):=piecewise(x<1,2,x<3,5) est correct du point de vue de la syntaxe ? et la courbe est donnée par plot(g(x),x=-5..3)
Le nombre d'arguments de piecewise peut donc être pair ?
Pour anticiper des questions d'élèves:
Pourquoi par exemple plot(sqrt(x-1)) ne nécessite pas de spécifier x=1..10 ?
Re: remarques sur piecewise
Ah oui:alb a écrit :2)g(x):=piecewise(x<1,2,x<3,5) est correct du point de vue de la syntaxe ? et la courbe est donnée par plot(g(x),x=-5..3)
Le nombre d'arguments de piecewise peut donc être pair ?
g(x):=piecewise(x<1,2,x<3,5)
est une fonction correctement définie mais seulement pour x<3. Donc le Bad Argument Value signifierait qu'on a essayé de calculer l'image par g d'un nombre pour lequel elle n'est pas définie. Ce calcul a dû être fait en cachette par Xcas...
Si on fait façon algo:
Code : Tout sélectionner
g(x):={
si x<1 alors
return 2; sinon
si x<3 alors
return 5;
sinon
//ici il manque un return pour dire ce qu'on fait si x>=3
fsi;
fsi;
}
Note: Une fonction n'est pas obligée de retourner quelque chose, puisqu'une procédure est définie comme une fonction qui ne retourne rien...
Re: remarques sur piecewise
En complément:
- effectivement piecewise admet aussi un nombre pair d'arguments, dans ce cas il n'y a pas de valeur par défaut (si tous les test échouent), et ca provoque alors un bad arg value si on essaie une valeur de l'argument pour laquelle tous les test échouent
- on peut bien sur aussi définir une fonction par morceaux avec des si alors sinon fsi éventuellement imbriqués
- pour sqrt, une valeur négative ne provoque pas de bas arg value, ça renvoie un complexe, de manière invisible dans plot (qui ne trace que si le résultat est réel) mais sans provoquer de bad arg value.
- une fonction qui n'a pas de return explicite renvoie alors le resultat de la dernière évaluation. Il n'y a pas vraiment de procédure en xcas, une procédure est une fonction dont on ignore la valeur de retour (qui peut ne pas avoir de sens particulier, c'est souvent le cas si on n'a pas mis de return explicite).
- effectivement piecewise admet aussi un nombre pair d'arguments, dans ce cas il n'y a pas de valeur par défaut (si tous les test échouent), et ca provoque alors un bad arg value si on essaie une valeur de l'argument pour laquelle tous les test échouent
- on peut bien sur aussi définir une fonction par morceaux avec des si alors sinon fsi éventuellement imbriqués
- pour sqrt, une valeur négative ne provoque pas de bas arg value, ça renvoie un complexe, de manière invisible dans plot (qui ne trace que si le résultat est réel) mais sans provoquer de bad arg value.
- une fonction qui n'a pas de return explicite renvoie alors le resultat de la dernière évaluation. Il n'y a pas vraiment de procédure en xcas, une procédure est une fonction dont on ignore la valeur de retour (qui peut ne pas avoir de sens particulier, c'est souvent le cas si on n'a pas mis de return explicite).