21 lines
No EOL
1.3 KiB
Text
21 lines
No EOL
1.3 KiB
Text
Écris un script Python qui :
|
||
|
||
Demande à l'utilisateur le rayon d'une cuve cylindrique (en mètres) et sa longueur (en mètres). L'entrée peut contenir une virgule comme séparateur décimal, qu'il faudra convertir en point.
|
||
Calcule le volume total de la cuve et génère une liste de volumes espacés de 0,1 m³ jusqu'à la capacité maximale.
|
||
Détermine pour chaque volume la hauteur de remplissage en trouvant la flèche du segment de disque correspondant.
|
||
L'aire du segment de disque est donnée par :
|
||
A(f)=R2⋅arccos(R−fR)−(R−f)⋅2Rf−f2
|
||
A(f)=R2⋅arccos(RR−f)−(R−f)⋅2Rf−f2
|
||
|
||
|
||
La flèche ff est obtenue par une recherche de zéro à l'aide de scipy.optimize.root_scalar (méthode de bissection).
|
||
|
||
Crée un graphe avec :
|
||
|
||
L'axe des abscisses affichant les mois, espacés régulièrement.
|
||
L'axe de gauche représentant le volume (m³) en bleu.
|
||
L'axe de droite représentant la hauteur de remplissage (m) en rouge (courbe en pointillés).
|
||
Un quadrillage aligné sur les hauteurs de remplissage.
|
||
|
||
Utilise Matplotlib pour l'affichage, avec des courbes épaissies et une mise en forme claire.
|
||
Formatte correctement l'axe des dates (mdates.DateFormatter("%b %Y")) et tourne les labels en diagonale pour plus de lisibilité. |