Rechercher
Connexion
Chatbox externe
Derniers sujets
Partenaires
TI-Planet | Espace-TI : Forum |
Faire un don à Tout-82...
Où va cet argent ?
Membres donateurs:- Persalteas (10€)
- Wistaro (5€)
- jo2geek (22€)
Les posteurs les plus actifs du mois
Aucun utilisateur |
[Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
+2
Linkakro
Wistaro
6 participants
Page 2 sur 2
Page 2 sur 2 • 1, 2
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
m@thieu41 a écrit:Le problème c'est que si A = 0, le prgm ne teste pas si B = 0 ou pas. Il dit directement qu'il n'y a pas de solution. (cf :If not(A:Goto 8:Lbl 8:Text(30,0,"S=:Pause ).
Donc il faudrait rajouter le cas où toutes les solutions sont vraies, sinon c'est faux!
Wistaro a effectivement admis le cas de solution multiple, mais en précisant que le programme répondait dans ce cas qu'il n'y avait aucune solution...
Il s'agit d'une erreur que j'ai corrigé ce matin, je posterais le code demain. De plus, j'ai également pris l'initiative de mettre une équation nulle si le signe "=" n'est pas mentionné. Si l'utilisateur rentre "10X
50", le programme va m’interpréter comme "10X+50=0".
Linkakro: Voilà l'erreur de mon programme, en fait. Je dis que quand A = 0, alors la solution est IR (anciennement
Linkakro a écrit:>>>> Si B=0, alors on a la tautologie "0=0" et l'ensemble est "IR". (Ou les complexes "CI".)
>>>> Si B est non nul, alors l'équation est contradictoire, et il n'y a aucune solution.
m@thieu41- ----------------------
- Messages : 939
Points Concours : 65
Productivité : 47
Date d'inscription : 02/06/2013
Localisation : Nice, France
Calculatrice(s) :- TI-82 Stats.fr
. :
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
Un sous programme à lui tout seul à pour but de:
- détecter les racines
- Simplifier les racines au maximum.dans l'expression.
Je développe actuellement ce programme
- détecter les racines
- Simplifier les racines au maximum.dans l'expression.
Je développe actuellement ce programme
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
Le projet continu. Je bosse sur un sous programme qui détecte les racines, les calcules, et simplifie le tout en donnant un résultats exact
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
J'imagine que tu cherches les diviseurs en nombre pair du radical de l'antécédent de la racine pour la simplifier sans arrondi. Sinon des cribles avec produit existent (j'en ai un complet ainsi (Raccalc)) mais gare aux arrondis, or je m'attend à ce que tu choisisses l'exactitude littérale. (tu devrais te rapprocher de mon Racsimpl mais bien sûr gérer plus de cas que moi)
Je pense que le verbe "calculer" de ta phrase est mal choisi puisque ton travail est littéral exact mais pas numérique.
Continue et surprend moi !
Je pense que le verbe "calculer" de ta phrase est mal choisi puisque ton travail est littéral exact mais pas numérique.
Continue et surprend moi !
Linkakro- ----------------------
- Messages : 533
Points Concours : 55
Productivité : 31
Date d'inscription : 30/07/2013
Localisation : origine région centre, puis perpignan
Calculatrice(s) :- TI-82 Stats.fr
. :
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
Te surprendre sera difficile ;-)
En clair, ce fameux sous programme sera capable de simplifier une équation de ce type : 10x + 2sqrt(45) + 3sqrt(2) + -24x + 2sqrt(5) = 0 en
10x + -24x + 8sqrt(5) + 3sqrt(2)
Équation qui sera ensuite passé dans mon solveur. Le résultat pourra donc être de la forme 43/2sqrt(3), ce qui est le résultat le plus exact possible.
Comment fonctionne cette extension ?
D'abord, la détection des racines et de leurs multiplicateur (ex: 2sqrt(3): 2 est le multiplicateur et 3 la racine). Grâce au même principe que le solveur, sous analyse de la chaîne de caractères.
Ces données sont inscrites dans 2 listes: l'une pour la racine, l'autre pour le coefficient. Par défaut, toute racine à une coefficient égal à 1.
Viens ensuite la méthode de simplification. J'utilise 3 méthodes successives de simplification.
Tout d'abord je teste si le coefficient * la racine tonbe juste - autrement dit que la partie décimales n'existe pas.Sinon, je supprime la valeur de la liste en leur affectant la valeur 0.
Ensuite, viens ma technique de simplification d'une racine pour la mettre sous la forme xsqrt(y). Ma méthode se rapproche de celle de Linkakro, bien que je n'ai pas regardé son travail avant de me lancer dans cet algorithme.
Puis j'affecte les coefficients: si par exemple on avait 3sqrt + 3sqrt(3), au aurait maintenant 9sqrt(3) (car sqrt(12) = 2sqrt(3), donc 3sqrt(12) = 6sqrt(3). Donc + 3sqrt(3) = 6+3sqrt(3) = 9sqrt(3).
Enfin, je regroupe les racines ensemble : si on avait 7sqrt(2) + 3sqrt(2) on aura donc 9sqrt(2)
Voilà son fonctionnement ;-)
En clair, ce fameux sous programme sera capable de simplifier une équation de ce type : 10x + 2sqrt(45) + 3sqrt(2) + -24x + 2sqrt(5) = 0 en
10x + -24x + 8sqrt(5) + 3sqrt(2)
Équation qui sera ensuite passé dans mon solveur. Le résultat pourra donc être de la forme 43/2sqrt(3), ce qui est le résultat le plus exact possible.
Comment fonctionne cette extension ?
D'abord, la détection des racines et de leurs multiplicateur (ex: 2sqrt(3): 2 est le multiplicateur et 3 la racine). Grâce au même principe que le solveur, sous analyse de la chaîne de caractères.
Ces données sont inscrites dans 2 listes: l'une pour la racine, l'autre pour le coefficient. Par défaut, toute racine à une coefficient égal à 1.
Viens ensuite la méthode de simplification. J'utilise 3 méthodes successives de simplification.
Tout d'abord je teste si le coefficient * la racine tonbe juste - autrement dit que la partie décimales n'existe pas.Sinon, je supprime la valeur de la liste en leur affectant la valeur 0.
Ensuite, viens ma technique de simplification d'une racine pour la mettre sous la forme xsqrt(y). Ma méthode se rapproche de celle de Linkakro, bien que je n'ai pas regardé son travail avant de me lancer dans cet algorithme.
Puis j'affecte les coefficients: si par exemple on avait 3sqrt + 3sqrt(3), au aurait maintenant 9sqrt(3) (car sqrt(12) = 2sqrt(3), donc 3sqrt(12) = 6sqrt(3). Donc + 3sqrt(3) = 6+3sqrt(3) = 9sqrt(3).
Enfin, je regroupe les racines ensemble : si on avait 7sqrt(2) + 3sqrt(2) on aura donc 9sqrt(2)
Voilà son fonctionnement ;-)
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
Wow ça avance bien, bravo c'est sympa comme programme pour les gars flemmards (je ne risque pas vraiment de l'utiliser mais je suis sur que ça peut aider des gens).
Re: [Projet] Solveur d'équations de 1er degré sans solve() - TIbasic z80
Merci. Il peux servir pour gagner du temps chez ceux qui maîtrisent les équations, et aider à mieux les comprendre pour ceux qui auraient des difficultés (notamment avec le mode pas à pas explicatif)
Page 2 sur 2 • 1, 2
Sujets similaires
» Jeu 2048 - TIbasic z80 - Compatible TI82
» problème solveur équation
» Solveur : erreur signe constant
» Convertir Angle en degré ou radian
» Forme canonique et racine de polynôme de second degré
» problème solveur équation
» Solveur : erreur signe constant
» Convertir Angle en degré ou radian
» Forme canonique et racine de polynôme de second degré
Page 2 sur 2
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Dim 16 Oct 2022 - 21:11 par Wistaro
» Bonne année 2018!
Ven 2 Nov 2018 - 19:42 par Ti64CLi++
» Lancement du TI-Concours 2017 !
Sam 20 Mai 2017 - 0:27 par Paulo1026
» Chaînes Youtube des membres
Ven 19 Mai 2017 - 22:41 par Wistaro
» cacul du taux d'intêret
Ven 24 Mar 2017 - 21:50 par m@thieu41
» [Projet] Un mario by tout82
Dim 29 Jan 2017 - 14:09 par Wistaro
» Cherche documentation assembleur TI82stat
Mer 25 Jan 2017 - 12:29 par Ti64CLi++
» Probleme Ti-82 Stats fr
Jeu 12 Jan 2017 - 13:56 par Ti64CLi++
» ROM 82 stats.fr
Jeu 15 Déc 2016 - 10:24 par Ti64CLi++