• Aucun résultat trouvé

0 : Révisions premier semestre

N/A
N/A
Protected

Academic year: 2022

Partager "0 : Révisions premier semestre"

Copied!
4
0
0

Texte intégral

(1)

Lycée Newton- PTSI SN - TP0 - Révisions premier semestre

Informatique - Simulation numérique

TP n

o

0 : Révisions premier semestre

Manipulation de listes

Ex. 1 Échange d’éléments

Écrire une fonction echange(L, i, j)qui échange les deux éléments d’indices i etj d’une listeL, et qui renvoie la liste L.

Ex. 2 Moyenne et variance d’une liste de valeurs

Écrire deux fonctions moyenne(L) et variance(L)qui retournent respectivement la moyenne et la variance d’une liste de flottants L sans utiliser la fonction sum. On rappelle que la variance V(X) d’une liste de n valeurs xi d’une variable X est donnée par la formule :

V(X) = 1 n−1

n

X

i=1

(xim)2m représente la moyenne des n valeurs xi.

Ex. 3 Liste croissante

Écrire une fonction croissante(L)qui retourne True si la liste d’entiersL est croissante, et False sinon.

Ex. 4 Présence de doublons

Écrire une fonction doublon(L) qui détecte la présence d’un doublon dans une liste L d’entiers en utilisant puis sans utiliser la méthode count.

Ex. 5 Maximum d’une liste, valeur et occurence

Écrire une fonction recherche_max(L) qui retoune la valeur maximum d’une liste d’entiers L, la position de la première valeur correspondante et son nombre d’occurence.

Ex. 6 Distance maximale dans une liste

Écrire une fonction distance_max(L) qui retourne le plus grand écart (en valeur absolue) entre deux valeurs d’une liste d’entiers L.

Manipulation de fichiers, graphes et tests de comparaison

Ex. 7 Traitement de données expérimentales

Le but de cet exercice va être de récupérer un certain nombre d’informations concernant la dé- charge d’un condensateur dans un circuit RLC en régime libre. Sur le site pohon.free.fr se trouvent plusieurs fichiers exportés depuis LatisPro et contenant le résultat de mesures réelles

2020/2021 1/4

(2)

Lycée Newton- PTSI SN - TP0 - Révisions premier semestre (echantillon1.txt et echantillon2.txt). Il va s’agir ici d’automatiser les procédures de récu- pération du facteur de qualité et de la pulsation propre. Ci-dessous une représentation des deux échantillons fournis.

Figure 1

7.1. Lecture du fichier La première chose à faire est d’écrire une procédure de lecture du fichier.

Celui-ci est du type : T e m p s ; EA1

0 ; 3 , 2 0 4 3 4 7 4 4 6 5 6 0 8 6 6 E - 7 ; 2 , 9 2 1 3 0 4 2 3 3 3 7 2 2 1 1 ,2 E - 6 ; 2 , 5 8 8 6 0 4 3 1 6 1 1 5 3 8 1 ,8 E - 6 ; 2 , 1 3 6 7 2 8 3 0 9 0 9 4 9 1 2 ,4 E - 6 ; 1 , 6 7 9 8 8 6 6 3 1 6 6 7 6 1 3 E - 6 ; 1 , 1 7 8 3 5 3 9 2 0 5 7 8 9 6

et peut continuer ainsi sur plusieurs milliers de lignes. La procédure lecture(fichier)prend en argument la chaîne de caractères fichier qui donne l’adresse où se trouve le fichier sur l’ordinateur et renvoie deux listes : respectivement la liste des temps et la liste des tensions.

Pour l’écrire, il faudra :

• faire attention à ignorer la ligne commençant par Temps;

• utiliser la méthode strip() permettant de supprimer les caractères d’échappement en début et fin de chaîne (chaine.strip()) ;

• remplacer les virgules (séparateur décimal en français) par des points (séparateur décimal anglo-saxonet donc de Python) en utilisant la méthode replace (chaine.replace(’a’,

’b’)) ;

• séparer les colonnes selon le caractère “ ;” en utilisant la méthode split(’;’);

2020/2021 2/4

(3)

Lycée Newton- PTSI SN - TP0 - Révisions premier semestre

• convertir les chaînes de caractères correspondant au temps et à la tension associée en flottants (à l’aide de la fonction float) avant de les stocker dans les deux listes qui seront à renvoyer à la fin.

