Comment résoudre des équations du 1er et 2nd degré grâce à python

Enoncé de l’exercice

Écrire un programme qui permet de résoudre les équations du 1er et 2nd degré.

photo of woman standing in front of blackboard
Photo by Max Fischer

Rappel sur les équations du 1er degré

On admettra que les équations du premier degré s’écrivent sous la forme : ax+b=c.

Avec 

  • a, b et c sont des nombres connus, et a est différent de 0 ;
  • et x est un nombre inconnu.

L’équation est dite de premier degré car la plus grande puissance de l’inconnue x est 1.

Pour résoudre les équations de ce type on applique la relation suivante :

La valeur de x qui permet de vérifier l’équation est : x = (c-b) / a.

Rappel sur les équations du 2nd degré

L’équation ax2 + bx + c = 0 est une équation de degré 2. La plus grande puissance de x est 2. 

Voici la méthode de résolution de ce type d’équation :

  • Calculer le discriminant Δ en remplaçant a, b et c par leurs valeurs dans la formule 
    • Δ=b2−4ac.
  • Si Δ > 0 (si le discriminant est positif), il y a deux solutions :
    • (-b – racine(Δ)) / 2a
    • (-b + racine(Δ)) / 2a
  • Si Δ=0, il y a une solution qui vérifie l’égalité:
    • -b / 2a
  • Si Δ< (si le discriminant est négatif), il n’y a pas de solution dans le domaine du réel.

Solution 

Voici le code des deux fonctions qui permettent de résoudre les équations du 1er et 2ème degré :

def equaDegr1(a, b, c):

    """

    ce code résoud les équations du 1er degré de la forme:

    ax+b=c

    param a: coefficient a de l'équation

    param b: coefficient b de l'équation

    param c: coefficient c de l'équation

    return: résultat de l'équation

    """

    x = (c-b)/a

    return x

def equaDegr2(a, b, c):

    """

    Ce programme résoud les équations de 2nd degré de la forme:

    ax^2+bx+c = 0

    param a: coefficient de x^2

    param b: coefficient de x

    param c: la constante

    return: soit 2 valeurs de x qui vérifient l'égalité

            ou bien la seul valeur

            ou sinon un message disant que l'équation n'a pas de solution 

    """

    import math

    descr = b**2 - 4*a*c

    if descr < 0:

        return "Cette équation n'a pas de solution dans le domaine du réel"

    elif descr == 0:

        x = -b/(2*a)

        return x

    else:

        x1 = (-b - math.sqrt(descr))/(2*a)

        x2 = (-b + math.sqrt(descr)) / (2 * a)

        return (x1, x2)

J’ai utilisé 3 arguments pour chacune des 2 fonctions. Les arguments sont obligatoires, si on mets moins de trois arguments ou plus de 3 arguments le programme renvoie une erreur d’exécution.

J’ai donné le nom de equadeg1() pour la première fonction et equaDegr2() pour la deuxième fonction.

Le premier programme permet de résoudre les équations du premier degré et le deuxième programme celles du deuxième degré.

Si on exécute ce programme rien ne se passera, car on n’a fait appel à aucune des fonctions. 

Comment utiliser les fonctions

On peut imaginer la situation suivante pour faire appel à l’une ou l’autre fonction. On demandera à l’utilisateur de choisir s’il veut résoudre une équation du 1er ou du 2ème degré, et en fonction de ce qu’il rentrera on utilisera la fonction equaDegr1() ou equaDegre2().

Voici une proposition de code qui fait appel à ces deux fonctions

<code>print("quel type d'équation voulez vous résoudre?")
print("Equation de 1er degré. Taper 1 puis entrée")
print("Equation de 2ème degré. Taper 2 puis entrée")
choix = input()
a = float(input("a = "))
b = float(input("b = "))
c = float(input("c = "))
if choix == 1:
    X = equaDegr1(a, b, c)
else :
    X = equaDegr2(a, b, c)
print("la solution de l'équation (s'elle existe) est : ",X)</code>

Si vous avez aimé l'article vous êtes libre de le partager :)

4 commentaire

Laisser un commentaire