Au sujet de csolve

Utilisation de Xcas

Modérateur : xcasadmin

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

Au sujet de csolve

Message par alb » mer. juil. 23, 2014 5:45 pm

@parisse,
Que repondrais-tu au post de Robot le 23-07-14 à 19:27 sur ce topic http://www.ilemaths.net/forum-sujet-608598.html

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

Re: Au sujet de csolve

Message par parisse » mer. juil. 23, 2014 7:07 pm

Si le systeme est polynomial, il est resolu par base de Groebner (en fait en utilisant l'algorithme dit de la representation rationnelle univariee (cf. http://en.wikipedia.org/wiki/System_of_ ... esentation), en abrege rur). La reponse affichee par csolve est approchee, parce que le polynome en question n'a pas de racines exprimables exactement (hors rootof, mais ca serait beaucoup trop complique en degre 10). Le fait que les racines soient reelles ou pas est certifie (il y a plusieurs facons de le faire, par exemple avec les suites de Sturm ou l'algorithme de Akritas).
On peut certifier completement le resultat approche, d'abord la rur en faisant proba_epsilon:=0; ensuite les racines trouvees en utilisant de l'arithmetique d'intervalle

Code : Tout sélectionner

n:=10;o:=3;p:=7;q:=5;
E1:=a*b*(a^2-2b+n)+q-o*b;
E2:=b^2*(a^2-b+n)+a*q-b*p;
G:=gbasis([E1,E2],[a,b],rur);
G[0] vaut rur si le systeme admet bien une representation rationnelle univariee.
G[1] est la forme lineaire separante (en general une des inconnues du systeme), G[2] est son polynome minimal (qui est toujours exprime en fonction de la 1ere inconnue), G[3] la derivee de G[2]. L'ensemble des solutions est donne par a=G[4](r)/G[3](r), b=G[5](r)/G[3](r) ou r decrit les solutions complexes de G[2]. On peut obtenir les racines complexes de G[3] sous forme d'intervalles avec la commande complexroot puis evaluer les quotients avec horner.

Répondre