A qui se fier ?
Modérateur : xcasadmin
A qui se fier ?
Pour avoir une idée de la courbe de la fonction définie par:
f(x):=(2-sqrt(3*x-2))/(sqrt(2*x+5)-3)
doit-on faire:
plot(f(x))
ou
plot(f(x),x=2/3..2.5)
question ouverte posée à des élèves de terminale qui devrait générer pas mal de questions:
validité de f(x)
limite en 2
existence d'une expression qui aurait le même signe que la dérivée.
etc...
luc briel
f(x):=(2-sqrt(3*x-2))/(sqrt(2*x+5)-3)
doit-on faire:
plot(f(x))
ou
plot(f(x),x=2/3..2.5)
question ouverte posée à des élèves de terminale qui devrait générer pas mal de questions:
validité de f(x)
limite en 2
existence d'une expression qui aurait le même signe que la dérivée.
etc...
luc briel
Re: A qui se fier ?
Les deux vont fonctionner sauf si les paramètres graphiques par défaut ont été modifiés, le 2ème est plus précis. Il faut toutefois prendre garde au réglage automatique de la fenetre graphique et faire quelques changements (par ex. zoom out) pour voir ce qui se passe en 2/3.alb a écrit :Pour avoir une idée de la courbe de la fonction définie par:
f(x):=(2-sqrt(3*x-2))/(sqrt(2*x+5)-3)
doit-on faire:
plot(f(x))
ou
plot(f(x),x=2/3..2.5)
Pour la dérivée, je suppose que vous voulez dire expression rationnelle? Ca risque d'etre difficile avec xcas, on ne peut simplifier qu'avec ratnormal sinon des rootof apparaissent. On peut commencer avecquestion ouverte posée à des élèves de terminale qui devrait générer pas mal de questions:
validité de f(x)
limite en 2
existence d'une expression qui aurait le même signe que la dérivée.
a:=diff(f(x));
puis en observant la forme de la dérivée
b:=ratnormal((getNum(a[1])*getDenom(a[1])+getNum(a[2]))*(3x-2)*(2x+5)
mais il faut deja bien connaitre xcas et le calcul n'est pas fini!
Ici, il est plus simple d'étudier séparément le numérateur et le dénominateur (mais ce serait évidemment faux en général!)
Re: A qui se fier ?
Merci pour tous ces conseils.
En fait mon pb était en 2:
la commande simple plot(f(x)) (sans spécifier l'intervalle) me donne une aberration en 2.La courbe présente un pic.
Ce qui n'est pas le cas avec l'intervalle 2/3..5
J'ai une autre question:
Je cherche une solution approchée de x/(3+2*sin(x))=40 la plus proche de 200
En faisant
fsolve(x/(3+2*sin(x))=40,x,196.6..196.7) j'obtiens undef
En ajoutant bisection_solver xcas plante
En fait mon pb était en 2:
la commande simple plot(f(x)) (sans spécifier l'intervalle) me donne une aberration en 2.La courbe présente un pic.
Ce qui n'est pas le cas avec l'intervalle 2/3..5
J'ai une autre question:
Je cherche une solution approchée de x/(3+2*sin(x))=40 la plus proche de 200
En faisant
fsolve(x/(3+2*sin(x))=40,x,196.6..196.7) j'obtiens undef
En ajoutant bisection_solver xcas plante
Re: A qui se fier ?
Complément au message précédent:
pour f(x):=(2-sqrt(3x-2))/(sqrt(2x+5)-3) je veux vérifier que le signe de la dérivée est celui de
-38+18*sqrt(2x+5)-8*sqrt(3x-2)
Avec g(x):=si (x=2) alors -9/4;sinon (2-sqrt(3x-2))/(sqrt(2x+5)-3);fsi
j'ai pour plot(g(x)) toujours le pic en 2.
pour f(x):=(2-sqrt(3x-2))/(sqrt(2x+5)-3) je veux vérifier que le signe de la dérivée est celui de
-38+18*sqrt(2x+5)-8*sqrt(3x-2)
Avec g(x):=si (x=2) alors -9/4;sinon (2-sqrt(3x-2))/(sqrt(2x+5)-3);fsi
j'ai pour plot(g(x)) toujours le pic en 2.
Re: A qui se fier ?
ca depend de l'intervalle parce que xcas échantillone la fonction en 300 points par défaut si ma mémoire est bonne, si jamais il est très proche de 2 (par ex. 2+1e-17) les erreurs de compensation font que la valeur calculée sera très imprécise et ça peut donner un pic. Il me faudrait votre config (~/.xcasrc ou xcas.rc sous windows) pour tester avec les mêmes paramètres que vous.alb a écrit :Merci pour tous ces conseils.
En fait mon pb était en 2:
la commande simple plot(f(x)) (sans spécifier l'intervalle) me donne une aberration en 2.La courbe présente un pic.
Ce qui n'est pas le cas avec l'intervalle 2/3..5
Je vais regarder ça.J'ai une autre question:
Je cherche une solution approchée de x/(3+2*sin(x))=40 la plus proche de 200
En faisant
fsolve(x/(3+2*sin(x))=40,x,196.6..196.7) j'obtiens undef
En ajoutant bisection_solver xcas plante
Re: A qui se fier ?
fsolve(x/(3+2*sin(x))=40,x=196.5..197,bisection_solver)
me renvoie [196.640376091,196.640376106]
et fsolve(x/(3+2*sin(x))=40,x=196.0..196.5,bisection_solver)
renvoie [196.033316866,196.03331688]
Comme on est près d'un minimum (2 racines proches), Newton ne marche pas. Votre intervalle de départ avec bisection_solver me donne [196.640376094,196.640376097] je n'ai pas de undef ni de crash.
me renvoie [196.640376091,196.640376106]
et fsolve(x/(3+2*sin(x))=40,x=196.0..196.5,bisection_solver)
renvoie [196.033316866,196.03331688]
Comme on est près d'un minimum (2 racines proches), Newton ne marche pas. Votre intervalle de départ avec bisection_solver me donne [196.640376094,196.640376097] je n'ai pas de undef ni de crash.
Re: A qui se fier ?
Comment faites-vous les calculs à la main? j'ai essayé avec l'éditeur d'équations de xcas, j'ai du me gourer, je trouve -12*x+9*sqrt(2*x+5)+4*sqrt(3*x-2)-11. Et on ne peut pas faire séparément numérateur et dénominateur contrairement à ce que je croyais à cause des signes:-(alb a écrit :Complément au message précédent:
pour f(x):=(2-sqrt(3x-2))/(sqrt(2x+5)-3) je veux vérifier que le signe de la dérivée est celui de
-38+18*sqrt(2x+5)-8*sqrt(3x-2)
Oui, car l'échantillonage pour tracer g ne passe pas exactement en x=2 mais probablement en x=2+1e-17 ou x=2-1e-17 donc l'erreur d'arrondi donnant le pic persiste.Avec g(x):=si (x=2) alors -9/4;sinon (2-sqrt(3x-2))/(sqrt(2x+5)-3);fsi
j'ai pour plot(g(x)) toujours le pic en 2.
Re: A qui se fier ?
Bon, j'ai réussi! Je fais f:=(2-sqrt(3x-2))/(sqrt(2x+5)-3); puis a:=diff(f) puis
b:=ratnormal(expand((getNum(a[1])*getDenom(a[1])+getNum(a[2]))*sqrt(3x-2)*sqrt(2x+5)))
b:=ratnormal(expand((getNum(a[1])*getDenom(a[1])+getNum(a[2]))*sqrt(3x-2)*sqrt(2x+5)))
Re: A qui se fier ?
le crash persiste pour resoudre_numerique(x/(3+2*sin(x))=40,x,196..197,bisection_solver) ainsi que pour d'autres variantes syntaxiques, aussi bien sur ma version (juillet) que sur celle du lycée (novembre 2008).
En revanche resoudre_numerique(cos(x)=x,x,-1..1,bisection_solver) renvoie bien [0.7390850782,0.7390851378].
J'ai tenté de joindre le fichier xcasrc sans succès apparemment.
En revanche resoudre_numerique(cos(x)=x,x,-1..1,bisection_solver) renvoie bien [0.7390850782,0.7390851378].
J'ai tenté de joindre le fichier xcasrc sans succès apparemment.
Re: A qui se fier ?
J'ai retesté sous linux avec la dernière version, ça marche bien. Je testerai sous windows lors de la prochaine mise à jour.
Je vous invite de toutes façons à mettre à jour au moins la version de xcas de 2008, il y a eu un gros paquet de corrections de bugs depuis.
Je vous invite de toutes façons à mettre à jour au moins la version de xcas de 2008, il y a eu un gros paquet de corrections de bugs depuis.
Re: A qui se fier ?
P.S.: pour xcasrc, le mieux est de faire un copier-coller depuis un éditeur, comme il ne prend que 3 lignes de texte.
Re: A qui se fier ?
En effet, ca crashe sous windows mais pas sous linux! Le responsable semble etre l'intervalle, il faut un intervalle ou il y a changement de signe pour que bisection_solver fonctionne, sinon la Gnu Scientific Library renvoie un signal d'erreur... qui n'est pas intercepte comme sous linux pour une raison que j'ignore et fait donc crasher. Je rajoute donc un test de changement de signe (pour tous les solver sauf newton)
Re: A qui se fier ?
xcasrc:
widget_size(20,267,56,735,557,0,1,0);maple_mode(0);
xyztrange(-4.2,4.2,-3.4,1.1,-10.0,10.0,-1.0,6.0,-4.2,4.2,-1.4,1.1,1,0.0,1.0);
widget_size(20,267,56,735,557,0,1,0);maple_mode(0);
xyztrange(-4.2,4.2,-3.4,1.1,-10.0,10.0,-1.0,6.0,-4.2,4.2,-1.4,1.1,1,0.0,1.0);
Re: A qui se fier ?
il manque la ligne importante avec cas_setup(), mais c'est inutile ici puisque le bug est en principe corrigé.