Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › comportement de maxima
- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par
bernadette, le il y a 5 années et 5 mois.
-
AuteurMessages
-
-
1 décembre 2017 à 17:41 #4173
bernadette
Maître des clés::Voici un comportement de maxima que je ne m’explique pas tout à fait
et qui gêne pour l’analyse des réponses dans le type formal.Premier exemple
keepfloat:true;
ratsimp(exp(-0.2*x)-exp(-2/10*x));
0
ratsimp(exp(0.2*x)-exp(2/10*x));
pas de simplification
Le comportement est différent s’il y a un signe -.Si on met keepfloat:false;
on trouve 0 dans les deux cas.Mais si on a la même chose sans x
Le comportement est différent s’il n’y a pas de x
keepfloat:false;
ratsimp(exp(-0.2)-exp(-2/10));
ratsimp(exp(0.2)-exp(2/10));Cela peut être résolu avec l’option
ratsimpexpons:true;Par contre, que faire avec sin et cos.
keepfloat:false;
trigsimp(cos(0.2)-cos(2/10));
resultat non évalué comme nul.
trigsimp(cos(0.2*x)-cos(2/10*x));
resultat 0Tout cela pour essayer de corriger le type de réponse
formal qui n’accepte pas comme bonne réponse exp(0.2*x)
si la bonne réponse est donnée comme exp(2/10*x).Avez-vous des idées ou des suggestions pour des options maxima de simplification ?
Bernadette
-
3 décembre 2017 à 10:04 #4175
jm.evers
Participant::not sure if this helps…
a:map('float,(exp(2/10*x))); b:map('float,(exp(0.2*x))); if a = b then Y else N;
answer:
2.718281828459045^(0.2*x) 2.718281828459045^(0.2*x) y
the keepfloat directive is not used in this case
joke
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers.
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
-
3 décembre 2017 à 12:06 #4177
bernadette
Maître des clés::The question is that the behaviour is not the same if there is no variable
b:map(‘float,(exp(0.2)));
gives an error.(%i6) b:map(‘float,(exp(0.2)));
map: improper argument: 1.22140275816017
— an error. To debug this try: debugmode(true);And also, in fact in the other case, the x disappears !
(%i3) b:map(‘float,(exp(0.2*x)));
0.2 x
(%o3) 2.718281828459045(%i5) b:map(‘float,(exp(0.2*x)*exp(1/2)));
0.2 x + 0.5
(%o5) 2.718281828459045I would like not to have to test too much !
Bernadette
-
3 décembre 2017 à 12:36 #4178
jm.evers
Participant::how about setting
maperror:false
like:maperror:false; a:map('float,exp(2/10*x)); b:map('float,exp(0.2*x)); c:map('float,exp(2/10)); d:map('float,exp(0.2)); e:map('float,exp(0.2*x)*exp(1/2)); f: map('float,trigsimp(cos(0.2)-cos(2/10))); g: map('float,trigsimp(cos(0.2*x)-cos(2/10*x))); h: map('float,cos(0.2*x)-cos(2/10*x)); i: map('float,cos(0.2)-cos(2/10));
result:
false 2.718281828459045^(0.2*x) 2.718281828459045^(0.2*x) 1.22140275816017 1.22140275816017 2.718281828459045^(0.2*x+0.5) 0.0 0.0 0.0 0.0
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers. Raison: typo
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers.
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers. Raison: additional examples
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers. Raison: more examples
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
jm.evers.
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
-
3 décembre 2017 à 22:45 #4184
lemaire
Participant::float without map seems to work also for simple expressions:
a:float(cos(2/10*x)); b:float(cos(0.2*x)-cos(2/10*x)); c:float(cos(0.2)-cos(2/10)); d:float(exp(0.2*x)-exp(2/10*x)); e:float(ratsimp(exp(0.2*x)-exp(2/10*x)));
give
cos(0.2 x)
0.0
0.0
2.718281828459045^(0.2x) – 1.0 2.718281828459045^(x/5)
0.0But if we compose exp and cos, terms are not always simplified:
f:float(ratsimp(exp(cos(0.2)*x)-exp(cos(2/10)*x))); g:float(ratsimp(trigsimp(exp(cos(0.2*x))-exp(cos(2/10*x)))));
Answers are:
rat: replaced 0.9800665778412416 by 21157347/21587663 = 0.980066577841242 2.718281828459045^ ( 21157347 x/ 21587663 ) - 1.0 2.718281828459045^(cos(1/5) x)
and
rat: replaced 0.2 by 1/5 = 0.2 0.0
I wonder if it will better not to use 0.2 in expression when using the answer type formal; The problem could be avoided if a warning message can be displayed to students when they enter a comma number. For instance,
Your answer must not contain a decimal point. Write decimal numbers as fractions.-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
lemaire.
-
Cette réponse a été modifiée le il y a 5 années et 5 mois par
-
7 décembre 2017 à 15:48 #4196
jm.evers
Participant::Your answer must not contain a decimal point. Write decimal numbers as fractions.
you are right, that is the best solution for demanding mathematical precise answers.
And this could be easily implemented in javascript, eg we don’t send the answer to wims if there is a ‘decimal number’ present in the formula/answer
Joke
-
7 décembre 2017 à 18:46 #4197
bernadette
Maître des clés
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.