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 ?
fMin
Modérateur : xcasadmin
Re: fMin
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.
[-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.
Re: fMin
bon, j'ai fait une modif qui devrait regler le probleme.
Re: fMin
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 !!
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 !!
Re: fMin
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 ?
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 ?
Re: fMin
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.