Equations du troisième degré

Soyez le premier à donner votre avis sur cette source.

Vue 8 662 fois - Téléchargée 575 fois

Description

Réponse à Abdelelansari qui a fait un post sur ce même sujet.
Voir le ZIP... J'ai fait les modifications du post de Abdelelansari et j'ai mis un habillage VB6 pour tester.

Source / Exemple :


Private Sub Command1_Click()
Dim PI As Double
PI = 4 * Atn(1)
Dim w As Variant

Dim e As Double
Dim f As Double
Dim g As Double
Dim p As Double
Dim q As Double
Dim k As Double
Dim x As Double
Dim t As Double
Dim s1 As Double
Dim s2 As Double
Dim s3 As Double
Dim s4 As Double
Dim s5 As Double
Dim s6 As Double

Dim a, b, c, d As Double

a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = Val(Text4.Text)

'On Error Resume Next ... supprimé car s'il y a une erreur il vaud mieux le savoir et la traiter... surtout en maths!

If a = 0 Then w = MsgBox("C'est une équation du second degré!!.", vbCritical, "Trop facile!"): Exit Sub

e = b / (3 * a)
f = c / a
g = d / a
p = f - 3 * e * e
q = 2 * e * e * e - e * f + g
k = 4 * p * p * p / 27 + q * q

If Abs(k) < 0.000000001 Then k = 0 'à cause des erreurs machine, arrondi ..etc...

If k < 0 Then
   x = 3 * q / (2 * p) * Sqr(-3 / p)
   t = (Atn(-x / Sqr(-x * x + 1)) + PI / 2) / 3
   s1 = Sqr(-4 * p / 3) * Cos(t) - e
   s2 = Sqr(-4 * p / 3) * Cos(t + 2 * PI / 3) - e
   s3 = Sqr(-4 * p / 3) * Cos(t + 4 * PI / 3) - e
   Text5.Text = " Les trois solutions sont : " & s1 & " et " & s2 & " et " & s3
ElseIf k = 0 Then
   s4 = -e - Rqbik(4 * q)
   s5 = -e + Rqbik(q / 2)
   Text5.Text = " Les deux solutions sont : " & s4 & " et " & s5
Else
   s6 = -e + Rqbik(((Sqr(k) - q) / 2)) - Rqbik(((Sqr(k) + q) / 2))
   Text5.Text = " La solution est : " & s6
End If
End Sub

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Guillaume170194
Messages postés
31
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
19 août 2018
-
C'est quoi la fonction "Rqbik"
Abdelelansari
Messages postés
21
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
29 mars 2008
-
Abdelelansari:
Je remercie fort bien BETAMU et CFCTABLE et je vous dit que je suis un prof de math mais debutant en programation plus precisement en math.D'autre part je vous dit que vous avez raison seulement et comme a dit CFCTABLE je m'interesse aus equations a coefficients reéls.
Merci
cs_CFCTABLE
Messages postés
18
Date d'inscription
samedi 1 mars 2003
Statut
Membre
Dernière intervention
14 avril 2008
-
Je comprend ton soucis de précision. Sur ce cas, je ne fais que répondre du point de vue programmation à Abdelelansari . Je pense qu'il avait l' intention de traiter uniquement les solutions réelles et des coefficients rééls. Pour le coté maths, je lui laisse le soin de répondre.

Sinon je suis d'accord avec toi sur ces remarques.
betamu
Messages postés
6
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
29 mai 2009
-
Dans le cas ou n > 0 l'extraction classique
de racines carrées ne marche pas.
Si n > on a deux racines
N1 = sqr(n)
N2 = -sqr(n)
Si n < 0 on peut écrire
n = |n| e^[i (2 k + 1) Pi]
avec k = ... -3,-2,-1,0,1,2,3,...
dans l'ensemble des nombres complexes (C).
Et dans ce cas :
sqr(n) = sqr(|n|) e^(i k Pi) e^(i Pi/2)
on a deux racines carrées imaginaires pures
N1 = i sqr(|n|)
N2 = -i sqr(|n|)
Le problème est traité incomplètement.
----------------------
D'autre part :
Une équation de degré 3 à coefficients réels
a toujours 3 racines.
Cas 1 : 3 racines réelles distinctes
P(x) a (x - x1) (x - x2) (x - x3) 0
cas 2 : 1 racine réelle et 1 racine double
P(x) a (x - x1) (x- x2)^2 0
cas 3 : une racine triple
P(x) a (x - x1)^3 0
cas 3 : 1 racine réelle et 2 racines complexes
P(x) a (x - x1) (x - (m + i n)) (x - (p + i q)) 0
( ces racines sont d'ailleurs conjuguées
m=p et n=-q )
-------------------
Mais que se passe-t-il si les coefficients a,b,c et
l'inconnue sont toutes complexes ?
-------------------
C'est CARDAN qui avait résolu définitivement les
équations du 3-ième degré introduisant ainsi les
calculs des nombres imaginaires ou complexes.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.