7.2. Tracé du graphe

Proposer les instructions permettant de visualiser l’évolution de tension au cours du temps telle qu’elle apparaît sur la figure (1).

7.3. Traitement des données 7.3.a. Annulations de tension

Écrire une fonctionpoints_d_annulation(tensions)qui prend en argument une liste de flottants et pour laquelle on veut trouver les positions des annulations successives de la fonction représentée par la liste. On définira les annulations comme les positions i telles que :

— tensions[i] et tensions[i+1] sont de signes contraires ou tensions[i] est rigou- reusement nulle ;

— deux positions successives d’annulation soient séparées d’au moins 10 cases.

La fonction doit renvoyer la liste des positions successives d’annulation.

7.3.b. maxima successifs

Écrire une fonction maxima_successifs(tensions) qui prend en argument une liste de flottants et qui renvoie une liste des positionside ces maxima. On considère que le premier maximum ne peut avoir lieu qu’après la première annulation (puisqu’on ne sait pas exac- tement quand l’acquisition a été lancée). En outre, on signale qu’on trouvera forcément un seul maximum entre la première et la troisième annulation, puis un autre entre la troisième et la cinquième, etc. Si jamais plusieurs tensions venaient à avoir la même valeur maximale dans une même période, la position retenue sera la première pour laquelle le maximum est atteint.

7.4. Récupération des valeursLe but de cette question est de récupérer les paramètres ω0 (pul- sation propre) etQ(facteur de qualité) pour le circuit RLC dont la modélisation mathématiques peut être mise sous la forme :

u(t) = Aexp Å

ω0t 2Q

ã

cos(Ωt+ϕ) avec Ω = ω0  

1− 1 4Q2 7.4.a. Calcul de la pseudo-période, deux méthodes possibles

1. Méthode des zéros

La pseudo-période T vaut . Elle est donnée par le double du temps séparant deux passage successifs par 0. Écrire une fonctionpseudo_periode_1(temps,tensions)qui prend en argument une liste (triée) des temps et une liste des tensions associées à ces temps et renvoie une estimation (si possible précise) de la pseudo-période. NB : comme les dernières annulations peuvent être imprécises, on considèrera un maximum de 10 pseudo-périodes consécutives pour effectuer les calculs.

2. Méthode des maxima

La pseudo-période T est aussi (approximativement) égale au temps séparant deux maxima consécutifs. En regardant à nouveau au maximum les dix premières pseudo- périodes, écrire une fonction pseudo_periode_2(temps,tensions) qui prend en ar- gument une liste (triée) des temps et une liste des tensions associées à ces temps et renvoie une estimation (si possible précise) de la pseudo-période.

2020/2021 3/4

(4)

Lycée Newton- PTSI SN - TP0 - Révisions premier semestre 7.4.b. Décrément logarithmique

Pour un régime libre (amorti vers 0), on appelle « décrément logarithmique » la quantité δ= 1

m ln

Å umax(n) umax(m+n)

ã

umax(n) est la valeur du ne maximum en tension. L’intérêt du décrément logarithmique est qu’on pourra aisément le relier au facteur de qualité.

Écrire une fonction decrement_log(tensions) qui prenne la liste des tensions en entrée et renvoie la valeur du décrément logarithmique δ comme défini plus haut et calculé entre le premier et le quatrième maximum. On rappelle que la fonction log du module math correspond justement au logarithme népérien :

> > > log ( 1 0 )

2 . 3 0 2 5 8 5 0 9 2 9 9 4 0 4 6

> > > log (10 ,10) 1.0

7.4.c. Facteur de qualité et pulsation propre

Le décrément logarithmiqueδ est lié au facteur de qualitéQ par la relation : δ= π

pQ2−1/4

Écrire une fonction Q_et_w0(temps,tension) qui prend en entrée les listes de temps et des tensions, et renvoie le facteur de qualité et la pulsation propre associés.

7.5. Bonus : amortissement vers une valeur non nulle

En bonus, réfléchir à l’adaptation des procédures pour un signal qui tendrait vers une valeur de decharge non nulle comme on peut souvent en rencontrer en TP. En utilisant les procédures précédentes, écrire la fonction Q_et_w0_asymptote_non_nulle(temps,tensions) qui renvoie les valeurs de Q et ω0 lorsque le signal d’entrée ne converge pas vers une asymptote nulle.

2020/2021 4/4

Références