Trouver la solution d'une equation

cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008 - 5 nov. 2006 à 17:42
cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008 - 9 nov. 2006 à 00:03
Bonjour,
je ss entrain de faire un ptit programme ,plus ou moins mathématique,et je veux récupérer la solution d'une équation dont le deuxième côté est égal à 0,et j'ai utilisé le code suivant:

Private Sub Command1_Click()
Dim a, x, y As Double

a = Text1.Text
y = (2 * x) + a
While (y = 0)
Label1.Caption = x
Wend

End Sub

le "a" est une valeur que je fais entrer dans une zone de texte.
Pt être vous allez dire que c'est tellement bête de calculer le x avec un etelle manière,et de ne pas utiliser la formule de "x" qu'on pt déduire simplement de l'équation surtt que y=0; Mais je vous dis que ce qui m'importe est l'algorithe,car e fait j'ai une équation du 4ème degré et c'est pas du tout facil de trouver les racines,

Merci pr toute aide

10 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 nov. 2006 à 18:42
En d'autres termes : tu veux utiliser une boucle jusqu'à trouver Y = 0... pour trouver les solutions d'une équation polynomiale...

Un tel procédé ne te conduira JAMAIS à des solutions exactes mais à des solutions PROCHES (d'autant plus proches que tes valeurs successives pour x seront peu espacées).

Si une approximation de ce genre te suffit (ce n'est alors plus des mathématiques), tu trouveras sur le Web une foule d'exemples.
0
cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008
5 nov. 2006 à 19:09
alors puisque ça serait pas exact,je me dirige vers la solution mathématique,avec la résolution de Ferrari ça se fait,mais j'ai des coefficients assez compliqués, y a pas une autre manière pour ce faire autre que Ferrari??
Merci
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
5 nov. 2006 à 20:04
C'est pas faux !!
polynomiale, résolution de ferrari, je comprends rien à tout ça, mais tout ce que je peux dire, c'est que tel que ton code est fait, vb ne sera pas ferrari longtemps et devra passer au stand :

Dim a, x, y As Double

a = Text1.Text
y = (2 * x) + a
While (y = 0)
  Label1.Caption = x
Wend

Explication :

Déjà, le Dim <strike>a, x,</strike> y As Double , c'est faux, voici la bonne syntaxe (seul y est Double):
Dim a As Double, x As Double, y As Double

Ensuite, si je récapitule, a peut être égale, humm par exemple à 3,
donc y égale à 3 + (2 * <strike>x</strike> et bah non, x = 0) car il n'est jamais initialisé, ce qui fait que y sera toujours égale à a et donc pour que la boucle s'opère, il faut que a soit égale à 0.
Sache que si la boucle se fait, elle sera infinie ! Remplace Label1.Caption = par MsgBox et tu verras. [Ctrl Pause pour arrêter une boucle infinie, ou le carré de stop]

Voilà, par contre, ... j'ai pas de conseil de maths !

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008
5 nov. 2006 à 20:28
oui vs avez raison,mais x reste à 0,et y a pas d'incrémentation,le msgbox me rend tjrs la valeur 0!!!!!! donc c'est comme s'il va jamais trouver (2*x)+a=0!
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008
6 nov. 2006 à 18:03
Alors plus d'avis :(
tu peux jmfmarques me passer un lien d'une application basée sur l'approximation pour le 4ème degré en vb, j n'ai trouvé que pour 3 et en c++.

merci d'avance
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2006 à 21:14
Voilà un lien (purement mathématique) concernant la recherche de solutions exactes (dans R) :
http://en.wikipedia.org/wiki/Quartic_equation
Tu y trouveras tout le raisonnement mathématique . A toi de le transposer (bon courage).
Je cherche maontenant un lien vers la recherches de solutions approximatives (quel que soit d'ailleurs le degré de l'équation polkynomiale, puisqu'il s'agira de faire avancer x pas à pas pour trouver quand y avoisine 0).
A bientôt.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2006 à 21:19
Voilà, ami, le raisonnement qu'il te faudra mettre en oeuvre pour cette méthode "par tatonnements" successifs.
Il est facile à comprendre si, comme tu le  donnes à penser, tu aimes les mathématiques.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2006 à 21:20
Zut, j'ai oublié le lien ....
Le voilà :
http://fr.wikipedia.org/wiki/M%C3%A9thode_de_dichotomie
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
8 nov. 2006 à 21:28
Enfin, si, contrairement à ce que tu donnes à penser, tu n'aimes finalement pas les mathématiques, la recherche "par tatonnements successifs" a déjà donné lieu à la construction d'une dll, qu'ilo te suffirait d'utiliser...

Un lien ?
Pourquoi pas :

http://perso.orange.fr/robert.mellet/racines/racin_2.htm
0
cs_lebienestrare Messages postés 96 Date d'inscription samedi 6 mai 2006 Statut Membre Dernière intervention 23 mars 2008
9 nov. 2006 à 00:03
Bonsoir tout le monde,mercii bcp et surtt à toi jmfmarques,en fait je suis mathématicienne d'origine,mais ça fait un certain temps que je me ss intéréssée à l'informatique,mais evidemment,la mathématique constitue la base d'informatique,
merci bcp pr ton coup de main;) et à la prochaine,les liens m'ont servi bcp
0
Rejoignez-nous