Article épinglé

jeudi 27 juin 2019

Python - script résolution équation du second degré

Création lors d'une séance de travail collaboratif entre TIM et Maths

Objectif

Résolution d'une équation du second degré avec python. Niveau STAV Attention, le discriminent n'est plus au programme des STAV!!!. Pour en savoir plus, lisez la suite ;)))

Premier script

# commentaire
# resolution equation seconde degre stav
# version 1

a=2
b=1
c=3

#calcul de delta
delta=b**2-4*a*c

# condition sur delta dans cet ordre >0 puis ==0 puis <0
if delta>0:
    x1=(-b-delta**0.5)/(2*a)
    x2=(-b+delta**0.5)/(2*a)
    print("x1 =",x1)
    print("x2 =",x2)
else:
    if delta==0:
        x0=-b/(2*a)
        print("x0 =",x0)
    else:
        print("Pas de solution dans l'espace de réel")


>>> %Run test.py
Pas de solution dans l'espace de réel

Amélioration pour aller vers le Second script

  • Améliorer l'affichage du message final
  • Permettre le choix des paramètres
  • Faire la représentation graphique des solutions (pour plus tard)

Second script

# commentaire
# resolution equation seconde degre stav
# version 2

a=float(input("Saisir la valeur de a="))
b=float(input("Saisir la valeur de b="))
c=float(input("Saisir la valeur de c="))

#calcul de delta
delta=b**2-4*a*c

#affichage
print("résolution de l'équation ",a," x² + ",b," x + ",c)

# condition sur delta dans cet ordre >0 puis ==0 puis <0
if delta>0:
    x1=(-b-delta**0.5)/(2*a)
    x2=(-b+delta**0.5)/(2*a)
    print("Delta est positif donc il y a 2 solutions")
    print("x1 =",x1)
    print("x2 =",x2)
else:
    if delta==0:
        x0=-b/(2*a)
        print("Delta est nul donc il y a 1 solution unique")
        print("x0 =",x0)
    else:
        print("Pas de solution dans l'espace de réel")

>>> %Run test.py
Saisir la valeur de a=12
Saisir la valeur de b=32
Saisir la valeur de c=23
résolution de l'équation  12.0  x² +  32.0  x +  23.0
Pas de solution dans l'espace de réel

Réalisation graphique

Prérequis

  • Installation de bibliothèques supplémentaires matplotlib et numpy (si besoin)


Troisième script

# commentaire
# resolution equation seconde degre stav
# version 3

a=float(input("Saisir la valeur de a="))
b=float(input("Saisir la valeur de b="))
c=float(input("Saisir la valeur de c="))

#calcul de delta
delta=b**2-4*a*c

#affichage
print("résolution de l'équation ",a," x² + ",b," x + ",c)

# condition sur delta dans cet ordre >0 puis ==0 puis <0
if delta>0:
    x1=(-b-delta**0.5)/(2*a)
    x2=(-b+delta**0.5)/(2*a)
    print("Delta est positif donc il y a 2 solutions")
    print("x1 =",x1)
    print("x2 =",x2)
else:
    if delta==0:
        x0=-b/(2*a)
        print("Delta est nul donc il y a 1 solution unique")
        print("x0 =",x0)
    else:
        print("Pas de solution dans l'espace de réel")

#représentation graphique
import numpy as np
import matplotlib.pyplot as plt

#encadrement pour le graphique


xmin=float(input("Saisir la valeur de xmin="))
xmax=float(input("Saisir la valeur de xmax="))

x = np.linspace(xmin,xmax,100)
y=a*x**2+b*x+c
plt.plot(x, y)

plt.title("Fonction du second degré")
plt.axhline(y=0,color='black')
plt.axvline(x=0,color='black')

plt.show() # affiche la figure a l'ecran

1 commentaire:

Enregistrer un commentaire

Tout commentaire nous engage ;)