fMin

Utilisation de Xcas

Modérateur : xcasadmin

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

fMin

Message par alb » mar. nov. 06, 2012 8:22 pm

f(x):=sqrt(64+x^2)/8+sqrt((15-x)^2+36)/2;
fMin(f(x),x=0..15);
Xcas avertit: Algebraic extension not implemented yet for poly [-225,104010,-29248249,1815320448,-31986192384]
mais retourne cependant comme réponse 15. Pourquoi ?

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: fMin

Message par parisse » mer. nov. 07, 2012 8:06 am

Le warning vient de la resolution de f'(x)=0, qui est ramene a cause des racines carrees a la resolution du systeme:
[-64-x^2+c__0^2,-(15-x)^2-36+c__1^2,4*x*c__0+x*c__1-60*c__0]=[0,0,0]
on elimine x et c_0 et on a en c__1 l'equation
-225*c__1^8+104010*c__1^6-29248249*c__1^4+1815320448*c__1^2-31986192384
qui n'a pas de racine exprimable simplement. Et la, le solver exact echoue pour le moment, car il faudrait donner toutes les racines avec des rootof ce qui serait tres vite abonimablement complique (sauf pour la 1ere racine...), numeriquement on pourrait trouver c__1 et en deduire x dans le cadre de la resolution avec des racines carrees (par contre dans le cas general d'un systeme ce serait plus difficile).
Donc comme on n'a pas trouve de racine pour f'(x)=0, fMin va chercher la borne de l'intervalle qui donne le minimum.
Bon, je vais reflechir a une modif de la resolution en eliminant plutot c__0 et c__1 pour calculer numeriquement x directement.

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: fMin

Message par parisse » mer. nov. 07, 2012 12:38 pm

bon, j'ai fait une modif qui devrait regler le probleme.

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: fMin

Message par alb » mer. nov. 07, 2012 4:49 pm

Excellent !
en seconde (donc sans utiliser f'(x)) je fais construire des tableaux de variations avec Xcas:
1/ avec graphe pour avoir la courbe
2/ avec fMin et fMax sur des intervalles choisis à partir du graphe
et donc maintenant dans le cas où l'on ne peut pas trouver une valeur exacte, on a une valeur approchée de l'abscisse du min ou du max !
Merci !!

alb
Messages : 1331
Inscription : ven. août 28, 2009 3:34 pm

Re: fMin

Message par alb » ven. nov. 09, 2012 1:28 pm

je me demandais s'il ne serait pas envisageable de faire la même chose quand on obtient un Unable to isolate
g(x):=(x-1)^2+((e^x)-(e^-x))^2/4
fMin(g(x),x=0..1) renvoie Unable to isolate x in 4*x+exp(x)^2-exp(-x)^2-4
Est-il possible que cette commande:
1/ avertisse qu'il s'agit d'un Unable to isolate ?
2/ renvoie 0.465004517356 ?

parisse
Messages : 5881
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: fMin

Message par parisse » sam. nov. 10, 2012 12:05 pm

Ca doit etre faisable, mais le mieux sera de modifier le comportement de solve, par contre je ne sais pas si c'est suffisamment simple pour le faire tout de suite ou s'il ne vaut mieux pas attendre que la version 1 soit sortie.

Répondre