# -*- coding: utf-8 -*-
"""
Created on Wed Mar 27 15:31:52 2024

@author: Marie
"""

# Importation des bibliothèques utiles :
import numpy as np                  # Pour faire des calculs, des tableaux
import matplotlib.pyplot as plt  	  # Pour tracer des graphiques



# Valeurs expérimentales tracé du graphique:
P = np.array([10,20,50,70,100,120,150,200,250,270,300])# Tableau des différentes poids d'étude (en g)
E =np.array([1,0.984,0.968,0.960,0.944,0.928,0.896,0.8896,0.7072,0.352,0])    # Tableau des différentes valeurs d'étirement (en cm)
E1=E*100


u_E=10/np.sqrt(3)                 # J'ai mulpliplié par 100 pour voir qq-chose.

plt.plot(P,E1,"mx")
plt.errorbar(P, E1, yerr = u_E, fmt=',k', capsize = 3, 
             elinewidth = 1, capthick = 1, label = 'incertitude')         # Tracé des points avec barres d'incertitude


p = np.polyfit(P[:8],E1[:8],1)                      # Régression linéaire de E en fonction de P
y_reg = p[0]*P[:9] + p[1]                            #Équation de la droite de régression
plt.plot(P[:9], y_reg,'g', label="Zone élastique")
p = np.polyfit(P[8:],E1[8:],1)                      # Régression linéaire de E en fonction de P
y_reg = p[0]*P[7:] + p[1] 
plt.plot(P[7:], y_reg,'b', label="Zone plastique") # représentation de la droite de régression y_reg=f(t)
plt.xlabel('poids en grammes')
plt.ylabel('étirement' )
plt.title('Évolution de $E$ en fonction de $P$')
plt.grid()
plt.legend()  #affiche le graphique
plt.show()


