Documente Academic
Documente Profesional
Documente Cultură
Question 11 :
La mthode dEuler est une mthode de premier ordre, on remplace la drive par laccroissement de la
.
lim
tangente entre deux chantillons successifs :
Lerreur commise est dordre deux, elle nest gure recommande si les phnomnes sont du mme
ordre (cest le cas ici sauf si lamortissement est dominant).
On obtient lquation aux diffrences :
,
Question 12 :
La fonction
On vitera bien sur limplmentation directe de cette formule , introduisons des paramtres de
rduction. On pose :
2
et
5
On a alors :
cos
2
sin
sin
Les constantes seront passes en paramtres, lautre solution consiste les dclarer en variable globale
(allergie personnelle) ou les dclarer lintrieur de la fonction fi (mais lnonc nen fait pas mention).
Il suffit dimplmenter le code correspondant :
# constantes rduites
w0=np.sqrt(5/7*g/(R-r))
z=5/14*fv/m/w0
a=5/7*F0/m/(R-r)/w0**2
# Tuple de transfert
cTuple=(wbob,w0,z,a)
def fi(t,Y,cT=cTuple):
"""Donnes : t et Y les valeurs discrtes d'indice i
le vecteur Y est un ndarray numpy
cT est un Tuple passant les constantes utilises """
# onrenvoie directement le vecteur F(ti,Y(ti))
wbob,w0,z,a=cT
return np.array([Y[1],a*w0**2*np.sin(wbob*t)*cos(Y[0])-2*z*w0*Y[1]-w0**2*Y[0]])
Question 13 :
On prend soin didentifier les variables dentre et de sortie. On cre ces dernires et on itre sur
lquation aux diffrences. On utilise le slicing pour transfrer, affecter les lments du tableau.
Si SY est la base de travail, on remarque que la forme de fin nest pas optimale en termes de paramtres
dentre.
Pour afficher la variable de retour on utilisera la fonction affichage suivante :
def affichage(SY):
plt.clf() # Efface le graphique prcdent
plt.plot(SY[:,0],SY[:,1],"b") # trace la courbe
plt.title("Rponsetemporelle") # Titre
plt.xlabel("Temps(s)") # lgende de l'abscisse
plt.ylabel("Theta(rad)") # lgende de l'ordonne
plt.show()
C. Caire
1/6
On remarque sans peine que si la premire rponse peut paraitre crdible il nen est rien de la seconde
qui diverge joyeusement. La robustesse de la mthode est modeste !
h a t sur la deuxime figure multiplie par 10.
C. Caire
2/6
Question 14 :
est en
,
1
Si on divise h par 10 on multiplie dautant N, le temps de calcul sera donc dix fois plus important mais
on divisera lerreur de lalgorithme par 100 (en ).
Question 15 :
cos
Question 16 :
C. Caire
3/6
A linverse les deux courbes ci-aprs ont une amplitude crte qui ne cesse de croitre, elles sont associes
des phnomnes qui paraissent divergents.
Les 14a et 14c correspondent des courbes qui valident les conditions de linarisation.
Cest dailleurs confirm par les solutions qui sont voisinent de la somme de la rponse libre dun
oscillateur linaire et de sa rponse commande (une simple sinusode la pulsation de contrainte).
Question 17 :
Question 18 :
4/6
mais en
Remarque : le code propos est alors faux, le concepteur du sujet a oubli que la valeur efficace est une
moyenne pondre sur N lments, il aurait d proposer :
Question 19 :
Une pile nest pas adquate car le premier lment rentr dans la structure doit tre le premier sorti, il
nous faut du FIFO (file) et non du LIFO (last in first out = stack = pile).
Question 20 :
5/6
La deuxime fonction propose dans lnonc est buggue dans son initialisation (erreur Nmaxi , N).
On procde lidentique jusqu la boucle while, point ou on utilisera la structure file propose.
Le calcul de litration suivante de Xeff est fait en modifiant la formule de lnonc qui a oubli de
prendre en compte le poids en 1/N de chaque lment dans la somme.
Enfin valeur_efficace doit tre modifi pour accepter une file et non un ndarray (numpy)
On pourra remarquer quici la file ne sert rien car elle duplique les donnes de M en cours
dutilisation et que loprateur/codeur dispose de tous les lments pour dterminer ces donnes.
Cest donc juste un exercice de style !
Fin
C. Caire
6/6