fonction solve (
Modérateur : xcasadmin
-
- Messages : 16
- Inscription : mer. mars 06, 2013 6:16 pm
fonction solve (
Bonjour a tous,
Je voudrais savoir ce que permet de resoudre la fonction solve ( , dites moi quelles types d equations elle peut ou ne peut pas resoudre.
Ma deuxieme question est la suivante, serait il possible d obtenir les lignes de codes de cette fonction en C++ ? j entend pas la le code source de cette fonctionnalité, l algorithme en C++ qui quand on entre l equation la resoud.
Merci d avance
Scientifix
Je voudrais savoir ce que permet de resoudre la fonction solve ( , dites moi quelles types d equations elle peut ou ne peut pas resoudre.
Ma deuxieme question est la suivante, serait il possible d obtenir les lignes de codes de cette fonction en C++ ? j entend pas la le code source de cette fonctionnalité, l algorithme en C++ qui quand on entre l equation la resoud.
Merci d avance
Scientifix
Re: fonction solve (
solve résoud les équations polynomiales, et des équations qui s'y ramènent, soit par changement de variable, soit par réécriture et changement de variables, soit en ajoutant des inconnues et en résolvant un système polynomial. Tout ça se trouve dans solve.cc, mais il n'y a pas un algorithme "simple"...
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: fonction solve (
NB:
j'ai remarque qu'il ne faisait pas les polynomes de degre 3 ou 4.
csolve va un peu plus loin en sortant les racines via un rootof pour les polynomes de degre 3.
En revanche solve fait pas mal d'inequations ce qui me semble plus rare chez les autres logiciels libres.
par exemple le solve de sage ou maxima ne me semble pas repondre a ce genre d'inequations.
j'ai remarque qu'il ne faisait pas les polynomes de degre 3 ou 4.
csolve va un peu plus loin en sortant les racines via un rootof pour les polynomes de degre 3.
En revanche solve fait pas mal d'inequations ce qui me semble plus rare chez les autres logiciels libres.
par exemple le solve de sage ou maxima ne me semble pas repondre a ce genre d'inequations.
Code : Tout sélectionner
solve(log(2*x-1)-log(1-x)>log(3),x)
Code : Tout sélectionner
assume(x>-pi and x<pi);
solve(sin(2*x)>sin(x),x)
Re: fonction solve (
Degre 4 pas pour le moment, peut-etre dans un futur proche avec une extension de degre jusqu'a 24. En degre 3, en effet il ne renvoie pas la solution reelle si elle est unique, ca vient du fait que le alpha de l'extension Q[alpha] est complexe. Il faut que je reflechisse si on peut ameliorer. En attendant on peut utiliser csolve ou la session cardan.xws du menu Aide>Exemples>poly
Re: fonction solve (
Une possibilite pour "ameliorer" ce serait de renvoyer l'unique solution sous forme d'un rootof de l'equation elle-meme (pas sur que ce soit considere comme ameliore par tout le monde...).
-
- Messages : 16
- Inscription : mer. mars 06, 2013 6:16 pm
Re: fonction solve (
Donc solve ( ne resoud que tres peu de choses et ne supporte pas les equations trigonométriques, logarithmiques, avec exposants etc ... c est bien cela ? Cette fonction ne marche que pour les polynômes ?
Merci de votre reponse.
Scientifix
Ps: connaissez vous un algorithme en C++ qui soit capable de resoudre tout types d equation ?? Si oui, pouvez vous me le donner en format .cpp ?
Merci d avance
Merci de votre reponse.
Scientifix
Ps: connaissez vous un algorithme en C++ qui soit capable de resoudre tout types d equation ?? Si oui, pouvez vous me le donner en format .cpp ?
Merci d avance
Re: fonction solve (
Non, ce n'est pas exact. solve traite aussi certaines equations logarithmiques ou avec exp, etc. pour peu qu'elles se ramenent a des equations polynomiales. De toutes facons sinon on ne sait essentiellement rien faire en exact.
-
- Messages : 16
- Inscription : mer. mars 06, 2013 6:16 pm
Re: fonction solve (
*Pourriez vous me donner la partie du code solve en .cpp ou me dire où l'obtenir ?
*Connaissez vous un algorithme en C++ qui soit capable de resoudre tout types d equation ?? Si oui, pouvez vous me le donner en format .cpp ?
*Connaissez vous un algorithme en C++ qui soit capable de resoudre tout types d equation ?? Si oui, pouvez vous me le donner en format .cpp ?
Re: fonction solve (
Justement, ce matin, je m'amusais avec le système suivant :Donc solve ( ne resoud que tres peu de choses
Code : Tout sélectionner
solve([x*y+z*t=6,x+y-z*t=5,x*z-y/t=4,x*y*z-t=2],[x,y,z,t])
Code : Tout sélectionner
[[5.55752656542,0.829958274707,0.806557001312,1.72025639585],[0.0272521479286,10.6816499476,-2.1694334313,-2.63151752579]]
A part ça, Xcas ne résoud pas e^x+2x = 3 par exemple, mais il n'est pas le seul !!
Re: fonction solve (
Il faudrait rajouter une fonction speciale pour resoudre ce type d'equations. Peut-etre un jour!
-
- Messages : 16
- Inscription : mer. mars 06, 2013 6:16 pm
Re: fonction solve (
Whaou, joli système !
Pour la fonction solve, casio a un tres bon algorithme qui resout toutes les equations a ma connaissance et qui donne les resultats en valeur exacte quand il peut (sous forme de racine, fraction...) la commande s'appelle SolvN (
Si cela vous interesse, demandez a Casio leur algorithme pour rendre Xcas encore plus performant !! (Il l est deja )
Bonne continuation et merci !
Pour la fonction solve, casio a un tres bon algorithme qui resout toutes les equations a ma connaissance et qui donne les resultats en valeur exacte quand il peut (sous forme de racine, fraction...) la commande s'appelle SolvN (
Si cela vous interesse, demandez a Casio leur algorithme pour rendre Xcas encore plus performant !! (Il l est deja )
Bonne continuation et merci !
Re: fonction solve (
C'est d'ordre 6: gbasis([x*y+z*t-6,x+y-z*t-5,x*z-y/t-4,x*y*z-t-2],[x,y,z,t])Cheval a écrit :Justement, ce matin, je m'amusais avec le système suivant :Donc solve ( ne resoud que tres peu de chosesj'étais persuadé que ça ne marcherait pas… grave erreur, ça marche !Code : Tout sélectionner
solve([x*y+z*t=6,x+y-z*t=5,x*z-y/t=4,x*y*z-t=2],[x,y,z,t])
Je n'ai pas essayé à la main, mais ça doit faire au moins de l'ordre 3 une fois substitué, non ?Code : Tout sélectionner
[[5.55752656542,0.829958274707,0.806557001312,1.72025639585],[0.0272521479286,10.6816499476,-2.1694334313,-2.63151752579]]